本記事の内容
前回に引き続き、Raspberry Pi Picoを用いて、3461BS-1「4ビット7セグメントLED」に任意の数字を表示させるコードをMicroPythonで作成しました。
数字を4桁で表示できる分、応用性が高まっているので、タイマーや温度計などの表示機器として是非ご活用ください。
3461BS「4ビット7セグメントLED」とは
発光ダイオード(LED)に数値と小数点が表示できるデジタル表示モジュールの一つです。
前回の5161BS「7セグメントLED」が数字1桁表示のみだったことに対し、こちらは4桁まで表示できます。
ちなみに表示が4桁に増えても、ピンの数は単純に4倍には増えません。アノードコモン形式で共通ピンが3本増えるだけなので、ピン数は合計で12本になります。それでも、配線には少々苦戦しました。
配線
配線が美しくないので、正直なところ掲載するのが心苦しいですが、何とか描写しました。(3461BSモジュールがなかったので、別のモジュールで代用しています。)
配線とコードについては、前回の5161bsとなるべく同じものを使いまわせるような設計にしています。
プログラムコード
各桁に0~9の数字を順番に表示させるコードになります。使用したGPIOピンの配線が異なる場合は、numberlist配列を微調整してください。
import machine
import time
numberlist = [
[0,1,1,1,1,0,1,1], #0
[0,0,0,1,1,0,0,0], #1
[1,0,1,1,0,0,1,1], #2
[1,0,1,1,1,0,1,0], #3
[1,1,0,1,1,0,0,0], #4
[1,1,1,0,1,0,1,0], #5
[1,1,1,0,1,0,1,1], #6
[0,1,1,1,1,0,0,0], #7
[1,1,1,1,1,0,1,1], #8
[1,1,1,1,1,0,1,0] #9
]
def clear():
machine.Pin(8, machine.Pin.OUT).value(0)
machine.Pin(9, machine.Pin.OUT).value(0)
machine.Pin(10, machine.Pin.OUT).value(0)
machine.Pin(11, machine.Pin.OUT).value(0)
machine.Pin(12, machine.Pin.OUT).value(1)
machine.Pin(13, machine.Pin.OUT).value(1)
machine.Pin(14, machine.Pin.OUT).value(1)
machine.Pin(15, machine.Pin.OUT).value(1)
machine.Pin(16, machine.Pin.OUT).value(1)
machine.Pin(17, machine.Pin.OUT).value(1)
machine.Pin(18, machine.Pin.OUT).value(1)
machine.Pin(19, machine.Pin.OUT).value(1)
for m in range(4):
for n in range(10):
machine.Pin(8+m, machine.Pin.OUT).value(1)
for i in range(8):
if numberlist[n][i]==1:
machine.Pin(12+i, machine.Pin.OUT).value(0)
time.sleep(0.2)
clear()
まとめに代えて(実行結果)
無事に各桁に任意の数字を表示させることができました。
今回は途中で断念してしまいましたが、各桁の数字を高速で表示させれば、4桁の数字を一度に表示させることもできるはずです。
コメント