Адресная светодиодная лента RGB на WS2812B
Снят с торгов продавцом.
Причина:
Продано
Описание
Состояние | Новое |
Самая продвинутая в плане управления лента - позволяет зажигать КАЖДЫЙ из диодов любым цветом, независимо от других диодов.
Предназначена для создания систем динамического света, а также бегущих строк, световых досок, светодиодных лент и даже полноценных видео экранов.
Описание чудо-диодов тут: krsk.au.ru/2776928/
60 диодов на метр. Исполнение IP-68 (максимальная защита, в силиконовой трубке).
Питается от источника 5 вольт (предельное долговременное - 5.5 вольт), максимальный ток потребления 3.9 ампера на метр.
Может нарезаться по одному диоду, т.е. по 17мм.
ЦЕНА ЗА 1 МЕТР ЛЕНТЫ!
Лента собрана по следующей схеме:
Вход ленты - 3 провода:
1) +5 вольт
2) земля
3) вход данных
Допускается каскадирование пятиметровых кусков (с подачей отдельного питания на каждый каскад).
Управляется специализированными контроллерами, либо любыми микроконтроллерными системами.
Управление лентой с помощью контроллера ARDUINO UNO:
1) Подаём на ленту питание +5 вольт
2) Соединяем "землю" Arduino и "землю" ленты.
3) Подаём сигнал с 13 ножки Arduino на вход данных ленты.
4) Подключаем Arduino к компьютеру через USB
5) Заливаем скетч. ВНИМАНИЕ! Для работы скетча нужна библиотека fastspi_led2. Брать тут: http://code.google.com/p/fastspi/
Скетч:
// #define FAST_SPI_INTERRUPTS_WRITE_PINS 1
// #define FORCE_SOFTWARE_SPI 1
#include "FastSPI_LED2.h"
#define NUM_LEDS 300 // число диодов в ленте
struct CRGB { byte g; byte r; byte b; };
struct CRGB leds[NUM_LEDS];
struct CRGB pat1[16]={255,255,255, 255,255,255, 100,0,100, 100,0,100, 100,0,100, 100,0,100, 0,40,50, 0,20,30, 0,20,30, 0,20,30, 2,0,20, 0,0,20, 0,0,20, 0,0,20, 0,0,20, 0,10,0};
struct CRGB pat2[16]={0,255,0, 0,255,100, 0,255,255, 0,255,255, 0,100,255, 50,0,255, 100,0,255, 255,0,255, 255,0,100, 255,0,50, 255,0,0, 255,50,0, 255,100,0, 255,255,0, 100,255,0, 50,255,0};
struct CRGB pat3[16];
WS2811Controller800Mhz<13> LED; // задаём через какую ногу выводятся данные
void setup() {
LED.init(); // инициализация ленты
}
void loop() {
//=======Бегущая радуга==================
/*for(int i = 0; i < 16; i++) {
for(int iLed = 0; iLed < NUM_LEDS; iLed++) {
leds[iLed]=pat2[i+iLed&15];}
LED.showRGB((byte*)leds, NUM_LEDS);;
delay(50); }
*/
//=======Бегущая радуга==================
//=======Бегущие хвосты==================
for(int iLed = 0; iLed < NUM_LEDS; iLed++) {
memset(leds,0, NUM_LEDS * sizeof(struct CRGB));
for(int i = 0; i < 16; i++) { if (iLed-i>0) {leds[iLed-i]=pat1[i];}
if (iLed-i>0) {leds[NUM_LEDS-iLed+i]=pat2[i];}}
LED.showRGB((byte*)leds, NUM_LEDS);;
delay(30);
}
for(int iLed = 0; iLed < NUM_LEDS; iLed++) {
memset(leds,0, NUM_LEDS * sizeof(struct CRGB));
for(int i = 0; i < 16; i++) { if (iLed-i>0) {leds[NUM_LEDS-iLed+i]=pat1[i];}
if (iLed-i>0) {leds[iLed-i]=pat2[i];}}
LED.showRGB((byte*)leds, NUM_LEDS);;
delay(30);
}
//=======Бегущие хвосты==================
//=======Бегущая точка===================
/*
for(int i = 0; i < 3; i++) {
for(int iLed = 0; iLed < NUM_LEDS; iLed++) {
memset(leds, 0, NUM_LEDS * sizeof(struct CRGB));
switch(i) {
case 0: leds[iLed].r = 255; break;
case 1: leds[iLed].g = 255; break;
case 2: leds[iLed].b = 255; break;
}
LED.showRGB((byte*)leds, NUM_LEDS);;
delay(20);
}
}
/*
//=======Бегущая точка===================
//=======Мерцание========================
/* for(int i = 0; i < 32; i++) {
memset(leds, i, NUM_LEDS * 3);
LED.showRGB((byte*)leds, NUM_LEDS);;
delay(40);
}
for(int i = 32; i >= 0; i--) {
memset(leds, i, NUM_LEDS * 3);
LED.showRGB((byte*)leds, NUM_LEDS);;
delay(40);
}
*/
//=======Мерцание========================
}
Поделиться этим лотом: