2019年5月23日木曜日

またニキシー管時計を作ったお話

昨年の技術書典5でニキシー管時計の事例を紹介していましたが、いろいろ満足できていない箇所があったので改めてニキシー管時計を作りました。

某オークションでニキシー管を探していると、B-5853というJRCのニキシー管が手ごろな値段でありましたので、このニキシー管を使用することにしました。
このB-5853はニキシー管の中でも小型な部類に入るニキシー管でしたので、なるべくコンパクトにすることを目指すことにしました。





おうちにはすでにニキシー管時計がありますので、職場用にすることにしました。
職場用ということで下記を目標とします。
①GPSを搭載して正確な時刻を表示する
②周囲の明るさに応じてニキシー管の明るさを調整する
③電源は効率よく発熱しないこと
④電源(インダクタ)の音鳴りがないこと

さらに前回を踏まえて、今回は下記の仕様で設計しました。
⑤電源はUSBからの5V
⑥USBブートローダを搭載したマイコンを使用し、プログラミングを楽に行う
⑦プリバイアス回路を追加し、表示をきれいにする

⑤は以前製作したニキシー管時計でも達成していましたが、多少インダクタの鳴きなどもありましたので、電源にはこだわってさらに改良しました。

⑥のブートローダは前回のニキシー管時計でも搭載していましたが、RTCの関係で電源をOFFしてもしばらくはスーパキャパシタから電源を供給する使用だったため、ブートローダで書き込んだ後にしばらく放置しないと起動しないという欠点がありました。

⑦以前作成したニキシー管時計ではプリバイアス回路がなく、表示に若干ではありますがゴーストが発生していました。
今回はプリバイアス回路を追加して表示をよりきれいにすることを目指します。

電源回路

電源としてはシンプルな昇圧型DC-DCコンバータの後段にチャージポンプを接続したような構成にしています。
回路点数は多くなりますが、比較的容易に5Vからニキシー管を点灯させるための170Vを生成することができます。
電源ICとして下記の基準からAnalog Devices社製のADP1621を採用しました。
・LTspiceにモデルが組み込まれている
・小型のパッケージ
・外付けFETを使用するタイプでゲート駆動回路が内蔵されている

パラメータの設計に関しては、LTspiceであたりをつけて電源のみの試作基板を作って動作を確認しています。
普通はここまでやらないのですが、今回は電源回路にはかなりこだわりました。


ちなみにこのチャージポンプの格段には出力電圧を段数で割った電圧がそれぞれかかることになります。
この電圧をプリバイアス電圧として利用することでプリバイアス用に抵抗分圧する必要がなくなります。
今回はプリバイアス電圧を0Ω抵抗で選択できるようにしました。プリバイアス電圧はダイオードで与えています。

駆動回路

ニキシー管はダイナミック点灯しています。
マイコンのピン数の削減のために8bitシフトレジスタ74HC595を使用しています。ハイサイド側(A側)にはフォトカプラTLP172Gを使用しました。
ローサイド側は74141やその互換品を使用するのが定番ですが、入手性が悪いことと実装面積が大きいため、今回はチップトランジスタ2SC3324を使用しました。今回の用途ではこれで十分です。


マイコン周辺回路

マイコンは使い慣れているATmega32U4を使用しました。USB用のペリフェラルが内蔵されており、USBブートローダが出荷時点で書き込まれているので、USB用の回路を接続することでライタいらずで開発できます。

マイコン周りはシンプルにGPS、温度センサ、照度センサを接続しています。念のため5Vの検出回路もつけましたが、結局使用していません。
照度センサにはお気軽にCdSセルを使用しました。オペアンプを入れたほうが良いかとも思いましたが、直接接続してもA/D変換速度を落とした状態ではちゃんと動作してくれました。A/D変換速度を早くする場合にはオペアンプを入れたほうがよいでしょう。

今回はGPSをつけているのでRTC用のバックアップ回路は搭載していません。


ファームウェア

シンプルな時計の実装です。
いつもと同じでは面白くないので、今回はクロスフェードができるようにしてみました。
クロスフェードとは、現在表示している数値から徐々に次の数値に変わるような表示です。
ダイナミック点灯でクロスフェード処理を実装するために、タイマを一つダイナミック点灯用に割り当てました。
ATmega32U4の16bitタイマにはアウトプットコンペアが2つついており、タイマが指定した値になったときに割り込みを発生させることができます。

これを使用して、タイマの一周期を
①現在のニキシー管を点灯する時間(COMPB)
②次の数値を表示する時間(COMPA)
③ブランク時間(ICR):ゴースト対策
に分けます。表示が変わらない場合には①で表示する数値と②で表示する数値は同じとなります。
クロスフェードを行う際には①と②の時間を調整します。
明るさを変えるときには③の時間を調整します。(このとき①と②の時間の比は変わらないようにします)
これでクロスフェードが可能になりました。

↓こんなイメージです。




GPSモジュールからはNMEAフォーマットでデータが送られてくるので、時刻合わせの際にはまずGPSの受信状態を監視し、受信できているようであれば時刻データを取得します。

基板設計

今回は小型にするという目標がありましたので、思い切って4層基板にしてみました。
ニキシー管の電源電圧が高いのでなるべく沿面距離を確保するようにしましたが、どうしても難しい箇所もありましたが、そこは妥協しました。


ケーシング

やっぱりニキシー管時計のケースはアクリルだよねということで、今回もアクリルにしました。
いつも基板をケースにどのように固定するか悩むのですが、今回はアルミ板にしてみました。アルミ板を切断・穴あけ・タッピング・曲げ加工しています。
表面の傷をごまかすためアルミ板の表面はやすりをかけてちょっとマットな仕上げにしてみました。
アクリルケースはいつもアクリ屋ドットコムさんにお願いしているのですが、座ぐり穴をあけたかったのではざい屋さんにお願いしました。ケースサイズや加工内容が違いますので一概には比較できませんでしたが、はざい屋さんの方が価格が安く、加工精度はアクリ屋ドットコムさんのほうが上のように感じました。

また、今回はあらかじめFusion360を使用して3Dモデルを作って完成イメージを固めました。Kicadで基板の3Dデータを出力させることでボタンやコネクタの位置もわかるので安心でした。



やっぱりニキシー管はいいぞ

設計をはじめてから3ヵ月ほどでようやく完成にこぎつけることができました。
GPSは贅沢にみちびき対応のものにしたこともあるのか、非常に感度がよいです。
今回でようやく実用的な域に達してきたかなぁと感じています。
やっぱりニキシー管はいいですね。





5 件のコメント:

  1. 技術書店6では電源回路の本を購入させていただきました!
    ダイバージェンスメーターなどを作るときに参考にさせていただいています
    インダクタの鳴きに悩んでいたのでありがたいです〜

    返信削除
    返信
    1. 技術書典6でお買い上げいただきありがとうございました!
      ダイバージェンスメータいいですね!
      昇圧回路は奥が深いので私もまだまだ勉強中ですがお役に立てたのならばうれしいです!

      削除
  2. ADP1621による5Vから170Vを生成する電源回路に非常に興味があります。
    12AX7を使ったバッファアンプの電源に使おうかと考えています。
    ここのページに掲載されている回路図が粗くて良く見えないのですが、上のコメントにある本を購入させて頂くと判りますでしょうか。
    宜しくお願いいたします。

    返信削除
  3. コメントありがとうございます。本記事のニキシー管時計の回路図は技術書典で頒布した本には掲載していません。
    以下にPDFファイルのリンクを貼りましたので参考になればと思います。
    https://drive.google.com/file/d/1YRxUgWU51w1zAIk7r--ncWrnGShQ9PW5/view?usp=sharing

    返信削除
  4. 大変ありがとうございます。
    右側のICに見えたものはFETだったんですね。
    理解できました。
    感謝いたします。

    返信削除