Віримо в перемогу ЗСУ!
Працюємо з 09:00 до 18:00 Пн-Сб

Трехцветная светодиодная адресная лента на основе адресных светодиодов 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);
  }
}

Написать отзыв

Примечание: HTML разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо

Светодиодная лента адресная WS2812B 1м 30led

  • Модель WS2812B IP30 1м
  • Наличие Есть в наличии
  • 120.58грн.


<< Проекты << Все товары >> Статьи, уроки >>