はじめに
秋月電子で売っているTitan Micro Electronics製7セグメントLEDドライバーIC、TM1640を使用したディスプレイを製作しました。このIC一つで16桁の表示が可能です。
この基板で、初めてKiCADを使用してパターン設計、Elecrowへ基板発注を行ってみました。
回路図
回路はデータシートの推奨回路の通りです。7セグメントLEDは最大の16個で製作します。
電源5V、シリアルインターフェース(CLK、DIN)で動作します。
このICはダイナミック点灯と呼ばれる制御方式で動作しており、何がダイナミックなのかというと「それは残像だ・・・」ということです。実際には同時に1つの7セグメントLEDしか点灯していませんが、高速に切り替わることで人間の目には全部点灯している様に見えます。これによって制御ピン数を削減したり、消費電力を節約したり出来ます。
しかし16桁も表示してホントにチラつかないんでしょうか?確認してみたいと思います。
部品リスト
品名 | 参照名 | 数量 | 数値・仕様 | 規格・フットプリント |
抵抗 | R2 R1 | 2 | 10kΩ | 1608サイズ |
コンデンサ | C1 C2 | 2 | 100uF/6.3V~ | 電解コンデンサ 直径:6.3mm ピッチ2.50mm |
コンデンサ | C3 | 1 | 0.1uF/6.3V~ | 1608サイズ |
IC | IC1 | 1 | TM1640 秋月電子(I-13225) | SOP28 |
7セグメント LED | U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11U12 U13 U14 U15 U16 | 16 | OSL10321-LR 秋月電子(I-12286) | 赤色、カソードコモン OptoSupply |
端子 | J1 | 1 | – | ピンヘッダ1×04 ピッチ2.54mm |
部品は種類が少なくてシンプルですね。7セグメントLEDはカソードコモン品を使用します。今回は秋月電子で売っているオプトサプライのOSL10321-LR(赤色)を使用することにしました。8mm文字サイズでコンパクトです。(スタンレー電気のNKR131Sとピン互換だそうです)
※2020/7に確認したらOSL10326シリーズの方が色のラインナップが充実しているみたいですね…ドットのピン配列が異なるため、今回の基板ではこれは使えません。
基板レイアウトと完成予想予想3D 図
Elecrowは100mm角の基板サイズまでお安く発注出来ます。今回は小さい7セグにしましたが横が8桁までが限界だったので、2行にしてます。また、4桁づつ少し間隔を開けて、それぞれ違うパラメーターを表示させて使ったりしようかなと考えてます。
裏面にはこのサイトのURLのQRコードをシルク印刷してみました。
方法については、下記のページにまとめましたので参照ください。
3D表示はレイトレーシングをONにするとリアルに見えますね。 裏面は暗くなったのでOFFにしてます。
C面の部品実装図。※ S面には部品はありません。
到着した基板
Elecrowから届いた基板がこちらです。レジスト色は青で注文してみました。
今回の基板でKiCADでの基板設計、ガーバー書き出し、Elecrowへの発注のやり方を覚えたので、調子に乗って次々と基板を発注しています。組み立てと動作確認が全然出来てませんが、出来たらボチボチと記事を作って公開したいと考えてます。
組み立て後の写真
部品の種類が少ないため、組み立ては簡単です。ただ、7セグメントLEDが16個×10ピンでこれだけで160箇所もはんだ付け・リードカットをしないといけません。
修行だと思ってひたすらにはんだ付けしました。フロー半田したくなりますね。
7セグメントLEDの向きだけは絶対に間違えないように気を付けて作業しました。
組み立てた後から気がつきましたが、この基板をスモークのアクリルの裏に配置しようとした場合、電解コンデンサが飛び出して邪魔です。背の低いものを使用するか、裏面(S面)につければ良かったかもです。
動作確認
サクッと動作確認!したいところですが、PICマイコンのプログラムがまだ出来ていません。自分のPICマイコンのお勉強のために作った側面もあります。
今回はとりあえずArduinoで動作確認してみます。GithubでTM1640とそのシリーズのライブラリを公開してくれています。
これとAruduino Uno(互換品)を使ったら拍子抜けするほど簡単に動作させることができました。さすがArduinoです先人の豊富なライブラリが活かせますね。
16個同時点灯させてもチラツキもほとんど気になりません。
しかし、表示の並びが思ったのと逆です。U1~U16(7セグLEDのGRID1~16)までを、下位の桁を1として配線したのですが、普通逆なんでしょうか?
プログラムで何とか出来るのかもしれませんが、基板作り直そうかな~orz