Chapter 05

🔰Lチカ(LEDをチカチカさせる) - ⭐

kotaproj
kotaproj
2021.05.23に更新

💡やること

LEDの点灯/消灯を制御します。

🏁デモ

lchika

🔧パーツ一覧

no 部品名 個数 備考
1 ラズベリーパイ 1 今回は4Bで確認
2 LED 1 -
2 抵抗-220Ω 1 -
3 ジャンパー線 適量 -
4 ブレッドボード 1 -

接続図

💻環境

開発環境

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

ラズベリーパイの設定

特になし

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

OSのクリーンインストールした前提で記載しています。

apt

pigpioライブラリは、Raspberry PiのGPIOを制御するためのライブラリです。
以下のコマンドは、はじめてインストールする場合のみ必要です。

$ sudo apt install pigpio
$ sudo service pigpiod start
$ sudo systemctl enable pigpiod.service

pip

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

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

📝手順

5回LEDが点灯→消灯を繰り返すプログラムを実行します。

コード

led.py
from gpiozero import LED
from gpiozero.pins.pigpio import PiGPIOFactory
from time import sleep

# LEDのピン設定
PIN_LED1 = 21

def main():
    # LEDピン設定
    factory = PiGPIOFactory()
    led = LED(PIN_LED1, pin_factory=factory)

    # LEDをチカチカ
    for _ in range(5):
        print("LED ON")
        led.on()
        sleep(0.5)
        print("LED OFF")
        led.off()
        sleep(0.5)

    # blinkを使用することも可能
    print("blink")
    led.blink()
    sleep(3)
    led.off()

    # toggleを使用することも可能
    print("toggle")
    for _ in range(20):
        led.toggle()
        sleep(0.1)

if __name__ == "__main__":
    main()

実行手順

(env) $ python led.py

🔎ポイント

抵抗の計算

使用する抵抗値の計算式は以下のようになります。

抵抗値[Ω]= (電源電圧[V] - 順方向電圧降下[Vf]) / 順方向電流[A]

今回の計算は以下のようになります。

※LED - 3mm赤LED - OSR5JA3Z74Aを使用した場合

LEDの仕様抜粋

  • 順方向電圧Vf
    • 2.1V
  • 1mA ~ 30mAで確認可能
    • 5mAで仮計算

ラズパイ仕様抜粋

ラズパイのGPIOは3.3V入出力

内容 値
電源電圧[V] 3.3V
順方向電圧降下[Vf]) 2.1V
順方向電流[A] 5mA

計算

(3.3[V] - 2.1[V]) / 0.050[A] = 240[Ω]

入手性がよい、220Ωを採用しています。

コードの説明

  • on() / off()
    • LEDが点灯する / LED消灯とする
  • blink()
    • 点灯/消灯を1秒単位で繰り返す
  • toggle()
    • 呼ばれるたびに...->点灯->消灯->点灯->消灯->..を繰り返す