zch-Jerry 发表于 2015-7-20 11:59:51

多路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);
}

Ansifa 发表于 2015-7-20 20:28:50

淘宝WS2811灯串

Ansifa 发表于 2015-7-20 20:28:53

淘宝WS2811灯串

Ansifa 发表于 2015-7-20 20:29:38

fastled驱动,只需要一个IO口就能驱动80个全彩LED

PINKWALKMAN 发表于 2015-7-21 08:14:46

这样吧,把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]
查看完整版本: 多路RGB LED循环变色