第七课--控制 RGB 彩色 LED 灯的颜色/zh
目的前面学习了很多led实验,接下来学习下RGB led,通过一个RGB灯显示不同的颜色,包括呼吸。 设备
RGBRGB LED,其封装内有三个LED,一个红色,一个绿色的,一个蓝色的。通过控制各个LED的亮度,你可以混合出几乎任何你想要的颜色。 接法
原理图这里采用第一种接法,用到了D5、D6、D11号管脚。 程序 int redPin = 11;
int greenPin = 5;
int bluePin = 6;
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop()
{
setColor(255, 0, 0); // 红色
delay(1000);
setColor(0, 255, 0); // 绿色
delay(1000);
setColor(0, 0, 255); // 蓝色
delay(1000);
setColor(255, 255, 0); // 黄色
delay(1000);
setColor(80, 0, 80); // 紫色
delay(1000);
setColor(255, 255, 255);//白
delay(1000);
setColor(0, 0, 0); //黑
delay(1000);
for(int i=0;i<255;i+=5)//红色渐亮
{
setColor(i, 0, 0);
delay(30);
}
delay(100);
for(int i=255;i>0;i-=5)//红色渐灭
{
setColor(i, 0, 0);
delay(30);
}
delay(100);
for(int i=0;i<255;i+=5)//蓝色渐亮
{
setColor(0, i, 0);
delay(30);
}
delay(100);
for(int i=255;i>0;i-=5)//蓝色渐灭
{
setColor(0, i, 0);
delay(30);
}
delay(100);
for(int i=0;i<255;i+=5)//绿色渐亮
{
setColor(0, 0, i);
delay(30);
}
delay(100);
for(int i=255;i>0;i-=5)//绿色渐灭
{
setColor(0, 0, i);
delay(30);
}
delay(100);
}
void setColor(int red, int green, int blue)//颜色显示子程序
{
analogWrite(redPin, 255-red); //共阳RGB,低电平点亮红灯
analogWrite(greenPin, 255-green);
analogWrite(bluePin, 255-blue);
}
程序自定义子函数,在loop循环函数直接调用就行,这样程序看起来简洁明了。 这里只列举几种颜色,大家可以通过其他颜色取模软件取得颜色值,例如PS。 结果在一个灯上可以看到红、绿、蓝、黄、紫、黑,白,及呼吸效果。 视频 |