樹莓派GPIO經過PWM來控制RGB彩色LED燈,能夠顯示任何咱們想要的顏色。python
這個RGB彩色LED裏其實有3個燈,分別是紅燈、綠燈和藍燈。控制這三個燈分別發出不一樣強度的光,混合起來就能發出各類顏色的光了。 LED燈上的4根引腳分別是GND,R,G,B。 GND須要接地。咱們把它連到樹莓派的電源地上。 R,G,B分別是紅綠藍燈的正極接口。咱們把它們鏈接到樹莓派的GPIO口上。spa
R接到樹莓派GPIO18blog
G鏈接樹莓派GPIO15接口
B鏈接樹莓派GPIO14utf-8
其中GPIO編號方式爲BCM編號方式,具體請看get
電路鏈接原理圖以下:博客
新建RGB_LED.py文件,輸入如下代碼:class
#!/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種顏色間切換。
原創文章,轉載請註明: 轉載自科技愛好者博客