こんばんは
今日の電子工作7セグメントLEDをI/Oエキスパンダー(MCP23S08)で点灯
昨日は電源を直接繋いで点灯を確認しましたが、今日はプログラムからの点灯です
I/Oエキスパンダー(MCP23S08)は8個のPIOを出せるのでちょうど7セグメントにぴったりです
しかし各ピンから何ボルトの信号が出ているのかを確認してからでないと安易に電気を通せません
そこで以前勉強のために本を見ながら繋いだ回路をもう一度組んで信号が出ているときにテスターを当てて見ました
ICに3.3Vが入力されているのだからやはり3.3Vが出ていました
これではその信号を直接7セグメントに入れるわけには行きません
抵抗を各信号に入れて落とすか、元の電圧を落とすかです
そこでmicro:bitは2V程度でも動作するのは以前確認していたのでとりあえず今の電源回路の2.5V側を使うことにしました
2.5Vでは7セグメントは大丈夫なことは昨日確認済みです
それが上の写真で電圧MAXなのでギラギラしています
ディプスイッチで各信号とセグメントの対応を確認をしながら最終的に0から9までとAからFまでが点灯できるようになりました
プログラムは0から15までの数字に対応した0からFまでのセグメントの点灯を0と1で表した8ビットの2進数を整数にしてSPIインターフェースでICに与えています
セグメントの対応が済めばディップスイッチは必要なくなるので一つのブレッドボードに組み直しました
1桁の7セグメントはこれで対応できましたが4個同時にするにはもう一つI/Oエキスパンダー(MCP23S08)を用意してそれで1〜4のユニットを切り替えるようにします
今回の7セグメントはカソードコモンにしました
アノードコモンもあるんですがどっちにしたらいいのかわからないので、直感でカソードコモンにしました
直感の根拠は「コモンといえばGNDでしょ、GNDはカソードでしょ」とそんな固定観念と、セグメントの配線図を見たときカソードコモンの方がトランジスタの向きが自然で直感的にはピンとくるものがあったからです
まあカソードコモンでもアノードコモンでも「電池の向きが違うだけ(?)」と安易な気持ちもありました
今回の7セグメントは10本のピンがあり3番と8番がカソードでGNDに繋いであります
これをHighにすればこのユニットは動作しなくなるので、順番にLowにしながら表示を高速で切り替えることになります
こういうやり方をダイナミック点灯とかダイナミック接続と言うようです
高速といってもmicro:bitの性能ですから、案外のろのろと表示が流れるのかもしれません
明日から休みなので頑張れば明日なんとかなるかもしれません
今日のもう一つの成果はこれ
ブレッドボード用のワイヤーを少し自作しました
出来合いのものもありますが、特定のピン(オスオス)が不足することがあるのと、長さも長めとか短かめが欲しい時があります
ブレッドボード間や電源回路は長めのワイヤーで繋いだ方がゆとりがありますし、ブレッドボード上の配線は短いものが欲しい時があります
導線とピン金具とハウジング、それぞれは5円・10円といった安いものなので自作すれば随分安くできます
何本か作ってみて、何本か失敗して、やっとコツを掴んできました
軽く半田付けしてあるのでハウジングに入らないものも出てきます
そんな時は熱収縮チューブで包めば大丈夫です
2線・3線・4線と束ねたものも作っておくと便利でしょう
もう、徹底的に自作を楽しんでいます
最近はあまり花の写真を撮っていませんが、写真に飽きたのではなく、今年は花が少ないみたいです
まあ行動範囲が狭いのでこんなものなのかもしれません