内容简介:树莓派GPIO控制RGB彩色LED灯
树莓派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种颜色间切换。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Arduino 点亮RGB彩色流水灯
- go gl 彩色的三角形
- 如何把Recordset转换成彩色的XML文件
- Python使用MyQR制作专属动态彩色二维码
- 生成自己 QQ、微信的彩色动态图二维码
- RPI: 使用FPGA点亮LED 点阵屏 – LED彩色单元板
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。