

NTP+スタティック方式なニキシー管時計を作る (1)
スタティック点灯方式のニキシー管時計を1桁試作し、基本設計を固める
製作の動機#
ある日、ふと「ニキシー管時計作りたいな」と思ったので自作します。
要件定義#
今回のニキシー管時計は以下のような感じで作ります。
- 全桁スタティック点灯方式
- 6桁(
hh:mm:ss) - ニキシー管はB5870およびIN-3
- NTP同期
- 環境照度に合わせた自動調光
- ラズベリーパイを用いたデジタルサイネージとの統合
- シュタインズゲートごっこ非対応
スタティック点灯…数字の切り替え時を除いてすべての桁を同時に常時点灯する方式。 対義語のダイナミック点灯は一桁ずつ高速に点灯することで目の錯覚で全桁光っているように見せる方式。 ダイナミック点灯の方が一度に1桁しか光らないので、スタティック点灯より配線と部品数を減らせる。 しかしスタティックより暗く見えるので、明るく見せるにはニキシー管に加える電流量を増やす必要があり、 そうするとニキシー管の寿命が短くなる。自作派の大半はダイナミックで作ってるっぽい。
基本設計#
サイネージとしてラズベリーパイも載せるので、マイコンはそれでもいいと思いましたが、ラズパイとPythonで実装するのは面倒そうだし、基板とラズパイ間の配線量がすごそうだったので、大人しくESP32を搭載します。
ニキシー管ドライバーは定番のK155ID1で、スタティックなので6個入りをAmazonで買いました。K155ID1は4bit入力であり、2進数で光らせたい数字(0〜9)を指定する感じです。
スタティック点灯方式の一番の難点はマイコンのピン数が足りなくなることです。ダイナミックの場合は全桁共通の4bit+点灯管指定の6本で済みますが、スタティックでは 4bit × 6本 になってしまいます。
そこでマイコンにはダイナミックのような動作をさせ、常時点灯のための信号維持は外部のICでやらせることにしました。具体的には全桁4bitは共通で、指定したい管にクロックを送るとその4bitが保持されて点灯し続ければいいわけです。
これを実現する回路でDフリップフロップが真っ先に思いついたので、4回路入りでクロックが4回路共通のICが無いか探したところ 74HC175 が条件ぴったりでした。
ググってみたところ、Dフリップフロップでスタティック点灯を行っている前例がないみたいなので、ブレッドボードで試作を行ってから基板を設計します。
試作#
本番は同じ回路が6並列になっているだけなので、試作では1桁のみで動作するか確認します。
マイコンはArduinoを使用し、以下のように接続します。
170Vの生成にはStrawberry Linux製のDC-DCコンバーターを使用しています。
最大出力電流は10mAであり、本番のスタティック6桁ではそこそこ電流を消費するため、2台使用します。
テストプログラムでは0〜9の数字を繰り返し表示させています。以下のサイトを参考にさせて頂きました。
#define clk 7
const int PIN_BIT[] = {2,3,4,5};
const int disp[] = {0,1,2,3,4,5,6,7,8,9};
void setup() {
pinMode(clk,OUTPUT);
digitalWrite(clk,LOW);
for(int i = 0; i < 4; i++){
pinMode(PIN_BIT[i],OUTPUT);
}
}
void loop() {
int cnt = 0;
while(cnt < 10){
for(int i = 0;i < 4; i++){
digitalWrite(PIN_BIT[i],disp[cnt] & (0x01 << i));
}
digitalWrite(clk,HIGH);
delay(100);
digitalWrite(clk,LOW);
delay(1000);
cnt++;
}
}cpp2,3,4,5番ピンに 74HC175 の入力を、7番ピンにクロックを接続しています。
動かしてみた動画が以下です。
というわけで動作が確認できたので、次回記事では本番基板の設計と本番機の製作を行います。
また回路図・基板データの配布と余った基板の頒布も予定しているので、興味のある方はぜひ次回記事もご覧ください。
最後までお読みいただきありがとうございました。
