Chapter 07

7️⃣7セグメントLEDを制御する - ⭐⭐

kotaproj
kotaproj
2024.10.13に更新

💡やること

7セグメントLEDを制御します。

🏁デモ

🔧パーツ一覧

no 部品名 個数 備考
1 ラズベリーパイ 1 4B
2 7セグメントLED 1 OSL10561-LB 秋月
3 抵抗-470Ω 8 計算方法は、こちら
4 ジャンパー線 適量 -
5 ブレッドボード 1 -

接続図

Image from Gyazo


💻環境

開発環境

🍓4 : ラズベリーパイ4以前

  • Linux rpi 5.10.17-v7l+ #1403 SMP Mon Feb 22 11:33:35 GMT 2021 armv7l GNU/Linux
  • Python 3.7.3 (default, Jan 22 2021, 20:04:44)

🍓5 : ラズベリーパイ5

  • Linux rpi5bagr 6.6.31+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.31-1+rpt1 (2024-05-29) aarch64 GNU/Linux
  • Python 3.11.2 (main, May 2 2024, 11:59:08) [GCC 12.2.0] on linux

ラズベリーパイの設定

特になし

モジュールのインストール

apt

4以前と5で分けて記載します。

🍓4 : ラズベリーパイ4以前

  • pigpioライブラリは、Raspberry PiのGPIOを制御するためのライブラリです。
  • 以下のコマンドは、はじめてインストールする場合のみ必要です。
    $ sudo apt install pigpio
    $ sudo service pigpiod start
    $ sudo systemctl enable pigpiod.service
    

🍓5 : ラズベリーパイ5

  • 特になし

pip

Pythonに関するモジュールをインストールします。

🍓4 : ラズベリーパイ4以前

$ python3 -m venv env
$ source env/bin/activate
(env) $ pip install pigpio
(env) $ pip install gpiozero

🍓5 : ラズベリーパイ5

$ python3 -m venv env
$ source env/bin/activate
(env) $ pip install gpiozero
(env) $ pip3 uninstall rpi-gpio
(env) $ pip3 install rpi-lgpio

📝手順

3 -> 2 -> 1 -> G -> O と表示するプログラムで確認します。

コード

動作は、コメントに記載しています。

led_7seg.py
from gpiozero import LEDCharDisplay
from time import sleep

def main():
    display = LEDCharDisplay(21, 20, 16, 22, 23, 24, 12, dp=25)

    for char in '321GO':
        display.value = char
        sleep(1)

    display.off()

if __name__ == "__main__":
    main()

実行手順

(env) $ python led_7seg.py

デモ用に表示されます。

🔎ポイント

7セグメントLED

7セグメントLEDは、複数のLEDで構成されています。アノードコモンとカソードコモンの2種類があります。

本チャプタでは、カソードコモンを利用しています。GNDを共通にすることで、ピン数を減らすメリットがあります。

LEDCharDisplayモジュール

GPIO Zeroでは、7セグメントLEDを制御するためのLEDCharDisplayモジュールが用意されています。
数値だけでなく、英字にも対応しています。