プログラミング逆引き辞典

~ 多言語対応のプログラミングレシピ ~

Raspberry Pi LEDライトの点灯とPWM制御をでの点滅サンプルコード

■環境

・デバイスRaspberry Pi 4
・言語:Python
・IDE:Geany
 
 


■材料

・RGBフルカラーLED
・抵抗(100Ω)×3
・ジャンパーワイヤー×4
 
 


■サンプルコード

#coding: utf-8

import RPi.GPIO as GPIO
import time

#端子の配列をBroadcomチップに準拠
GPIO.setmode(GPIO.BCM)

#出力端子番号
red_pin = 16
blue_pin = 20
green_pin = 21

#端子番号を配列に格納
array_pin = {red_pin, blue_pin, green_pin}
for i in array_pin:
    print ('出力端子番号: ' + str(i))
    #対象端子出力に設定
    GPIO.setup(i, GPIO.OUT)
    #対象端子を点灯
    GPIO.output(i, GPIO.HIGH)
    #1秒待つ
    time.sleep(1)
    #対象端子を消灯
    GPIO.output(i, GPIO.LOW)

#PWMで明るさを制御する端子を設定 引数:(端子番号, 周波数Hz)
r = GPIO.PWM(red_pin, 50)
#PWM出力が開始(引数はデューティー比)
r.start(0)

print ('PWMで明るさを制御')
#10回繰り返し
for loop in range(20):
    #range(start, stop, step) 0〜100まで20おき
    #明るくする間隔の制御
    for i in range(0,100,20):
        #明るさ制御(数にデューティー比を0~100の間でON・OFFのON比率を指定)
        r.ChangeDutyCycle(i)
        time.sleep(0.02)
    #暗くする間隔の制御
    for i in range(100,0,-20):
        r.ChangeDutyCycle(i)
        time.sleep(0.02)

#端子の開放
GPIO.cleanup()