関連記事はこちら
・ニキシー管について
・ニキシー管でいろいろなものを表示するものを作った【ソフトウェア編】
はじめに
今回はニキシー管を使った電子工作をします。ニキシー管自体は数年前に入手していたのですが、ずっと放置していました。ようやく重い腰を上げて取り組もうと思います。数字表示の管7個と、記号表示の管1個を使っていろいろな情報を表示するものを作ります。
完成したものはこれです。


作りたいものの仕様と主な部品
ニキシー管を使いながら、内部はマイコンと各種センサ、PC連携まで含めた少し欲張りな構成になっています。表示するものは以下の通り。
- 時刻(0.1秒単位まで)
- 温度
- 湿度
- CO₂濃度
- PCからシリアル通信で送られた情報
- CPU温度
- CPU使用率
- メモリ使用率
環境情報はセンサから取得して、PCの情報は常時接続されたシリアル通信経由で受信します。表示内容は押しボタンスイッチで切り替えるようにします。
ニキシー管は数字表示のIN-12Bを7本、記号表示のIN-19Aを1本を使用して、7桁の数字+記号を表示します。
システム全体は次のようになっています。

主要な部品
- ArduinoNANO
- ニキシー管 (IN-12B × 7, IN-19A × 1)
- ソ連製ネオンランプ(インジケータ用)
- 74HC595(シフトレジスタ)
- K155ID1(デコーダIC)
- SCD40(環境センサ)
- DS3231(RTC)
- PDトリガー
- DCファン
arduinoピン接続先

電源モジュール
ニキシー管を使った工作では直流200V程度の高電圧とロジック回路の低電圧を扱います。なるべく使いやすい構成を目指しました。
PDトリガーによる12V入力
電源の入力には、USB Type-CのPDトリガーを使用しています。PDトリガーを使うことでUSB PD対応電源を使えます。
ニキシー管用直流200V電源の生成

ニキシー管とネオンランプの点灯には、高電圧の直流電源が必要です。本装置では、昇圧チョッパ回路を用いて、12Vから200Vの直流電圧を生成しています。昇圧回路の製作は以下のサイトを参考にしました。
tmct-web「MC34063 昇圧回路の効率を改善する」
https://ss1.xrea.com/tmct.s1009.xrea.com/doc/ta-ja-7e4e01.html
当初は市販の電源モジュールを使う予定でしたが、届くのが遅かったため手元の部品で作りました。部品をそろえる手間やコストを考えると市販のものを使う方が良いです。
ロジック回路用5V電源
マイコンや各ICに必要な5Vは三端子レギュレータを使用して生成しました。


ニキシー管制御回路
この装置では、複数本のニキシー管を効率よく制御するために、ダイナミック点灯方式を採用しています。常時すべての管を点灯させるのではなく、1本ずつ高速に切り替えて点灯させることで、配線本数や消費電力を抑えています。
回路の全体構成
ニキシー管制御回路は、大きく分けて次の2系統で構成されています。
・アノード(桁)側の制御
・カソード(数字・記号)側の制御

アノード側の制御
アノード制御にはシフトレジスタとフォトカプラの組み合わせを使用しています。74HC595は8ビットのシフトレジスタで、1個で8桁分のアノード制御が可能です。
74HC595は出力イネーブル(OE)端子が備わっています。フォトカプラのターンオフの時間を稼ぐために出力をハイインピーダンスにして一定時間待機します。これによりゴーストを防ぎます。
配線には寄生容量があり、高電圧が一時的にたまってしまいます。これが原因で消灯したはずの桁が光ってしまうことがあります。対策として各アノードを1MΩの抵抗を介してGNDに接続し、電荷を逃がすようにしています。これは以下のサイトを参考にしました。
機械オタクの製作記「ニキシー管時計 回路の紹介!」
https://yuukijapantechnology.blog.fc2.com/blog-entry-66.html
カソード側の制御
カソード側の制御には、デコーダIC K155ID1を使用しています。K155ID1はニキシー管の数字カソードを直接駆動できるICで、マイコン側の制御が簡単で配線も簡略化できます。
コンマの制御
K155ID1は数字のカソードしか制御できないため、コンマのカソードはトランジスタで制御しています。
IN-19A(記号管)の扱い
IN-19Aは記号表示用のニキシー管ですが、各記号を適当な数字のカソードに割り振ることで対応しています。
電流制限抵抗の設定
ニキシー管の明るさと寿命に大きく影響するのが電流制限抵抗です。今回は以下の値に落ち着きました。
・IN-12B(数字):10kΩ
・IN-12B(コンマ):15kΩ
・IN-19A:12kΩ
これらの値は計算だけで決めたものではなく、実際に点灯させながらカット&トライで調整しています。表示の明るさはニキシー管用電源の電圧を調整することで対応しています。表示を明るくするためにデータシート推奨の電流よりも多く流しています。

時刻と環境データの取得
この装置ではCO₂・温湿度センサとRTCを使って時刻と環境データを取得しています。

CO₂・温湿度センサSCD40
環境データの取得には、SCD40を使用しています。このセンサはCO₂濃度に加えて温度と湿度も同時に取得できます。SCD40は、光音響NDIR方式のCO₂センサです。NDIR(非分散型赤外線)方式では、CO₂が特定の波長の赤外線を吸収する性質を利用します。SCD40の場合は、赤外線をCO₂に照射し、その吸収によって生じる微小な圧力変化(音)を検出します。

リアルタイムクロック(RTC)
時刻管理にはリアルタイムクロック(RTC)を使用しています。RTCは内部に時計回路とバックアップ電源を備えており、装置の主電源を切っても現在時刻を保持し続けることができます。
今回使用しているのはDS3231というRTCモジュールです。DS3231は日時情報を取得できるだけでなく、1秒ごとにパルスを出力するPPS(Pulse Per Second)信号を利用することができます。このPPS信号を利用することで、正確な1秒の区切りを基準にしつつ、Arduinoの millis()関数でその後の経過時間を計測し、0.1秒単位での時刻取得を実現しています。
ArduinoとSCD40・RTCはI2C通信で接続します。

表示内容の切り替え
この装置では複数の情報をニキシー管に表示するため、表示内容の切り替え操作が必要になります。物理スイッチと表示インジケータを組み合わせた構成にしました。
- スイッチ1
- 時刻
- 温度
- 湿度
- CO2濃度
- スイッチ2
- CPU温度
- CPU使用率
- メモリ使用率
それぞれのスイッチを押すことで、対応する表示グループに切り替わる仕組みです。PCに接続していない状態でも環境情報と時刻だけは単独で表示できるようにしています。
スイッチ入力回路
スイッチの入力回路は5Vでプルアップするシンプルな構成です。通常時入力はHIGHで、スイッチを押すと接点を介してGNDに接続されLOWとなります。

ネオンランプによる表示インジケータ
現在どの表示モードなのかを一目で分かるように2つのネオンランプを表示インジケータとして使用しています。ネオンランプ1が時刻・環境情報表示中、ネオンランプ2がPC情報表示中という具合。LEDではなくネオンランプを使うことでニキシー管とマッチしています。

DCファンによるケース内換気
この装置では、温度・湿度・CO₂センサをケース内部に配置しています。そのため、ケース内の空気が滞留すると、実際の室内環境とズレた値を測定してしまいます。そこで、外気を循環させるためにDCファンを搭載しました。
使用しているDCファンはジャンクのグラボから取り出した12V駆動の一般的なタイプです。ファンの制御にはMOSFETを使い、ArduinoからのPWM信号で回転数を調整しています。

ケースの製作
ケースは、正面・背面パネルをアルミ板で、サイドパネルをチーク板で作りました。それぞれのパネルは3Dプリンタで作ったブラケットで固定します。ニキシー管を保護するために鋼材でガードを作りました。










組み立て





完成


これでハードウェアは完成です。次回はソフトウェアを紹介します。
