多路RGB LED循环变色
我要用80个全彩灯拼出一个图。一个arduino板子只有六个pwn口,也就是我只能控制两只灯。我要用尽量少的板子和线路怎么实现???线路怎么设计??下面是我控制一只全彩灯的程序:
int redPin = 9; // 红
int greenPin = 10;// 绿
int bluePin= 11;// 蓝
// Program variables
int redVal = 255;
int greenVal = 1;
int blueVal= 1;
int i = 0;
int wait = 50;
int DEBUG = 0;
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin,OUTPUT);
if (DEBUG) {
Serial.begin(9600);
}
}
void loop()
{
i += 1;
if (i < 255)
{
redVal -= 1;
greenVal += 1;
blueVal = 1;
}
else if (i < 509)
{
redVal = 1;
greenVal -= 1;
blueVal+= 1;
}
else if (i < 763)
{
redVal+= 1;
greenVal = 1;
blueVal -= 1;
}
else
{
i = 1;
}
analogWrite(redPin, redVal);
analogWrite(greenPin, greenVal);
analogWrite(bluePin,blueVal);
if (DEBUG) {
DEBUG += 1;
if (DEBUG > 10)
{
DEBUG = 1;
Serial.print(i);
Serial.print("\t");
Serial.print("R:");
Serial.print(redVal);
Serial.print("\t");
Serial.print("G:");
Serial.print(greenVal);
Serial.print("\t");
Serial.print("B:");
Serial.println(blueVal);
}
}
delay(wait);
} 淘宝WS2811灯串 淘宝WS2811灯串 fastled驱动,只需要一个IO口就能驱动80个全彩LED 这样吧,把80灯串在一起,用并转串芯片(好像是74595),这里不知道你用LED灯是共阳还是共阴的,具体电路具体分析吧,把LED灯的一个公共PIN接到74595,另外3个PIN接到接到arduino的PWM口。以此类推,把所有LED的公共PIN依次挨个接到74595,把所有LED控制R、G、B的PIN并在一起接入arduino的3路PWM。编程序,已扫描的形式控制每一个LED等。建议看看LED数码管的原理,数码管是8个小LED组成,那么你这里相当于3个不同颜色的小LED。三基色吗,懂的。
页:
[1]