Puzzle - Chainable RGB LED 级联全彩LED

来自Duinopeak_COM
跳转至: 导航搜索

产品简介

Chainable-rgb-led front.png

Puzzle - Chainable RGB LED是基于P9813全彩LED驱动芯片的RGB模块。它支持级联,最多可同时级联1024个同类模块。

规格参数

  • 工作电压: 5V
  • 工作电流: 20mA
  • 通信协议: 串口

应用实例


Chainanable wire.jpg
接下来我们展示这样一个Demo: 多个RGB灯的颜色统一渐变。 硬件连接图: 完成这个Demo,你需要一个或者多个Puzzle - Chainable RGB LED。注意在级联RGB模块时, Puzzle - Chainable RGB LED的IN接口连接到Puzzle - Base Shield的 D7/D8管脚。它的OUT接口要连接到另一个RGB的IN接口,按照这种方式级联更多的Puzzle - Chainable RGB LED模块。 下载 Chainable LED 库文件 并安装到Arduino的Library路径下。 通过路径:File->Examples->CnainableLED_master 打开例程:CycleThroughColors并上传,你就可以观察到Demo效果。

 /* 
 * Example of using the ChainableRGB library for controlling a Puzzle RGB.
 * This code cycles through all the colors in an uniform way. This is accomplished using a HSB color space. 
 */
 #include <ChainableLED.h>
 #define NUM_LEDS  5
 ChainableLED leds(7, 8, NUM_LEDS);
 void setup()
 {
 }
 float hue = 0.0;//色调变量
 boolean up = true;
 void loop()
 {
  for (byte i=0; i<NUM_LEDS; i++)
    leds.setColorHSB(i, hue, 1.0, 0.5);
  delay(50);   
  if (up)
    hue+= 0.025;
  else
    hue-= 0.025; 
  if (hue>=1.0 && up)
    up = false;
  else if (hue<=0.0 && !up)
    up = true;
 }

拓展应用: 利用现成的 Chainable LED 库文件, 我们设计了这样一个Demo: RGB的颜色将会随着温度传感器输出值变化而变化。当温度从25变化到32, RGB的颜色会从绿色变为红色。下面是测试代码,有兴趣了可以试着做做这个demo。

 // demo of temperature -> rgbLED
 // temperature form 25 - 32, rgbLed from green -> red
 // Puzzle-temperature plu to A0
 // LED plug to D7,D8
 #include <Streaming.h>
 #include <ChainableLED.h>
 #define TEMPUP 32
 #define TEMPDOWN 25
 ChainableLED leds(7, 8, 1); // connect to pin7 and pin8 , one led
 int getAnalog() // get value from A0
 {
    int sum = 0;
    for(int i=0; i<32; i++)
    {
        sum += analogRead(A0);
    }    
    return sum>>5;
 }
 float getTemp() // get temperature
 {
    float temperature = 0.0;
    float resistance = 0.0;
    int B = 3975; //B value of the thermistor  
    int a = getAnalog();  
    resistance = (float)(1023-a)*10000/a; //get the resistance of the sensor;
    temperature = 1/(log(resistance/10000)/B+1/298.15)-273.15; //convert to temperature via datasheet ;
    return temperature;
 }
 void ledLight(int dta) // light led
 {
   dta = dta/4; // 0 - 255 
   int colorR = dta;
   int colorG = 255-dta;
   int colorB = 0;
   leds.setColorRGB(0, colorR, colorG, colorB);
 }
 void setup()
 {
    Serial.begin(38400);
 }
 void loop()
 {
    float temp = getTemp();
    int nTemp = temp*100;   
    nTemp = nTemp > TEMPUP*100 ? TEMPUP*100 : (nTemp < TEMPDOWN*100 ? TEMPDOWN*100 : nTemp);
    nTemp = map(nTemp, TEMPDOWN*100, TEMPUP*100, 0, 1023);
    ledLight(nTemp);
    delay(100);
 }
 ChainableLED leds(7, 8, NUM_LEDS);//7,8为数字端口,可以根据你需要更改为其他数字端口


400Px


资源


Puzzle - Chainable RGB LED 级联全彩LED原理图PDF: 文件:Puzzle Chainable RGF LED schematic.pdf

Puzzle - Chainable RGB LED 级联全彩LED ChainableLED库文件: 文件:ChainableLED.zip

Puzzle - Chainable RGB LED 级联全彩LED ChainableLED芯片P9813 数据手册: 文件:P9816.pdf

如何购买

Duinopeak 官方淘宝商城
Chainable RGB LED 级联全彩LED购买链接

支持

如果你有什么建议或者好的点子, 你可以来我们的DuinoPeak论坛参与讨论.

外部链接

链接到外部网页将会给你提供更多应用创意,文档/数据表或软件库

视频