ArduinoUNO实战-第十八章-三基色LED实现七彩色渐变

目录
一、参考
二、目标
驱动一颗RGB三基色LED产生七色光的变化
引脚最长的为共阳的正极,剩下3个分别为红色、绿色、蓝色。
三、理论学习
四、实物图
淘宝链接:
五、代码
7色光切换
// 定义三基色
#define LED_R 3
#define LED_G 5
#define LED_B 6
int PWMValue = 0;
void setup()
{
// 初始化三个颜色都是不亮,都是低电平
analogWrite(LED_R, 255);
analogWrite(LED_G, 255);
analogWrite(LED_B, 255);
}
void loop()
{
int i = 0;
// 红色逐渐变亮
PWMValue = 255;
for(i = 0; i < 255; i++)
{
analogWrite(LED_R, PWMValue--);
analogWrite(LED_G, 255);
analogWrite(LED_B, 255);
delay(10);
}
// 红色逐渐变暗
PWMValue = 0;
for(i = 0; i < 255; i++)
{
analogWrite(LED_R, PWMValue++);
analogWrite(LED_G, 255);
analogWrite(LED_B, 255);
delay(10);
}
// 绿色逐渐变亮
PWMValue = 255;
for(i = 0; i < 255; i++)
{
analogWrite(LED_R, 255);
analogWrite(LED_G, PWMValue--);
analogWrite(LED_B, 255);
delay(10);
}
// 绿色逐渐变暗
PWMValue = 0;
for(i = 0; i < 255; i++)
{
analogWrite(LED_R, 255);
analogWrite(LED_G, PWMValue++);
analogWrite(LED_B, 255);
delay(10);
}
}
颜色渐变
参考:
需要把三根线接到板子带波浪线的引脚,比如3,5,6 颜色值是从0~255
#define LED_R 3
#define LED_G 5
#define LED_B 6
int PWMValue = 0;
void setup()
{
// 初始化三个颜色都是不亮,都是低电平
analogWrite(LED_R, 255);
analogWrite(LED_G, 255);
analogWrite(LED_B, 255);
}
void loop()
{
int i = 0;
// 红色逐渐变亮
PWMValue = 255;
for(i = 0; i < 255; i++)
{
analogWrite(LED_R, PWMValue--);
analogWrite(LED_G, 255);
analogWrite(LED_B, 255);
delay(10);
}
// 红色逐渐变暗
PWMValue = 0;
for(i = 0; i < 255; i++)
{
analogWrite(LED_R, PWMValue++);
analogWrite(LED_G, 255);
analogWrite(LED_B, 255);
delay(10);
}
// 绿色逐渐变亮
PWMValue = 255;
for(i = 0; i < 255; i++)
{
analogWrite(LED_R, 255);
analogWrite(LED_G, PWMValue--);
analogWrite(LED_B, 255);
delay(10);
}
// 绿色逐渐变暗
PWMValue = 0;
for(i = 0; i < 255; i++)
{
analogWrite(LED_R, 255);
analogWrite(LED_G, PWMValue++);
analogWrite(LED_B, 255);
delay(10);
}
}