ラズパイとLEDを繋いでPythonでコントロールする(応用編)

0
1749

【for文は一度のみ使用】ラズパイとLEDをPythonでコントロール

ラズパイとLEDを繋いでPythonでコントロールする(その3)の応用編です。

Pythonで同じ処理を繰り返し実行する場合、“list”や“for”文もあります。前回も同じ様なコードを使用していますが、今回は、for文は一度のみ使用しての記述となります。

用意するもの

< 必要なツール >

  • ブレットボードキット
    • ブレットボード
    • ジャンパー線(オスーメス)
    • ジャンパー線(オスーオス)

< 必要な部品 >

  • LED(赤・黄・緑)×各1
  • NPNトランジスタ(2SC1815) ×3
  • 抵抗 100Ω×3
  • 抵抗 22kΩ×3

回路図

トランジスタのベースに接続したGPIOを“High”にすることで3色のLEDを点灯させる回路です。トランジスタのベースに電流が流れることで、それぞれのトランジスタがオンになり、コレクタ―エミッタ間に電流が流れ、LEDを明るく光らせます。GPIOからこのトランジスタをコントロールすることで、LEDを光らせるタイミングを変えたりすることができます。

配線図

プログラム

今回は前回と同じ部品を使用して、3色のLEDと接続するGPIOピンの番号の組合せを指定して“list”を作った上で、各色のLEDが赤色・黄色・青色の順番に1秒間ずつ光るプログラムを書きました。

今回のコードは、前回に引き続きled_listを使用した物になります。

リストのLEDをこの順番で用意するように記述を行い、for文を使用して1秒間点灯して消灯し次のLEDを点灯させることを繰り返すだけです。

今回のfor文は前回とは違い、for文を1回のみ使用しています。

3色のLEDを順番に点灯させるPythonコード

[code]
from gpiozero import LED
from time import sleep

LED_R_PIN = 17 # Red
LED_Y_PIN = 27 # Yellow
LED_G_PIN = 22 # Green
WAIT_TIME = 1

led_list = [
LED(LED_R_PIN),
LED(LED_Y_PIN),
LED(LED_G_PIN)
]

while True:
for led in led_list:
led.on()
sleep(WAIT_TIME)
led.off()
[/code]

Pythonコードの実行

上記のコードを実行するには、

画面上の「Run」をクリックすることで実行されます。
また実行すると動作は自動では止まらないので、キーボードの「Ctrl+C」を押すことで動作が止まります。