【Raspberry Pi Pico】3461BSで任意の数字を表示させる方法

3461bs-topRaspberry Pi

本記事の内容

前回に引き続き、Raspberry Pi Picoを用いて、3461BS-1「4ビット7セグメントLED」に任意の数字を表示させるコードをMicroPythonで作成しました。

数字を4桁で表示できる分、応用性が高まっているので、タイマーや温度計などの表示機器として是非ご活用ください。

3461BS「4ビット7セグメントLED」とは

発光ダイオード(LED)に数値と小数点が表示できるデジタル表示モジュールの一つです。

前回の5161BS「7セグメントLED」が数字1桁表示のみだったことに対し、こちらは4桁まで表示できます。

ちなみに表示が4桁に増えても、ピンの数は単純に4倍には増えません。アノードコモン形式で共通ピンが3本増えるだけなので、ピン数は合計で12本になります。それでも、配線には少々苦戦しました。

http://www.xlitx.com/datasheet/3461BS.pdf

配線

配線が美しくないので、正直なところ掲載するのが心苦しいですが、何とか描写しました。(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桁の数字を一度に表示させることもできるはずです。

コメント