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 が最大値になっており,その間で連続的に変化させことができます.