项目06 RGB LED#

1. 项目介绍:
RGB led由三种颜色(红、绿、蓝)组成,通过混合这三种基本颜色可以发出不同的颜色。
在这个项目中,我们将向你介绍RGB LED,并向你展示如何使用ESP32控制RGB LED发出不同的颜色光。即使RGB LED是非常基本的,但这也是一个介绍自己或他人电子和编码基础的伟大方式。
2. 项目元件:
|
|
|
|---|---|---|
ESP32*1 |
面包板*1 |
RGB LED*1 |
|
|
|
220Ω电阻*3 |
跳线若干 |
USB 线*1 |
3. 元件知识:
显示器大多遵循RGB颜色标准,电脑屏幕上的所有颜色都是由红、绿、蓝三种颜色以不同比例混合而成。

这个RGB LED有4个引脚,每个颜色(红,绿,蓝)和一个共同的阴极。为了改变RGB led的亮度,我们可以使用ESP的PWM引脚。PWM引脚会给RGB led不同占空比的信号以获得不同的颜色。
如果我们使用3个10位PWM来控制RGBLED,理论上我们可以通过不同的组合创建 2^10 × 2^10 × 2^10= 1,073,741,824(10亿)种颜色。
4. 项目接线图:

5. 项目代码:
//**********************************************************************
/*
* 文件名 : RGB LED
* 描述 : 使用RGB 显示随机颜色.
*/
int ledPins[] = {0, 2, 15}; //定义红、绿、蓝引脚
const byte chns[] = {0, 1, 2}; //定义PWM通道
int red, green, blue;
void setup() {
for (int i = 0; i < 3; i++) { //设置pwm通道,1KHz,8bit
ledcSetup(chns[i], 1000, 8);
ledcAttachPin(ledPins[i], chns[i]);
}
}
void loop() {
red = random(0, 256);
green = random(0, 256);
blue = random(0, 256);
setColor(red, green, blue);
delay(200);
}
void setColor(byte r, byte g, byte b) {
ledcWrite(chns[0], 255 - r); //共阴极LED,高电平开启LED.
ledcWrite(chns[1], 255 - g);
ledcWrite(chns[2], 255 - b);
}
//*************************************************************************************
6. 项目现象:
代码上传成功后,利用USB线上电后,你会看到的现象是:RGB LED开始显示随机颜色。






