esp32-wroom-32连接rgb
时间: 2025-05-18 12:58:00 浏览: 23
### 控制ESP32-WROOM-32连接RGB灯
对于ESP32-WROOM-32模块来说,可以通过多种方式控制RGB灯。一种常见的方式是利用PWM(脉宽调制)功能来调节红、绿、蓝三种颜色的亮度组合从而实现色彩变化的效果。
#### 利用PWM控制RGB灯
为了简化操作并提高效率,这里采用内置于`machine`库中的`PWM`类来进行初始化和配置[^1]:
```python
from machine import Pin, PWM
import time
# 定义引脚编号以及初始占空比
pins = (18, 19, 5) # R,G,B对应的GPIO号
duty_cycle = 0 # 占空比范围是从0到1023之间的一个整数
# 创建三个PWM对象分别对应RGB三原色
pwms = []
for pin_num in pins:
pwm = PWM(Pin(pin_num), freq=781) # 配置频率为781Hz
pwms.append(pwm)
def set_color(r, g, b):
"""设置LED的颜色"""
r_value = int((r / 255) * 1023)
g_value = int((g / 255) * 1023)
b_value = int((b / 255) * 1023)
pwms[0].duty(r_value)
pwms[1].duty(g_value)
pwms[2].duty(b_value)
try:
while True:
# 测试显示不同颜色
colors = [
(255, 0, 0),
(0, 255, 0),
(0, 0, 255),
(255, 255, 0),
(0, 255, 255),
(255, 0, 255),
(255, 255, 255)
]
for color in colors:
set_color(*color)
time.sleep_ms(1000)
except KeyboardInterrupt:
pass
finally:
# 清理资源
for pwm in pwms:
pwm.deinit()
```
上述代码展示了如何创建PWM实例,并定义了一个函数用于接收RGB数值作为参数调整灯光颜色。循环体内部实现了每隔一秒切换一次预设好的几种基本颜色的功能。
阅读全文
相关推荐


















