PWM实现RGB呼吸灯的代码
时间: 2024-10-10 18:07:16 浏览: 50
PWM(Pulse Width Modulation)常用于电子设备中调整电压或电流,尤其是在LED灯的控制上。RGB呼吸灯通常是通过改变三种颜色(红绿蓝)的PWM占空比来实现渐变变化的效果。下面是一个简单的Python示例,使用Raspberry Pi的GPIO库来控制RGB LED灯:
```python
import RPi.GPIO as GPIO
import time
# 定义RGB三色LED的GPIO引脚
red_pin = 18
green_pin = 23
blue_pin = 24
GPIO.setmode(GPIO.BCM) # 使用BCM模式
GPIO.setup(red_pin, GPIO.OUT)
GPIO.setup(green_pin, GPIO.OUT)
GPIO.setup(blue_pin, GPIO.OUT)
def set_color(r, g, b):
duty_cycle = int(0.6 * 255) # PWM频率和最大值
GPIO.output(red_pin, duty_cycle if r else 0)
GPIO.output(green_pin, duty_cycle if g else 0)
GPIO.output(blue_pin, duty_cycle if b else 0)
# 开始呼吸灯效果
for i in range(0, 100): # 100步从暗到亮,再从亮到暗
for j in range(0, 255, 5): # 每次增加亮度5
set_color(True, True, True)
time.sleep(0.05)
for j in range(250, -1, -5): # 同样减小亮度
set_color(True, True, True)
time.sleep(0.05)
GPIO.cleanup() # 结束时清空GPIO状态
阅读全文