樹莓派GPIO通過PWM來控制RGB彩色LED燈,可以顯示任何我們想要的顏色。
RGB模塊簡介
這個RGB彩色LED里其實有3個燈,分別是紅燈、綠燈和藍燈。控制這三個燈分別發出不同強度的光,混合起來就能發出各種顏色的光了。 LED燈上的4根引腳分別是GND,R,G,B。 GND需要接地。我們把它連到樹莓派的電源地上。 R,G,B分別是紅綠藍燈的正極接口。我們把它們連接到樹莓派的GPIO口上。
硬件連接
R接到樹莓派GPIO18
G連接樹莓派GPIO15
B連接樹莓派GPIO14
其中GPIO編號方式為BCM編號方式,具體請看
電路連接原理圖如下:
程序代碼
新建RGB_LED.py文件,輸入以下代碼:
#!/usr/bin/env python # encoding: utf-8 import RPi.GPIO import time R,G,B=18,15,14 RPi.GPIO.setmode(RPi.GPIO.BCM) RPi.GPIO.setup(R, RPi.GPIO.OUT) RPi.GPIO.setup(G, RPi.GPIO.OUT) RPi.GPIO.setup(B, RPi.GPIO.OUT) pwmR = RPi.GPIO.PWM(R, 50) pwmG = RPi.GPIO.PWM(G, 50) pwmB = RPi.GPIO.PWM(B, 50) pwmR.start(0) pwmG.start(0) pwmB.start(0) try: t = 1 while True: # 紅色燈全亮,藍燈,綠燈全暗(紅色) pwmR.ChangeDutyCycle(100) pwmG.ChangeDutyCycle(0) pwmB.ChangeDutyCycle(0) time.sleep(t) # 綠色燈全亮,紅燈,藍燈全暗(綠色) pwmR.ChangeDutyCycle(0) pwmG.ChangeDutyCycle(100) pwmB.ChangeDutyCycle(0) time.sleep(t) # 藍色燈全亮,紅燈,綠燈全暗(藍色) pwmR.ChangeDutyCycle(0) pwmG.ChangeDutyCycle(0) pwmB.ChangeDutyCycle(100) time.sleep(t) # 紅燈,綠燈全亮,藍燈全暗(黃色) pwmR.ChangeDutyCycle(100) pwmG.ChangeDutyCycle(100) pwmB.ChangeDutyCycle(0) time.sleep(t) # 紅燈,藍燈全亮,綠燈全暗(洋紅色) pwmR.ChangeDutyCycle(100) pwmG.ChangeDutyCycle(0) pwmB.ChangeDutyCycle(100) time.sleep(t) # 綠燈,藍燈全亮,紅燈全暗(青色) pwmR.ChangeDutyCycle(0) pwmG.ChangeDutyCycle(100) pwmB.ChangeDutyCycle(100) time.sleep(t) # 紅燈,綠燈,藍燈全亮(白色) pwmR.ChangeDutyCycle(100) pwmG.ChangeDutyCycle(100) pwmB.ChangeDutyCycle(100) time.sleep(t) except KeyboardInterrupt: pass pwmR.stop() pwmG.stop() pwmB.stop() RPi.GPIO.cleanup()
然后,運行這個py腳本,就可以看到RGBLED燈在7種顏色間切換。
原創文章,轉載請注明: 轉載自科技愛好者博客




