前回記事にてM5Stack Core2のGPIOを使ったLチカについて紹介しました。
今回はGPIOを使って7セグメントLEDを制御しようと思います。
【注意】結論から言うとGPIOを使って7セグメントLEDの制御は出来ませんでした【注意】
考え方
micro:bitでも行ったようにGPIOを使いLチカを応用して7セグメントLEDの各部分を光らせて数字を表現させます。
M5StackにはGPIOが豊富に装備されているので今回制御する2桁7セグメントLED(ドットを省く9つ接続が必要)も不足無く接続できそうです。
この中から適当に9つ使って制御が出来そうです。
今回は「23」「18」「3」「35」「36」「25」「26」「1」「22」の9つを使う事にしました。
接続イメージ
M5Stack core2と2桁7セグメントLED、抵抗をそれぞれ接続します。
【注意】この接続ではM5Stackおよび電子部品が壊れる恐れがあります【注意】
M5Stack core2のイメージが見つからなかったので旧M5Stackで代用しています。
プログラミング(UIFlow)
まずは「0」を常時表示させるためにA、B、C、D、E、Fを点灯、Gを消灯とするプログラムを組みます。
【注意】このプログラムではM5Stackおよび電子部品が壊れる恐れがあります【注意】
電位差のある1桁目のA、B、C、D、E、Fが通電して該当のLEDが点灯するプログラムが出来上がりました。
それでは早速M5Stack core2で動作させてみましょう。
動作・・・しない
接続イメージを元に配線を行い、プログラムをRUNしてみるとすぐに異変がありました。
M5Stack core2のLCDは横に1本の黒い線が表示され、7セグメントLEDはうっすらとした明かりで点滅を繰り返していました。
怖くなったのですぐリセットしてしまい写真は撮れていませんでした。
何か情報が無いかな?と思いネットで調べていくとらびやんさんのツイートにぶち当たりました。
安心して使えるGPIOが4本だけでは7セグメントLEDを直接制御できないorz
まとめ
M5Stack core2のGPIOを使って7セグメントLEDを直接制御する事は困難(ほぼ不可)な事が分かりました。
M5Stack core2から7セグメントLEDの制御を行いたい場合には素直にI2C制御の7セグメントLEDを調達するかArduinoなどを経由して制御する必要がありそうです。
今回は失敗しましたが良い経験が出来ました。
今後、GPIOを使う場合には5、12、13、26で対応できる方法を考えようと思います。
コメント