Трехцветная светодиодная адресная лента на основе адресных светодиодов WS2812B
30 светодиодов на метр
Напряжение питания 5В
Длина 1м
Разъемы с обеих сторон ленты - можно подключать много однотипных лент последовательно
Сигнальный провод зеленый
Плюс питания красный
Минус питания GND белый
Управление яркостью и цветом каждого отдельного светодиода при помощи программируемых контроллеров
Пример программы
#include "FastLED.h" // подключаем библиотеку #define NUM_LEDS 30 #define PIN 7 byte bright = 50; // яркость светодиодов byte rate = 0; // скорость эффектов byte w = 1; // переключение режимов byte baza = 0; // изменение оттенка boolean button1WasUp = true; // переменные для считывания нажатия на кнопки boolean button2WasUp = true; boolean button3WasUp = true; CRGB leds[NUM_LEDS]; void setup() { pinMode(8, INPUT_PULLUP); // подключаем тактовые кнопки pinMode(10, INPUT_PULLUP); pinMode(12, INPUT_PULLUP); FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(bright); CRGB color = CRGB(255, 0, 0); } void knopka () { boolean button1IsUp = digitalRead(8); // узнаем текущее состояние кнопок boolean button2IsUp = digitalRead(10); boolean button3IsUp = digitalRead(12); // если кнопка 1 была нажата, добавляем яркость (не больше 250) if (button1WasUp && !button1IsUp) { delay(10); button1IsUp = digitalRead(8); if (!button1IsUp) { bright = bright + 25; if (bright > 250) { bright = 25; } } } button1WasUp = button1IsUp; // запоминаем состояние кнопки 1 // если кнопка 2 была нажата, увеличиваем задержку (не больше 50) if (button2WasUp && !button2IsUp) { delay(10); button2IsUp = digitalRead(10); if (!button2IsUp) { rate = rate + 10; if (rate > 50) { rate = 0; } } } button2WasUp = button2IsUp; // запоминаем состояние кнопки 2 // если кнопка 3 была нажата, переходим в новый режим if (button3WasUp && !button3IsUp) { delay(10); button3IsUp = digitalRead(12); if (!button3IsUp) { w++; if (w > 12) { w = 1; } } } button3WasUp = button3IsUp; // запоминаем состояние кнопки 3 } void loop() { // первый режим (радуга) while (w == 1) { knopka(); // узнаем состояние кнопок for (int i = 0; i < NUM_LEDS; i++) { leds[i] = CHSV(baza+ i * 5, 255, 255); } baza++; FastLED.setBrightness(bright); FastLED.show(); delay(50 - rate); } // второй режим (палитра) while (w == 2) { knopka(); // узнаем состояние кнопок static uint8_t starthue = 0; fill_rainbow( leds + 5, NUM_LEDS - 5, --starthue, rate); uint8_t secs = (millis() / 1000) % (rate * 2); if (secs < rate) { FastLED.setTemperature( Tungsten100W ); leds[0] = Tungsten100W; } else { FastLED.setTemperature( OvercastSky ); leds[0] = OvercastSky; } FastLED.setBrightness(bright); FastLED.show(); } // третий режим (конфетти) while (w == 3) { knopka(); // узнаем состояние кнопок fadeToBlackBy(leds, NUM_LEDS, (rate + 1) * 2); int pos = random16(NUM_LEDS); leds[pos] += CHSV(baza++ + random8(64), 200, 255); FastLED.setBrightness(bright); FastLED.show(); } // четвертый режим (бегущий огонек) while (w == 4) { knopka(); // узнаем состояние кнопок fadeToBlackBy(leds, NUM_LEDS, (rate + 1) * 2); int pos = beatsin16(13, 0, NUM_LEDS - 1); leds[pos] += CHSV(baza++, 255, 192); FastLED.setBrightness(bright); FastLED.show(); } // пятый режим (циклон) while (w == 5) { for (int i = 0; i < NUM_LEDS; i++) { leds[i].nscale8(250); } for (int i = 0; i < NUM_LEDS; i++) { knopka(); // узнаем состояние кнопок leds[i] = CHSV(baza++, 255, 255); FastLED.setBrightness(bright); FastLED.show(); delay(rate); } } // шестой режим (фокус) while (w == 6) { knopka(); // узнаем состояние кнопок fadeToBlackBy(leds, NUM_LEDS, (rate + 1) * 2); for (int i = 0; i < 8; i++) { leds[beatsin16(i + 7, 0, NUM_LEDS - 1)] |= CHSV(baza+=16, 200, 255); } FastLED.setBrightness(bright); FastLED.show(); delay(10); } // седьмой режим (радуга с мерцанием) while (w == 7) { knopka(); // узнаем состояние кнопок fill_rainbow( leds, NUM_LEDS, baza++, 7); if (random8() < 80) { leds[ random16(NUM_LEDS) ] += CRGB::White; } FastLED.setBrightness(bright); FastLED.show(); delay(50 - rate); } // седьмой режим (белый) while (w == 8) { knopka(); // узнаем состояние кнопок fill_solid( leds, NUM_LEDS, CRGB::White); FastLED.setBrightness(bright); FastLED.show(); delay(50 - rate); } // седьмой режим (типа апельсин) while (w == 9) { knopka(); // узнаем состояние кнопок fill_solid( leds, NUM_LEDS, CRGB::Orange); FastLED.setBrightness(bright); FastLED.show(); delay(50 - rate); } // седьмой режим (пурпур) while (w == 10) { knopka(); // узнаем состояние кнопок fill_solid( leds, NUM_LEDS, CRGB::Purple); FastLED.setBrightness(bright); FastLED.show(); delay(50 - rate); } // седьмой режим (зеленка) while (w == 11) { knopka(); // узнаем состояние кнопок fill_solid( leds, NUM_LEDS, CRGB::Green); FastLED.setBrightness(bright); FastLED.show(); delay(50 - rate); } // седьмой режим (синий) while (w == 12) { knopka(); // узнаем состояние кнопок fill_solid( leds, NUM_LEDS, CRGB::Blue); FastLED.setBrightness(bright); FastLED.show(); delay(50 - rate); } }
Светодиодная лента адресная WS2812B 1м 30led
- Модель WS2812B IP30 1м
- Наличие Есть в наличии
-
120.58грн.