DG12B VFD時計の各設定方法です。
- 電源供給
- 時刻の設定
- WiFi設定
- WiFi設定の削除
- https://kohacraft.com/@kohacraft_blog
- 7セグではない珍しいフォントのVFDを送って頂きました
- DG12B
- 光らせてみよう
- 次回は
- https://kohacraft.com/@kohacraft_blog
- 珍しいフォントのVFD DG12Bの6桁の基板を作っています
- 回路図
- VFDをはんだ付けしやすくしたい
- PCBWayに発注
- 審査失敗
- エンジニアの質問
- とても重大なミスに気づいてしまう
- 次回は
- https://kohacraft.com/@kohacraft_blog
- 取り付けしやすい特殊構造のDG12B用基板は本当に取り付けしやすいのか?!
- 基板が届いたよ!
- VFDを取り付ける
- 取り付けしやすいコツ発見
- 残りのVFDも取り付け
- 光らせてみよう
- さて次回は
- https://kohacraft.com/@kohacraft_blog
- VFD時計の制御基板をJLCPCBに発注しました
- ブロック図
- 基板のアートワーク
- JLCPCBに基板を発注
- https://kohacraft.com/@kohacraft_blog
- JLCPCBから届いたVFD基板を組み立てました
- 基板が届きましたよー
- はんだペーストの印刷
- 部品の実装
- リフロー
- 基板の完成!!
- https://kohacraft.com/@kohacraft_blog
- 珍しいフォントのVFD DG12Bの数字が表示ができました
- Arduinoでプログラム
- 点灯しました!
- https://kohacraft.com/@kohacraft_blog
- ESP32でDG12B VFDをダイナミック点灯できるようになりました
- タスクでダイナミック点灯
- 明るさの調整もできるよ
- さて次回は
- https://kohacraft.com/@kohacraft_blog
- DG12B VFDの表示をPWMによってクロスフェードできるようになりました
- クロスフェードもタスクで実行
- クロスフェードできました
- さて次回は
- https://kohacraft.com/@kohacraft_blog
- DG12B VFDにRTC機能を追加して時計になりました
- RTC ICを使う
- ボタン2つで時刻設定
- 時計になりました!
- さて次回は
- https://kohacraft.com/@kohacraft_blog
- DG12B VFD時計にWiFi設定とNTPサーバとの時刻同期機能を追加しました
- WiFiの設定方法
- 正確な時計になりました
- https://kohacraft.com/@kohacraft_blog
- DG12B VFD時計に明るさ自動調節機能と自爆?機能を追加しました
- 部屋の明るさでVFDの明るさを変える
- コンデンサの鳴きを軽減
- リブート機能も追加
- 時計の機能実装が完了しました
- https://kohacraft.com/@kohacraft_blog
- ケースができてDG12B VFD時計がついに完成しました!!
- イラストレータでケースの加工データを作る
- EtcherLaserProで加工
- 組み立て
- 時計の完成!
電源供給
電源供給はUSBで行います。背面のUSB端子にUSBケーブルを接続し、USB充電器などを使って電気を供給します。電圧は5Vです。
時刻の設定
「SET」ボタンを3秒以上長押しすると時刻設定モードになります。一番上の桁から設定して行きます。「UP」ボタンで数字が増えます。目的の数字になったら「SET」ボタンを押すと確定して次の桁へ移動します。
一番下の桁の数字が確定すると、時刻のカウントが開始されます。
後述する、WiFi接続によるNTPサーバーとの時刻同期を行っているときに、時刻の設定をすると、WiFiの設定は削除され設定した時刻が優先されます。NTPによる時刻同期は行われません。
WiFi設定
WiFiの設定をすると、NTPサーバより時刻を取得して常に正確な時刻を表示することができます。WiFiには2.4GHzと5GHzの2種類の電波がありますが、この時計は2.4GHzにしか対応しておりません。
WiFiの設定には、スマートフォンかノートPCが必要です。
「UP」ボタンを3秒以上長押しすることでWiFi設定モードになります。
WiFi設定モードになると、一番上の桁の'マークが点滅します。このモードは開始から10分間有効です。
スマートフォンやノートPCでWiFiのアクセスポイントを表示します。VFDClockというアクセスポイントが設定用のアクセスポイントです。
VFDClockのアクセスポイントに接続すると、公衆WiFiに接続するときに現れるウィンドのように、スマートフォンやノートPCの画面に設定用のウィンドが表示されます。
この中の「Settings」をクリックします。
設定
VFD時計から接続したい、WiFiのアクセスポイントをクリックします。
Passwordにアクセスポイントのパスワードを入力します。タイムゾーンも変更できます。入力が終わったら「Save」をクリック。
設定が保存されました。
数秒から数10秒でWiFiに接続し、NTPサーバとの時刻同期が完了します。NTPサーバとの時刻同期が完了すると、'マークが左から右へ流れます。
以降、約1時間おきにNTPサーバとの時刻同期が行われ、同期すると'マークが左から右へ流れます。
WiFi設定の削除
一度NTPで時刻同期した後に、WiFiの無い環境で使う時などWiFiの設定を削除したい場合は、SETとUPを同時に押しながら、USBを接続することで削除できます。
USBを接続すると0が徐々に増えて全て0になった後に削除されます。その後は、内蔵RTC ICの時刻を表示します。
これまでの歩みは以下の通りです。
7セグではない珍しいフォントのVFDを送って頂きました
本ブログの読者の方が、珍しいフォントのVFDを送ってくださいました。
DG12B
とてもユニークなフォントのVFDです。
VFDを発明した伊勢電子が製造した、DG12BというVFDです。数字のフォントがユニークで、手で描いたような数字になっています。
DG12Bのデータシートに各数字の表現方法が掲載されていました。
9個のセグメントで数字が表現されています。かなり自然な数字の文字になるよう、工夫されている様子がわかります。「4」の右へ飛び出したラインは「4」の表現のためだけに使われます。かなりこだわってデザインされたのでしょう。
VFDとしてはポピュラーなIV-6と並べてみます。ガラス管の太さは同じですが、DB12Bはフォントが一回り大きくなっています。背景も黒くなっていますね。
特に、桁を表すシングルクォーテーション「'」と小数点を表すドット「.」が数字のフォントよりもアンバランスに大きくなっています。VFDは電卓に使われるので、桁の読み間違いや、小数点の位置の見間違いを減らすための工夫なのかもしれません。
光らせてみよう
DG12Bのデータシートによると、フィラメント電圧は0.85V、グリッド電圧は20Vです。このデータシートにはダイナミック点灯の場合の電圧も書いてあります。デューティー比が下がるにつれてグリットの電圧が30V,40Vと上がっていきます。1/20では60Vも印加していいんですね。この数字は今となっては貴重な情報です。
7と14番ピンがフィラメント、6番ピンがグリッドで、他のピンが各セグメントになっています。まずは、数字の8とドットを表示したいと思います。
ブレッドボードにDG12BとVFD用電源モジュールを差し込みます。
VFD電源モジュールのVf(フィラメント電圧)を0.8Vくらい、Vg(グリッド電圧)を20Vに設定しておきます。
VFDのフィラメントの7,14番ピンをVFD電源モジュールの2つのフィラメント出力へ接続します。
VFDのグリッドの6番ピンをVgへ接続します。
「8.」を点灯させたいので、点灯させたいセグメントをVgに接続します。DG12Bの1,2,5,9,10,13,8番ピンをVgに接続します。
以上で配線は終了です。VFD電源モジュールに5Vを供給します。
点灯しました!!
おおおお「8.」です。
IV-6も一緒に光らせてみます。DG12Bと同じフィラメント電圧、グリッド電圧です。同じような明るさですね。
かなりこだわって作られたフォントなのだと想像しているのですが、セグメントの太さがIV-9よりも細いので、実際のところは普通の7セグメントの方が視認性が良かったりして...
次回は
6本のDG12Bを送って頂いたので、このVFDでHH:MM:SSの6桁の時計に仕上げたいと思います。そのために、まずは6本のVFDをダイナミック点灯する基板を制作しようと思います。



珍しいフォントのVFD DG12Bの6桁の基板を作っています
DG12Bを使った時計を作るために、6桁のダイナミック点灯できる基板を作ります。
回路図
回路はとてもシンプルです。
6桁のVFDの各セグメント同士を接続し、コネクタへ配線します。
6本のVFDのフィラメントを直列に接続します。DG12Bのデータシートによるとフィラメント電圧は0.85Vなので、6本で5.1V。回路に供給する予定の5V電源でフィラメントを駆動しようと思います。
6本の各グリッドをコネクタへ配線します。
VFDをはんだ付けしやすくしたい
ニキシー管やVFDなどリードの本数が多い部品は、すべてのリードをスルーホールに通すのがとても大変です。
そこで、VFDのフットプリントを、このような形状にしてみました。リードの内側は大きな穴になっています。
3Dビュアーで見てみましょう。VFDは円周状にリードが出ています。基板ではその円の内側が大きな穴になっています。
VFDのリードを全てこの穴に通してから、リードの1本1本を各パッドの穴へスライドさせて入れていきます。
このような仕組みならば、スルーホールに1本ずつリードを入れていくよりも、効率的に実装ができるのではないでしょうか。
6本のDG12Bを並べた基板の設計ができました。
問題は、このようなフットプリントの基板が製造できるのかどうかです。
PCBWayに発注
これまで他の基板製造会社では作れなかったちょっと複雑な基板でも、ここならば作れたことがあるので、PCBWayに発注してみます。
特に数字を入れず「今すぐお見積もり」をクリックします。
基板のサイズと枚数を設定します。今回の基板のサイズは横99.1mm 縦31.8mmです。10枚製造してもらいます。
基板の色を黒に変更します。
細かいことですが、基板に製造番号が印刷されないようにしたいので、一番下の「追加のPCB製造番号をボードに追加しない」にチェックを入れました。
以上で「カートに追加」をクリックしてカートに入れます。
青い「ガーバーファイルを追加」をクリックしてzipで圧縮したガーバーファイルをアップロードします。アップロードできたら、緑色の「今すぐ注文する」をクリックします。
PCBWayでデータのチェックが始まります。PCBWayはこのデータのチェックが早く、早いと数分で終わります。
VFD用の特殊なフットプリントは製造できるのでしょうか。
審査失敗
PCBWayのチェックの結果、審査を通過できませんでした。理由が画像も添付されてわかりやすく説明されています。
端面スルーホール同士は、0.55mm以上離してください
スルーホール同士の間隔がちょっと狭いのが原因でした。
そしてこの文面から、今回のフットプリントの加工は、端面スルーホール扱いになることがわかりました。
フットプリントの長穴の長さを短くして、端面スルーホールの間隔を0.6mmに修正します。
修正したガーバーファイルをアップロードします。
2分程度でチェックが完了しました。端面スルーホール加工が追加されたために、料金が変わりました。PCBWayは金額が決まってから発注なので安心です。
オレンジ色の「チェックアウトに進む」をクリックします。
発送先と発送業者を選んで、クレジットカードかPayPalで支払います。
支払いが完了すると、製造が始まります。
エンジニアの質問
しばらくして進捗状況を確認したところ、「エンジニアの質問」という状態になっていました。
基板データに関して何か質問があり、のちにメールが届くとあります。やはり製造が難しいフットプリントだったのでしょうか。
質問がなかなか届かないなと思いながら、ふとDG12Bのデータシートを見たときに、信じられないキーワードが目に飛び込んできました。
とても重大なミスに気づいてしまう
ボ、ボトムビューだったのね。あなたはボトムビューなのね。ボトムだったのね。
データシートに描かれたピン配置は、VFDのリード側から見た場合の見え方で描かれていました。今では部品の上方から見た見え方(TOP VIEW:トップビュー)でピン配置が描かれていることが多いですが、昔は基板の背面を手で配線したからなのでしょうか、ボトムビューがありますね。トップビューとボトムビューではピン番号の並び順が、反時計回りと時計回りで正反対になります。
さて、PCBWay社内で基板製造データが完成してしまった後では、修正は不可能です。PCBWayは仕事が速いので、とにかくすぐに連絡します。ただこれまでの経験上、先方である程度作業が進んでしまった後での修正は難しいです。
進捗の画面の「営業担当に連絡してください」をクリックします。
進捗状況が「エンジニアの質問」という状態で、PCBWayのエンジニアから質問のメールが来ないなぁとのんびり待っていたのですが、立場が逆転です。こちらからエンジニアにコンタクトしたい!正しいガーバーデータを是非ともお渡ししたい!受け取って頂きたいです。
メールを待っている間に、フットプリントの並び順を修正して、配線をやり直し、正しいガーバーデータが出来上がりました。しかし、エンジニアからメールが届きません。
結局、この日はメールが届きませんでした。
翌日、製造ステータスを確認すると、「エンジニアの質問」が消えていました。質問をすることなく問題が解決してしまったのでしょう。時間的にデータの差し替えは不可能です。
基板を裏表逆にすればなんとかなるかな。とか思いながら、だめ元でもう一度Amyさんに連絡してみました。
おおおお!なんと、修正データを受け付けてくださると!!もう諦めていたので、嬉しい限りです。
チャットの機能でメッセージと一緒にガーバーファイルを送ります。無事に受け取ってくれたようです。
ファイル名がチャットで送ったzipファイル名へ更新され、製造もスムーズに進んでいるようです。
「エンジニアの質問」の状態になっていなかったら、データの差し替えはできなかったでしょう。仕事が速いPCBWayに待ってもらって、データを差し替えてもらえて感謝しかありません。
次回は
ご迷惑をおかけし苦労をして作ってもらった基板が1週間程度で届きます。この特殊なフットプリントの基板は、果たしてはんだ付けしやすいのでしょうか。実物で試してみたいと思います。
2023.3.29 続きはこちら



取り付けしやすい特殊構造のDG12B用基板は本当に取り付けしやすいのか?!
PCBWayに注文していた、たくさんリードのあるVFDを楽に取り付けられる(かもしれない)基板が届きました。さらにVFDにちょっと工夫をすることで、もっと組み立てやすくなりました。
この基板の設計と注文をした時の記事はこちらです。
基板が届いたよ!
注文時に色々ありましたが、製造はスムーズに進んで注文してから8日で基板が届きました。
VFDはリードがたくさんあって、スルーホールに全てのリードを通すことが大変です。そこで、ちょっと特殊な形状の基板を注文していました。
こちらがその特殊な形状です。U4、U5、U6と書かれた手前の穴にVFDを取り付けます。大きな穴が空いていて、周囲に溝があります。この溝の内側にはメッキがしてあり、そこにリードをはんだ付けします。
このような特殊な設計だったので製造してもらえるか不安だったのですが、PCBWayで作ってもらえました。注文時のやりとりから、この形状は端面スルーホール扱いになるようです。
VFDを取り付ける
それでは、DG12Bを取り付けていきましょう。VFDの全てのリードをまとめて穴に通します。
VFDのリードを1本1本溝に嵌め込んでいきます。
リードを外へ曲げると、VFDが固定されます。
VFDが基板に対して垂直になるよう、気をつけながらはんだ付けしていきます。
大成功です。取り付けるのが大変なVFDですが、楽にはんだ付けすることができました。かなり時間を短縮できていると思います。
ただリードを曲げて固定するときに、リードが1本取れてしまいました。貴重なVFDを壊してしまった!!!と思いながらどのセグメントか調べたところ、「4」の文字の右に飛び出している「-」の形状のセグメントでした。
DG12Bの特徴的なセグメントの1つを失ってしまいましたが、4の時にしか点灯しないセグメントだったのでちょっと安心しました。このモジュールは時計に使うため、最上位は1と2以外は表示する予定がありません。
このVFDはこれまで実験に使っていた物で、実験でストレスを感じていたのかもしれません。根本から大きく曲げないよう、気をつけようと思います。
取り付けしやすいコツ発見
さらにひと工夫することで、より取り付けしやすくなりました。
両サイドのリードの先端を曲げる
全てのリードをまとめて大きな穴に通すため、どのリードが何番のピンなのかがわかりにくことがわかりました。そこで、VFDの両サイドに位置する、2つのピンの先端を曲げておきます。この曲ったリードを目印にします。
全てのリードを大きな穴に通します。
先端が曲がったリードを見つけ出します。そのリードが基板の左右の位置になるように、VFDの向きを回転させます。
この後、VFDのリードを1本1本溝に入れていきます。
根本の錆びを削っておく
VFDと基板とは、隙間なく取り付けられます。
VFDはこのような取り付け方を想定していないためか、ガラスの近くまではんだメッキされていません。メッキされていない部分は錆びてしまっています。錆の部分はんだが付きにくく、また後に接触不良になる可能性もあります。
そこで、カッターの刃を使って錆びを削り取っておきます。
茶色に錆びているリードが、銅色に変わればOKです。
傾いていないか確認しながら、はんだ付けします。
残りのVFDも取り付け
取り付けのコツもわかったので、残りのVFDをはんだ付けしていきます。
6本全てはんだ付けが完了しました。VFDは製造時の誤差で、表示面が正面を向いていない場合があります。それぞれ少しずつ違う方向を向いていますね。
ピンヘッダを取り付けて、DG12Bモジュールの完成です。
特殊な形状の基板のおかげで、VFDの取り付けが楽にできました。
光らせてみよう
全ての表示管の、全てのセグメントを点灯させたいと思います。
DG12Bのデータシートによると、DC点灯の場合、フィラメント電圧は0.85V、セグメントやグリッド電圧は20Vとあります。
VFDの電源には、以前作ったVFD用電源モジュールを使います。


DG12Bモジュールでは、各VFDのフィラメントが直列に接続されています。6管が直列になっているので、フィラメント電圧は0.85*6=5.1Vです。VFD用電源モジュールのフィラメント電圧は4.2Vまでしか出力できないので、とりあえず最大の±4.2Vで駆動してみます。
セグメントやグリッドの電圧は、データシート通り20Vに設定します。
セットアップが完了しました。それではVFD電源モジュールに電気を供給してみましょう。
おおおおお!! DG12Bが光りましたよ!!全部光りました!
DG12Bは、IV-6と違った独特のフォントですね。
VFDの光の色も魅力的ですが、ガラス管の内部に構築された、この立体的な構造物が見えるという点も、液晶やLEDにはない魅力ですね。
さて次回は
DG12Bモジュールが完成したので、このモジュールの下に接続する、マイコン基板を設計したいと思います。
マイコンにはESP32を使い、NTPサーバーから時刻を取得してリアルタイムクロックICで時間を管理します。VFDは、ダイナミック点灯する回路にしようと思います。
2023.5.23 つづきはこちら



VFD時計の制御基板をJLCPCBに発注しました
以前DG12B用の基板を作りました。今回はそのVFDを点灯させる制御基板を作ります。
ブロック図
こちらが今回作る回路のブロック図になります。以前作った透明で美しいVFDのIV-27Mの回路と、ほぼ同じになっています。
インターネットから時刻を取得できるように、マイコンにはESP32を使います。またESP32はコアが2つ入っています。片方のコアにダイナミック点灯のタスクを割り当てて、もう片方で何か別の作業を割り当てることができます。とても便利なマイコンです。
VFDのドライブにはVFD用のドライバICのHV5812を使います。1つのICで20本ドライブできます。以前作ったDG12BのVDFの基板では、6つのグリッド、13のセグメントがあるので、合計19本使用します。ドライバが20本なのでちょうど良いですね。
HV5812は5Vで動作するICです。ESP32のIOは3.3Vなので、レベルシフタを使って3.3Vから5Vに変換してからHV5812へ入力します。
VFDのヒーターはモータードライバで交流を生成します。ヒーターの電圧は、3.3Vと5Vと切り替えられるようにしました。VFD1本あたり1V弱なので、VFDが6本の場合は5Vを利用し、VFDが4本の場合には3.3Vを利用することにします。
交流が必要な理由はこちらの記事をご覧ください。
VFDのグリッド電圧を生成するために、昇圧型のDCDCを用意しました。VFDはスタティック点灯では20V程度、ダイナミック点灯の場合には40V程度です。そのため、プログラムをデバックしている時は20Vで動作させ、正常に常に動作するようになったら40Vへと変更できるような仕組みにしました。
結構なボリュームになりましたが、基板のサイズ内に収まるでしょうか。
基板のアートワーク
基板は、安価に製造してくれるJLCPCBに注文しようと思います。JLCPCBのCapabilitiesのページに、設計の条件が書かれています。
これをみながら、KiCadのデザインルールを設定します。
クリアランスや線幅は若干の余裕を持たせて設定しました。JLCPCBのすごいところは、このかなり厳し目の条件でも、製造費用が変わらないところです。製造仕様では、最小配線幅は最低5mil=0.127mmです。条件の厳しい基板でも安価に作ってもらえます。
基板サイズが小さいために部品を配置と配線が大変でしたが、なんとか納まりました。
3D表示するとこんな感じです。ほぼ空きスペースがありません。
一度に複数の基板の実装ができるように、面付けをしました。基板の四隅にある黄色の点は、クリームはんだを印刷するときに、メタルマスクと基板との位置合わせを行うための穴になります。
データの作り方はこちらをご覧ください。
今はマップピンを使っているので、0.75mmの穴になっています。
JLCPCBに基板を発注
完成した基板をJLCPCBに発注します。
zipで圧縮したガーバーファイルをアップロードすると、基板のイメージが表示されます。
今回の基板は縦に2つ面付けされた基板なので、「Delivery Format」を「Panel by Customer」に変更します。そして、「Column」を「2」に設定します。
基板の色は黒にしたいので「Black」を選びます。JLCPCBの黒は、やや艶消しの綺麗な黒で気に入っています。
パッドのメッキは金メッキにしたいので「Surface Finish」を「ENIG」にしました。
メタルマスクも一緒に注文します。メタスマスクは、標準サイズが38cm x 28cmととても大きいので、適度なサイズにカットしてもらいます。「Customized size」を「Yes」に変更し、基板のサイズ+2cmにしてもらいます。+2cmがクリームはんだが印刷時に外に飛び出ることもなく、収納するにもちょうど良いサイズです。
基板には表面にしか部品がないので「Stencil Side」を「Top」に設定します。
最後に忘れていけないのが「Fiducials」です。私はメタルマスクと基板との位置合わせのために、基板とメタルマスクの四隅に穴を開けています。データに穴があっても、「No Fiducial」では製造時にメタルマスクに穴が開かないため、「Etched Through」にしてます。
以上で、設定は完了です。「Secure Checkout」をクリックして先へ進みます。
発送先と配送業者を選択し、3の「Submit Order」で「Review Before Payment」を選ぶことをお勧めします。これは、JLCPCBでガーバーデータをチェックして製造費用が確定してから、支払いをするという選択です。基板データを設計する時や注文時のパラメータの設定ミスが原因で、JLCPCBでのデータチェックによって製造費用が変更になることがあります。
「Review Before Payment」では、料金が確定してから支払うことができます。
ステータスがReviewingとなり、データのチェックが開始されます。データのチェックは1,2時間程度で完了し、メールが届きます。
レビューにパスすると支払いが可能になります。「Pay」をクリックして支払いへ進みます。
PayPalかクレジットカードで支払いをします。
製造が開始されました。届くのが楽しみです。
届いたら組み立てたいと思います。



JLCPCBから届いたVFD基板を組み立てました
基板を注文して10日ほどでJLCPCBから基板が届きました。それでは組み立てていきましょう。
基板が届きましたよー
こちらが届いた基板とメタルマスクです。
金メッキ仕上げで、やや艶消しの黒なのでとても美しいです。JLCPCB以外の製造メーカーでは、レジストに黒を選ぶと艶ありの黒になります。
0.15mmの線幅とクリアランスで設計したのですが、とても綺麗に仕上がっています。これからJLCPCBに発注する際は、この設定で作っていこうと思います。
はんだペーストの印刷
ダンボールに基板を置きます。
メタルマスクを上に置き、マップピンを基板とメタルマスクの四隅に開けておいた穴に刺します。これでメタルマスクと基板との位置がピッタリと合います。
基板の幅が10cmなので、それよりも少し幅が広い12cmのフレキシブルパテをスキージ代りに使って、はんだペーストを印刷しようと思います。
メタルマスクの奥側にクリームはんだを載せます。クリームはんだは、家庭用のオーブンでも簡単にリフローできる、低融点鉛フリーはんだペーストを使っています。
フレキシブルパテで、クリームはんだを奥から手前へ引き寄せながら印刷していきます。
日本製のフレキシブルパテは、先端の加工精度が高く、均一にクリームはんだを印刷することができます。
今回は4枚の基板にクリームはんだを印刷しました。
部品の実装
表面実装部品を電動バキュームピックアップツール HAKKO394で、基板に実装していきます。
電動バキュームピックのスイッチを押すとポンプが動作して、掃除機のようにノズルへ空気が吸い込まれます。ノズルの先端を部品に押し当てると、部品が吸着されます。
実装する場所に部品を置き、ボタンを離すとポンプが止まって、部品が離れます。これを繰り返して部品を実装していきます。
テープの中では、極性のある部品は必ず同じ向を向いています。
そのため、テープに入った部品の向きと実装する基板の向きを合わせておくことで、吸着した部品の向きを変えることなく、吸着した向きのまま実装することができます。これがとても効率的です。
ダイオードはテープから取り出すと、必ずと言っていいほど表と裏が反対になります。その場合、表面が上を向くように反転させなければいけません。しかしテープから直接ピックアップすると、その手間が無くなります。また、テープの中ではアノードとカソードの向きがそろって入っているので、1つ1つ極性を確かめる必要もありません。
テープからピックアップすることで、ピンセットを使うよりも部品の実装が何倍も速く進みます。
ノズルを変えれば、大きな部品も吸着できます。
部品の点数が多い基板でしたが、HAKKO394を使うことでピンセットに比べて短時間に実装が完了しました。
ノズルには、純正よりも短くて使いやすいこちらを使っています。


純正のノズルはこちら(上のノズルの黒色1005M用に相当する太さです)。
リフロー
熱風が庫内を循環するコンベクションオーブンでリフローします。
テスコムのこのモデルは、加熱の途中でも設定温度を変更できます。クリームはんだの温度プロファイルに合わせて温度を変更していきます。
庫内にはK型熱電対センサを入れておいて、温度をモニターしています。
まずは100度の設定で数分プリヒートします。
その後140度に設定してクリームはんだの溶ける温度にします。はんだが全て溶けきったたら、165度まで温度を上げてリフローが完了です。
扇風機を使って冷却します。
基板の完成!!
リフローが完了しました。
この基板の中で最もピッチの狭い、USB TypeCコネクタやSOT-23-8もブリッジすることなく、綺麗に実装できました。
前回作ったDG12BのVFD基板を取り付けてみます。横幅10cm、奥行き3cmとかなり小型にできました。
次回は、回路の動作テストと、回路が正常に動作したらプログラムを作っていきたいと思います。



珍しいフォントのVFD DG12Bの数字が表示ができました
やっとプログラムを作る時間ができて、DG12Bが点灯することを確認できました。
基板が完成したのが5月なのですが、それから忙しくてプログラムを作る余裕がありませんでした。
Arduinoでプログラム
過去に作ったIV-27M用のプログラムを改造しながら、とりあえず点灯させてみます。
まずはVFDを接続せずにDCDCコンバータやドライバ回路の電圧をチェック。回路は正常に動作していることが確認できたので、VFDの基板を接続して電源を入れてみます。
点灯しました!
数字が表示できましたよ!DG12Bで特徴的な「4」です。7セグでは表現できない、右側に飛び出したた小さな線が特徴です。一番上の桁は、足が折れてしまったために残念ですが点灯しません。
回路がダイナミック点灯用で、まだスタティック点灯のプログラムしかできていないために、全ての桁で同じ数字が表示されています。
全ての数字を順番に表示してみましょう。なかなか特徴的はフォントです。7セグメントのVFDとは違ってこういうのもいいですね。
まだフィラメントを交流駆動するプログラムがないために、左の桁に行くほど表示が暗くなっていることがわかります。
さて、回路も無事に正常で、VFDに数字が表示できることが確認できたので、ダイナミック点灯やフィラメント電圧の交流駆動など、プログラムを進めていきたいと思います。



ESP32でDG12B VFDをダイナミック点灯できるようになりました
6つのDG12B VFDをダイナミック点灯することで、6桁の数字が表示できるようになりました。
タスクでダイナミック点灯
ESP32のタスクを使います。各桁を順番に点灯するタスクをコア0で実行します。これにより、勝手にVFDがダイナミック点灯します。
表示する内容は、文字列で指定できるようにしました。数字だけでなく、シングルクォーテーションやドット、スペースにも対応しています。
’1234.56と指定した場合の表示例です。最上位の桁に'と1が同時に点灯しています。また、4.5と指定しているので4と.が同時に点灯しています。表示したい内容を文字列で指定できるので、とても便利です。
VFDは、管の中の立体的な構造物がかっこいいですね。
明るさの調整もできるよ
ダイナミック点灯するプログラムには、各セグメント毎に32段階のPWM点灯ができる機能も入っています。現在のプログラムでは、すべてのセグメントが一括で変更され、全体の明るさが0〜100%に変更できます。
上のプログラムは、徐々に明るくなって、徐々に暗くなります。
(i*i)>>8 とすることで明るさの値が2乗で値が変化し、人の目で見て明るさがリニアに変化しているように見えます。
「(i*i)>>8」は1が0〜255の場合に使える式でした。
今回はiが100までなので「(i*i)/100」が正しい式となります。
上記のプログラムを実行して、’1234.56の明るさを変化させている動画です。VFDの色いいですねぇ。
さて次回は
タスクを使ってダイナミック点灯できるようになったので、数字が変化する時のアニメーションの機能を追加したいと思います。
2023.11.30 続きは下のリンクよりどうぞ。
これまでの履歴です。






DG12B VFDの表示をPWMによってクロスフェードできるようになりました
各セグメントの明るさをPWMで調光することで、表示が変わる時にクロスフェードするようになりました。
クロスフェードもタスクで実行
6つのVFDのダイナミック点灯はタスクになっていて、コア0で実行されています。このダイナミック点灯のタスクには、VFDの各セグメントごとにPWMの機能が実装されており、セグメント毎に32段階の明るさを設定できます。
今回は、VFDの各セグメントのON,OFFが変更になったら、クロスフェードするようにPWM値を自動で変更する機能を追加しました。この機能もタスクにしました。このタスクはダイナミック点灯に影響しないようコア1で実行することにします。
ダイナミック点灯や、クロスフェードはタスクによって自動実行されているので、ループ文の中は数字をカウントアップする処理しかありません。ESP32のタスクは便利ですね。
クロスフェードできました
数字が変更になる際に、前の数字がふわっと消えながら、新しい数字がふわっと表示されます。このため、数字の変化の時には上の写真のように文字が重なって見えます。
クロスフェードでは、消える速さよりも点灯する速さを2倍速くすることで、可読性を上げてみました。実際の表示の様子が上の動画です。電球のようなふわっとした数字の変化が楽しめるようになりました。
さて次回は
VFDが点灯する仕組みが出来上がったので、時計へ向けてメインボードに搭載されているリアルタイムクロックが使えるよう、機能を追加したいと思います。
これまでの歩みは以下の通りです。







DG12B VFDにRTC機能を追加して時計になりました
RTC ICの制御と時刻設定機能を追加して、ようやくVFD時計となりました。
RTC ICを使う
このボードにはRTC ICのRX-8025が載っています。このICはライブラリがArduinoにあるのでそれを使うことにしました。
ただこのライブラリは年の取得と登録が素直なBCDではないようで、年の情報が正しく読み出せない場合があり、その値で時刻を設定しようとすると異常な時刻が保存されてしまうことがありました。
そのため、ライブラリの年の読み出しと書き込みとを、通常のBCDで行うよう修正しました。
ボタン2つで時刻設定
このボードの背面には「SET」と「UP」のボタンが搭載されています。「SET」を2秒以上長押しすることで時刻設定モードに入ります。
最上位の桁から数字を1桁ずつ設定していきます。設定する桁は数字が点滅します。その際、明るさが100%から10%の間で点滅します。完全に消灯しないことで、暗転時も数字も読めるので可読性が良くなりました。
時計になりました!
DG12BのVFD回路がようやく時計になりました。上の動画は、時刻の設定した後に、USB電源を抜いても時刻が保持されている様子を撮影したものです。
クロスフェードの機能で、数字がふわふわと変化します。設定する桁の点滅も完全に消えないのがいい感じですね。
さて次回は
このボードは制御マイコンにESP32を使っています。無線LANの機能があるので、自宅のWiFiにつないで、インターネットのNTPサーバから現在時刻を取得する機能を追加したいと思います。
以下のリンクはこれまでの歩みです。








DG12B VFD時計にWiFi設定とNTPサーバとの時刻同期機能を追加しました
スマホやノートPCからWiFiの設定ができるようになり、NTPサーバの時刻と同期するようになりました。
WiFiの設定方法
ボタンの長押し
このボードにはSETとUPの2つのスイッチが付いています。SETスイッチは時刻の設定に使っているのでUPスイッチを使います。UPスイッチを3秒長押しすると、WiFiの設定モードになります。
最上位のVFDの'マークが点滅します。VFD時計がWebサーバーになっていることを示しています。
ESP32でWiFiの設定をスマホやPCからできるようにする仕組みとして、WiFiManagerを使いました。
本家のWiFiManagerは現在ではコンパイルできません。しかし、tzapuさんがフォークしたWiFiManagerは、今でもメンテナンスされていてコンパイルすることができました。
ESP32のアクセスポイントに接続
VFDClockというアクセスポイントが有効になるので、スマホやノートPCから接続します。
公衆WiFiに接続するときに現れるウィンドのように、スマホやノートPCの画面に設定用のウィンドが表示されます。この中の「Settings」をクリックします。
設定
VFD時計から接続したい、WiFiのアクセスポイントをクリックします。
Passwordにアクセスポイントのパスワードを入力します。タイムゾーンも変更できます。入力が終わったら「Save」をクリック。
設定が保存されました。
NTPと時刻同期
ESP32が先ほど設定したアクセスポイントに接続を開始します。無事インターネットに接続できると、NTPサーバから時刻を取得しRTC ICに設定されます。
NTPクライアントにはtickeltonさんのNTPClientを使いました。
ArduinoライブラリーのNTPClientをフォークした物で、オリジナルよりも正確にミリ秒単位で時刻同期できます。
時刻同期すると、一番左に点滅していた'マークが流れ星のように、右へ流れていくアニメーションも追加しました。
NTPサーバとは1時間ごとに時刻同期する仕組みとしました。
正確な時計になりました
WiFiの設定からNTPとの時刻同期までの動画になります。これで、とても正確なVFD時計になりました。
さて次回は、明るさセンサを追加して、部屋が暗くなったらVFDも暗くなる機能を追加したいと思います。
これまでの歩みは以下の通りです。









DG12B VFD時計に明るさ自動調節機能と自爆?機能を追加しました
夜に時計のVFDが眩しくないように、明るさセンサーを追加しました。
部屋の明るさでVFDの明るさを変える
明るさセンサー
右にある部品が明るさセンサーです。
明るさセンサーにはHLPT550B3という物を使いました。樹脂の部分が暗い青い色をしているのが特徴です。
HLPT550B3は、人の目に近い色の感度特性になっています。一般的な、樹脂が透明な明るさセンサは、近赤外線に強い感度があり、赤から青い色になるに従って感度が低下してきます。このセンサは、樹脂に赤外線カットと、赤から黄色っぽい色の感度を弱める能力を持たせて、人の色の感度特性に近づけています。
使い方は、こんな感じです。このセンサはフォトトランジスタです。エミッタに抵抗を接続することで、光によって流れたコレクタ-エミッタ電流を電圧として測定します。
時計の基板には既にセンサの回路ができているので、基板にこのセンサをはんだ付けします。
HLP550B3のデータシートには正確に書かれていないのですが、この部品の長いリードがエミッタ、短いリードがコレクタです。一度間違えて取り付けてしまい、電圧が出ないので悩んでしまいました。
プログラム
AD変換するプログラムには、電圧で読み取れる「analogReadMilliVolts()」を使います。ESP32は製造時にADのキャリブレーションがされていて、普通のAnalogRead()で読み取るよりも「analogReadMilliVolts()」の方が正しい値を電圧値で読み取ることができます。
詳しくは、上記のページをご覧ください。
センサの値を取得して、VFDの全体の明るさを設定します。これを100msごとに行う関数を用意します。
上記の関数を、タスクを使って自動実行するようにしました。
明るさが変わるようになったよ
こちらが明るさMAXの状態です。
基板の背面のセンサに影を作って暗くすると、VFDが暗くなりました。センサは明るさに瞬時に応答しますが、プログラムでフィルターの効果を入れて1,2秒かけて部屋の明るさに追従するようにしました。
また、明るい状態から暗い状態へはゆっくりと追従し、暗い状態から明るい状態へは早く追従するようにしてみました。
これで部屋が暗くても、VFDが眩しくなくなりました。
コンデンサの鳴きを軽減
コンデンサが鳴く?
この時計、ほんの小さな音なのですが、ジーーーーーーーーーーって音が鳴っています。どこから鳴っているのか調べてみると、VFDの高電圧を生成しているDCDCコンバータ回路の出力コンデンサでした。
この時計は、なるべく寿命が長くなるようにコンデンサにセラミックコンデンサを使っています。VFDをダイナミック点灯する際の電流変化によって、コンデンサの「鳴き」という現象が発生しています。
セラミックコンデンサは電極で誘電体をサンドイッチしている構造をしています。これは圧電スピーカーと同じ構造です。セラミックコンデンサも圧電スピーカーのように、コンデンサへの電気の充放電によって、誘電体の形状が膨張・収縮を繰り返し基板を揺らします。充放電の周波数が人の聞こえる周波数である場合、振動が音となって聞こえてしまいます。
小さな音なのですが少しでも静かにしたいので、電解コンデンサを並列に接続して、セラミックコンデンサの充放電を緩和し、音を軽減しようと思います。
矢印のセラミックコンデンサに電解コンデンサを並列接続します。この他のコンデンサでも音は出ているのですが、矢印のコンデンサが主な原因のようでした。
電解コンデンサを追加
セラミックコンデンサに電解コンデンサを取り付けました。電解コンデンサには寿命が7000時間の比較的長寿命の物を使いました。一般的な電解コンデンサが1000hなので7倍寿命が長いです。この寿命は105度の状態での値です。コンデンサの寿命は大まかに10度低下すると2倍に伸びます。この基板の置かれる気温を平均35度とすると 7000時間×2×2×2×2×2×2×2 = 約90万時間 = 約9年。いい感じじゃないでしょうか。
このコンデンサの追加によって、かなり音が軽減しました。ケースに入れれば、おそらく音は聞こえなくなるでしょう。
リブート機能も追加
マイコンは長時間動いていると、動作が不安定になります。特にArduinoの場合は約50日でタイマーが最大値を超えて0に戻ります。これにより、使っているライブラリや作ったタイマーを利用したプログラムが正しく動作しなくなるかもしれません。
そこで、ある時間になったらこっそりと再起動するようにしました。
こっそり再起動するので、時間は深夜の3:30:30。表示がふわっと暗くなって消えて再起動し、ふわっと光り出します。ほんの1秒間で完了します。じっと見ていないと気づかないくらいです。
これで、1日ごとにマイコンが再起動して、長期にわたって正常に動作することでしょう。
時計の機能実装が完了しました
時計としての基本機能、WiFiによるNTPサーバによる時刻同期機能などなど色々実装し、予定していた全ての機能の実装が完了しました。
さて次回は、埃が被らないようにこのVFD時計を入れるケースを作りたいと思います。
これまでの歩みは以下の通りです。










ケースができてDG12B VFD時計がついに完成しました!!
レーザーカッターでアクリル板を加工してケースを作り、時計が完成しました。
イラストレータでケースの加工データを作る
レールを使ってケースに固定
この基板の側面には、出っ張った部分を用意してあります。ケースにスリットを用意して、そのスリットにこの出っ張りを差し込むことで、ケースと基板とを固定したいと思います。
これは基板の設計図です。矢印の部分は設計では直角となっていますが、一つ上の写真の同じところを見ると、直角になっていません。これは細いドリルを使って、基板の外径をカットするために、直角にカットしてもドリルの太さの分だけ曲線になってしまうのです。
出っ張りの幅は20mmになっていますが、スリットの幅を同じ20mmにしてしまうと角の曲線の部分がケースに当たってしまいます。そこで、設計データではスリットの幅を21mmに広げます。
MakerCaseで箱のデータを作ってもらう
まずは、ベースとなる箱の展開図のデータを作ります。MakerCaseというサイトで作ることができます。
レーザーカッターで加工すると、レーザーの光の太さの分だけ小さくなってしまいます、そこで「切り口」設定で少しだけサイズを大きくデータを作ってもらいます。
これをSVG形式でダウンロードします。
イラストレータで詳細を設計
イラストレータで先ほどダウンロードしたSVGファイルを読み込みます。
そこに、基板を固定するためのスリットや、スイッチ、USBコネクタの穴を追加します。
USBの穴の大きさは、トランジスタ技術2023年6月号にあるコネクタ寸法を参考に、幅12.5mm・高さ7mmとしました。
文字はアウトライン化しておきます。フォントのままの場合、加工時に位置がずれてしまうことがありました。アウトライン化することで、ズレを防げます。
EtcherLaserProで加工
レーザー加工機「Etcher Laser Pro」でアクリルの板ををカットします。
10分弱でカットが完了。ケースの部品が完成しました。
組み立て
一番気になるのは、スリットに基板が入るかどうかです。ピッタリ入りました。上のスリットは少し余裕があるように作りました。下のスリットは幅は少し余裕がありますが、厚みは基板とピッタリにしてあります。基板がガタつかず固定できそうです。
パネル同士、綺麗に組み上がりました。こちらが正面です。
こちらが背面です。USBやスイッチの穴の場所もバッチリ合っています。
USBコネクタを挿してみます。ケースとコネクタが干渉しません。
綺麗なケースが完成しました。
時計の完成!
プロジェクトの開始から1年弱かかってしまいましたが、ようやくDG12Bの時計が完成しました。
DG12Bの特徴的なフォントや、クロスフェードで数字がふわっと変化するギミックもあって、ずーっと見ていられそうです。VFDっていいですね。
しばらく動作させて、異常が出ないか確認したいと思います。
これまでの歩みは以下の通りです。















































































































































































コメント