💡やること
7セグメントLEDを制御します。
🏁デモ
🔧パーツ一覧
no | 部品名 | 個数 | 備考 |
---|---|---|---|
1 | ラズベリーパイ | 1 | 4B |
2 | 7セグメントLED | 1 | OSL10561-LB 秋月 |
3 | 抵抗-470Ω | 8 | 計算方法は、こちら |
4 | ジャンパー線 | 適量 | - |
5 | ブレッドボード | 1 | - |
接続図
💻環境
開発環境
🍓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モジュールが用意されています。
数値だけでなく、英字にも対応しています。