【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」を押すことで動作が止まります。