樹莓派GPIO控制LED彩燈


樹莓派使用GPIO接口來控制LED燈,自制五彩炫光的節日彩燈。

 

1.硬件准備

a. 樹莓派(Raspberry Pi)一個

b. 彩色RGB二極管

c. 杜邦線

d. 5V電源引腳

以上所有零件均可在某寶上 買到,都很便宜。

 

 LED燈上的4根引腳分別是VCC,R,G,B。 VCC需要接到電源正極。我們把它連到樹莓派的5V引腳上。 R,G,B分別是紅綠藍燈的負極接口。我們把它們連接到樹莓派的GPIO口上。 然后跟前一篇一樣,使用PWM來控制3個小燈的明暗程度即可混合出各種不同顏色的光。

 

2.組裝圖

 

接線圖

 

按照例圖接好線 組裝完成以后,下面就可以開始編寫控制的Python代碼。

 

3.編寫代碼

#/home/pi/LEDight.py
import RPi.GPIO
import time

R,G,B=15,18,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, 70)
pwmG = RPi.GPIO.PWM(G, 70)
pwmB = RPi.GPIO.PWM(B, 70)

pwmR.start(0)
pwmG.start(0)
pwmB.start(0)

try:
   t = 0.4
   while True:
        # 紅色燈全亮,藍燈,綠燈全暗(紅色)
        pwmR.ChangeDutyCycle(0)
        pwmG.ChangeDutyCycle(100)
        pwmB.ChangeDutyCycle(100)
           time.sleep(t)
           
           # 綠色燈全亮,紅燈,藍燈全暗(綠色)
           pwmR.ChangeDutyCycle(100)
           pwmG.ChangeDutyCycle(0)
           pwmB.ChangeDutyCycle(100)
           time.sleep(t)
           
           # 藍色燈全亮,紅燈,綠燈全暗(藍色)
           pwmR.ChangeDutyCycle(100)
           pwmG.ChangeDutyCycle(100)
           pwmB.ChangeDutyCycle(0)
           time.sleep(t)
           
           # 紅燈,綠燈全亮,藍燈全暗(黃色)
           pwmR.ChangeDutyCycle(0)
           pwmG.ChangeDutyCycle(0)
           pwmB.ChangeDutyCycle(100)
           time.sleep(t)
           
           # 紅燈,藍燈全亮,綠燈全暗(洋紅色)
           pwmR.ChangeDutyCycle(0)
           pwmG.ChangeDutyCycle(100)
           pwmB.ChangeDutyCycle(0)
           time.sleep(t)
           
           # 綠燈,藍燈全亮,紅燈全暗(青色)
           pwmR.ChangeDutyCycle(100)
           pwmG.ChangeDutyCycle(0)
           pwmB.ChangeDutyCycle(0)
           time.sleep(t)
           
           # 紅燈,綠燈,藍燈全亮(白色)
           pwmR.ChangeDutyCycle(0)
           pwmG.ChangeDutyCycle(0)
           pwmB.ChangeDutyCycle(0)
           time.sleep(t)
           
           # 調整紅綠藍LED的各個顏色的亮度組合出各種顏色
           for r in xrange (0, 101, 20):
                 pwmR.ChangeDutyCycle(r)
                 for g in xrange (0, 101, 20):
                      pwmG.ChangeDutyCycle(g)
                      for b in xrange (0, 101, 20):
                             pwmB.ChangeDutyCycle(b)
                             time.sleep(0.01)
                             
except KeyboardInterrupt:
     pass

pwmR.stop() 
pwmG.stop()
pwmB.stop()

RPi.GPIO.cleanup()

 

寫完代碼后 把文件放在 /home/pi 目錄下 然后在終端執行命令 python /home/pi/LEDight.py  即可看到效果。

 

特別注意接線方式,以及復制代碼的時候 確保代碼縮進正確,輸出引腳 紅綠藍 線 千萬別接錯了。

 

效果圖

 

 

 

 

關注一下,

👇👇👇

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM