2018年11月5日月曜日

今更ですがESP32でニキシー管時計を作る


■はじめに■

先日、知人Kさんから依頼されてニキシー管時計を修理しました。一度うまくいったんですが、数日後また破損。もう一度調べてみたら高圧側のトランジスタが破損。交換しても直らなかったのであとはわからーんとギブアップしました。申し訳ない。

K氏はオークションで入手したそうですが……基板はヤニまみれ(フラックス洗ってない)でICもニキシー管もソケット無しの直付け状態、少し経験のある人なら基板見ただけで「ギャッ」と叫びたくなる代物でした。

ちゃんと作ればそれなりにできるんじゃね?ってことで、ついうっかり、アマゾンでニキシー管と74141互換チップなどをポチってしまいました。

てことで作ります。

■仕様と設計■

せっかくニキシーなので時計の基本機能をTTL(Nシリーズ)やDTLで作ったら超クールなのですが、そこまでは攻めません。手元にゴロゴロしているESP32を使います。ESP-WROOM-02と比べてGPIOが潤沢なので時計も簡単に作れます(そういえばまだESP32でデジタルクロック作ってないな)。

最近の私は3.3Vが標準電圧で、5Vは高圧です。しかしニキシー管は180vという超高圧で動作しますので怖いとかいっていられません。高圧を作るには、DC/DCを使います。せっかくADC付きのCPUがあるので、それをコントローラにして昇圧チョッパー回路で高圧を作ります。

ニキシー管はダイナミックドライブにして、セグメントドライブには前記の通り74141を使い、カラム側のスイッチにはMOSフォトカプラを使います。これならよっぽどバカな失敗をやらかさない限りはCPUなどが壊れることがないので。CPUはまだしもMacに高圧かかったらもう生きていけません。

チョッパ昇圧回路のスイッチング周波数とかL値どうしようかなと思っていたら、計算式が見つかった。すごいよインターネッツ。試算するとだいたい経験則と近い値が返ってきたので、使わせていただきます(Rds=200mΩ,L=220uH,V=5v,I=0.1Aで520kHz)。ありがとうございます。

なお、ESP32にはPWMをわりと細かく制御できるledcなんたらという命令群がありますが、8bit精度の場合には320khzあたりが上限みたいです。1000000hzと指定してもこのぐらいの周波数しか出てきません。手持ちのMOSFET(パワーMOSFET TK6Q60W (600V6.2A))はRdsが600mΩ程度なので上記計算式からL=470uHを使えば良い感じで昇圧回路が働くのではないかと思われます(ブレッドボードの直流抵抗もバカにならないんですが、とりあえず気にしない)。整流にはファストリカバリダイオード(ファストリカバリダイオード 1JU41 (10本入))、キャパシタにはこれ(電源用電解コンデンサ   47μF400V105℃(ルビコンBXC))を使います。ESP32のledcなんたらについてはこの辺。


■実験■

とにもかくにも高圧回路。次にニキシー管点灯を実験します。

マイコンで制御する高圧発生回路は以前はと撃退用にLPC1114FN28で作りました。今回もよくあるMOSFET使用のチョッパー型昇圧回路を作ります。発生電圧の計測は抵抗で1/100に分圧しマイコンのADCを使います。MOSFETはNPNトランジスタでドライブします。

MOSFETの使い方に関しては、ここの解説が定番かと思います。

PWM周期はカットアンドトライで詰めて300vまで出せることを確認しました。コンデンサなどの耐圧がボトルネック(400V)なので、こんなに高くする必要はもちろんないんですが、PWMのデューティーとリニアに比例するあたりで使わないと制御プログラムが複雑になるので。

あとは可変抵抗もADCに接続して手動で設定電圧を可変できるようにしておき、発生した高圧も分圧抵抗通して別のADCに入力。可変抵抗で調節した値に電圧が自動調整されるコードを実行して、プレートに高圧、適当な数字をGNDに接続して、点灯テストをしました。IN-12Aの場合、120Vぐらいからセグメント?の一部が光り始め125Vでフル点灯になりました。よっしゃよっしゃ。


その後、一度部品をバラして組み直したら何故か電圧が60Vぐらいしか上がらなくなってしまいました。原因は電解コンデンサの極性が逆でした。怖い怖い。これヘタすれば爆発しますからね。気をつけましょう。なお逆接続で使った電解コンデンサは内部の劣化が進んでいる可能性が高いので、勿体ないけど廃棄します。申し訳ない>電解

で、この電圧管理部分は他の処理でブロックされるわけにはいかないので、別タスクとして起動します。Arduino ESP32はFree RTOSベースなのでありがたいです。

■そして茨の道■

ニキシー管には12本の端子があります。6桁だと72本っすね……ええもう修行僧になって配線しましたよ。今回ダイナミック点灯で数字に関しては全部並列です。なので、エナメル線を使いました。先日UEW線を試してみてイマイチだったのですが、線を細いものに変えてみたらばっちりでした。


ラグにエナメル線を2回通して絡めておき、少し温度を高めにしたハンダごてでじっくり溶かし込んでやります。イヤな煙が出るけど、気にしません。ざっと2時間ぐらいかかりましたが、最初にワイヤを全部切っておいて試行錯誤なしなら小一時間ぐらいでしょうか。なお、写真上の方にあるのは、導通確認用に作った定電流IC+LED付き電池ボックスです。


先週金曜日にiPhone Xが届いたのですが、なんかムダに写真がキレイですw なおソケットの色むらは買ったときからで私が焦がしたわけではないので念のため。

それからアノードは各桁ごとに配線します。写真ではオレンジ色の配線。高圧側なので一応26AWGのシリコンワイヤを使いました。ダイナミック点灯のコードを書いて、無事6桁点灯しました。最初隣の桁が薄ぼんやり点灯する現象が起こったのですが、そこはソフトウェア制御なので、ガードタイムを設けてカバー。

コーヒーカップ、洗いなさい

■ソフト■

と、ここまで三連休のうち7時間ぐらいで終わりました。時計のソフトは何度も作っているので、翌週末の午後で何とか完成。もうちょっと掃除したら公開します。

でも、時計として使うには、ちゃんとケースに入れないとダメですね。電流弱いからトラッキング現象で炎上、なんてことにはならないでしょうけども。

ってことで、そのうちケースとソフト掃除が終わったら続きを書きます。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。