【Raspberry Pi Pico】5161BS「7セグメントLED」で数字を表示

5161bs-topRaspberry Pi

本記事の内容

Raspberry Pi Picoを用いて、5161BS「7セグメントLED」に任意の数字を表示させるコードをMicroPythonで作成しました。

タイマーや温度計などの表示機器として、7セグメントLEDを活用してみてください。

5161BS「7セグメントLED」とは

created by Rinker
札幌貿易(Sapporo Boueki)
¥240(2024/04/15 15:56:25時点 Amazon調べ-詳細)

発光ダイオード(LED)にて数値と小数点が表示できるデジタル表示モジュールの一つです。「LED数字表示器」や「7セグLED」とも呼ばれるそうです。

LED表示器には、共通ピンが「+」のアノードコモンと、共通ピンが「−」のカソードコモンの2種類のがあります。今回使用する「5161BS」は、アノードコモンの回路になります。(データシート)

配線

アノードコモンである5161BS「7セグメントLED」の配線は、以下の通りです。共通ピンを3V3に繋ぎ、他のピンを適当なGPIOピンに繋げば完成です。

プログラムコード

たまには、Githubでなく自力で作成してみました。GPIOピンの配線が異なる場合は、numberlist配列を調整してください。

import machine
import time

numberlist = [
    [0,1,1,1,1,0,1,1], #0
    [0,0,1,0,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,1,0,1,0,0,0], #4
    [1,1,0,1,1,0,1,0], #5
    [1,1,0,1,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(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 n in range(10):
    for i in range(8):
        if numberlist[n][i]==1:
            machine.Pin(12+i, machine.Pin.OUT).value(0)
        
    time.sleep(0.5)
    clear()

numberlist配列と5161BS「7セグメントLED」の関係は以下の通りです。

まとめに代えて(実行結果)

抵抗の並びが美しくはありませんが、数字を綺麗に表示させることができました。

気温などを小数点も用いて表示させたい場合は、3個以上の7セグメントLEDが必要そうですね。

コメント

  1. 吉田純造 より:

    picoでも光らせる事が出来るのですね