Raspberry PiでPWM制御を使ってLEDを点滅
※本サイトを参考にして被った損害、怪我、事故、障害、不都合、不利益等に関して責任は一切負いません。
PWM制御を行うと、点灯時間と消灯時間を調整してLEDの光を明るく見せたり暗く見たりできる。
下記のサイトを参考に(模倣)した。
raspberry-gpio-python / Wiki / PWM
GPIO17, 18, 22, 23のそれぞれに100ΩとLED(アノード)を直列に接続し、LED(カソード)をGNDへ。
4個のLEDが順々に徐々に明るくなって、徐々に暗くなっていく。
#!/usr/bin/python import time import os import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) DEBUG = 0 # 使用するGPIO GPIO17 = 17 GPIO18 = 18 GPIO22 = 22 GPIO23 = 23 # GPIOの設定 GPIO.output(pin1, False) GPIO.output(pin2, False) GPIO.output(pin3, False) GPIO.output(pin4, False) GPIO.setup(GPIO17, GPIO.OUT) GPIO.setup(GPIO18, GPIO.OUT) GPIO.setup(GPIO22, GPIO.OUT) GPIO.setup(GPIO23, GPIO.OUT) p17 = GPIO.PWM(GPIO17, 60) p18 = GPIO.PWM(GPIO18, 60) p22 = GPIO.PWM(GPIO22, 60) p23 = GPIO.PWM(GPIO23, 60) p17.start(0) p18.start(0) p22.start(0) p23.start(0) try: while 1: # 徐々に明るく for dc in range(0, 101, 20): p17.ChangeDutyCycle(dc) time.sleep(0.01) for dc in range(0, 101, 20): p18.ChangeDutyCycle(dc) time.sleep(0.01) for dc in range(0, 101, 20): p22.ChangeDutyCycle(dc) time.sleep(0.01) for dc in range(0, 101, 20): p23.ChangeDutyCycle(dc) time.sleep(0.01) # 徐々に暗く for dc in range(100, -1, -20): p17.ChangeDutyCycle(dc) time.sleep(0.01) for dc in range(100, -1, -20): p18.ChangeDutyCycle(dc) time.sleep(0.01) for dc in range(100, -1, -20): p22.ChangeDutyCycle(dc) time.sleep(0.01) for dc in range(100, -1, -20): p23.ChangeDutyCycle(dc) time.sleep(0.01) except KeyboardInterrupt: pass p17.stop() p18.stop() p22.stop() p23.stop() GPIO.cleanup()
クリスマスイルミネーション作りたいね。