3-4 RGB LED(智能应用篇)
- 3-4 RGB LED
- RGB-LED及电路
- 示例程序
- 效果演示
3-4 RGB LED
Led的灯珠和灯带,相当于点和线(可以画出丰富否画面)
主要介绍led灯珠
RGB-LED及电路
RGB-LED可以发出红、绿、蓝色的光芒(并通过各个通道的数值不同发出其余各种颜色)
发光二极管,
这里有四个引脚
传统的发光二极管只有一个正极一个负极
最长的引脚为其负极
上面为RGB-LED的简化过程(三个负极链接在一起接地,另外三个灯放在一个灯里)
正极独立,负极链接在一起,为共阴极RGB-LED
也有共阳极LED,这里不介绍了
最长引脚为负极链接arduino的接地线
其余的三个RGB引脚分别连接在6,5,3号引脚(~)
示例程序
主要将实际制作了,程序不会太细讲
/*
* Serial-RGB-LED
*
* 通过串口输入信息调整LED的颜色
* 指令示例: r128g100b20
* 以上指令将LED的RGB数值调整为(128,100,20)
*
* by 太极创客
* www.taichi-maker.com
*/
const int rLedPin = 6; //引脚R
const int gLedPin = 5; //引脚G
const int bLedPin = 3; //引脚Bint ledR = 0; //R Led 亮度
int ledG = 0; //G Led 亮度
int ledB = 0; //B Led 亮度void setup() {pinMode(rLedPin, OUTPUT);pinMode(gLedPin, OUTPUT);pinMode(bLedPin, OUTPUT);Serial.begin(9600);Serial.println("Welcome to Taichi-Maker RGB Led Tutorial.");Serial.println("Please Input RGB value(eg. r128g100b20).");
}void loop() {if (Serial.available()>0) { char serialCmdChar = Serial.read(); serialCmd(serialCmdChar); }delay(50); //延时让程序更加流畅稳定
}void serialCmd(char serialCmdChar) { //r128g100b20switch (serialCmdChar){case 'r':ledR = Serial.parseInt();break;case 'g':ledG = Serial.parseInt();break;case 'b':ledB = Serial.parseInt();break; //使用‘C’字符将RGB置为0case 'c':ledR = 0;ledG = 0;ledB = 0;}//将数值输出到引脚上analogWrite(rLedPin, ledR);delay(100);analogWrite(gLedPin, ledG);delay(100);analogWrite(bLedPin, ledB); delay(100); //输出当前的RGB各通道数值Serial.print ("Red Value = ");Serial.println (ledR);Serial.print ("Green Value = ");Serial.println (ledG);Serial.print ("Blue Value = ");Serial.println (ledB);Serial.println ("-------------");
}
效果演示
先尝试单独打开红色、绿色、蓝色led
r255g0b0
发送
r0g255b0
回车发送变成绿色
发送r0g0b255
发送r100g0b100得到紫色
RGB-LED,三原色可以进行调和得到不同的颜色
发送r100g10b0得到黄色
RGB可以显示出16777216种颜色(真彩led)
下方的发出多种颜色的led灯珠并不是RGB-LED,而是只有两个引脚
并不是能改变颜色的led都是RGB-led