GPIOを利用してLEDを光らせる
GPIO は様々な電気回路を接続して,プログラムから制御するためのピンです.GPIOxx のピンは基本的には 3.3Vです.
ブレッドボードに図のように抵抗と LED を接続してください.
- (GPIO17) ------> (抵抗) ---------> (LED) --------------> (GND)
のように接続されていれば,場所はどこでもよいです.
LED を点灯させる(1)
以下のpythonプログラムを "test_led.py" として保存してください.editor は pico を使ってください.
pico test_led.py
python のプログラム
import gpiozero
import time
pin = gpiozero.DigitalOutputDevice(pin=17)
try:
while True:
pin.on()
time.sleep(0.2)
pin.off()
time.sleep(0.8)
finally:
pin.close()
デジタル出力は on と off だけ.
その後,以下のコマンドでプログラムを実行してください.
python test_led.py
LED を点灯させる(2)
上記のプログラムでは,GPIO を ON/OFF でしか使っていませんでしたが,PWM を使うことによって,明るさを調節することができます.
PWM(パルス幅変調)出力は、電子回路でよく使われる技術で、電気信号の「オン」と「オフ」の時間を調整することで、電力を制御する方法です。これを使えば、モーターの速度やLEDの明るさなどを調整できます。PWMは、電気の「蛇口」を素早く開けたり閉めたりするようなものです。蛇口を半分の時間だけ開ける(50%デューティサイクル)と、水が半分しか出ません。同様に、PWMで電力を調整することで、出力の強さをコントロールすることができます。
以下のpythonプログラムを "test_led2.py" として保存してください.editor は pico を使ってください.
pico test_led.py
python のプログラム
import gpiozero
import time
pin = gpiozero.PWMOutputDevice(pin=17, frequency=1000)
try:
while True:
values = [0.0, 0.1, 0.5, 1.0, 0.5, 0.1]
for value in values:
pin.value = value
time.sleep(1)
finally:
pin.close()
- value の値は 0 が最小値,1 が最大値になっており,その間で連続的に変化させことができます.