WS2812B

Тема в разделе "Arduino & Shields", создана пользователем Vladimir75rus, 22 июн 2018.

  1. Vladimir75rus

    Vladimir75rus Нерд

    Прикупил светодиодную ленту WS2812B, решил побаловаться, присоединил к Arduino Uno и сделал простенький эффект)
    Код (C++):
    // Подключаем библиотеку Adafruit NeoPixel.
    #include "Adafruit_NeoPixel.h"
    // Указываем, какое количество пикселей у нашей ленты.
    #define LED_COUNT 30
    // Указываем, к какому порту подключен вход ленты DIN.
    #define LED_PIN 2
    // Создаем переменную strip для управления нашей лентой.
    Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

    void EffectRGB(){
        // Эффект RGB.
      for (int i = 0; i <= LED_COUNT; i++)
      {
        strip.setPixelColor(i, strip.Color(255, 0, 0)); // Включение красного цвета.
        strip.show();
        delay(20);
      }

      for (int i = 0; i <= LED_COUNT; i++)
      {
        strip.setPixelColor(i, strip.Color(0, 0, 0)); // Выключение красного цвета.
        strip.show();
        delay(20);
      }

    for (int i = 0; i <= LED_COUNT; i++)
      {
        strip.setPixelColor(i, strip.Color(0, 255, 0)); // Включение зеленого цвета.
        strip.show();
        delay(20);
      }

    for (int i = 0; i <= LED_COUNT; i++)
      {
        strip.setPixelColor(i, strip.Color(0, 0, 0)); // Выключение зеленого цвета.
        strip.show();
        delay(20);
      }

      for (int i = 0; i <= LED_COUNT; i++)
      {
        strip.setPixelColor(i, strip.Color(0, 0, 255)); // Включение синего цвета.
        strip.show();
        delay(20);
      }

    for (int i = 0; i <= LED_COUNT; i++)
      {
        strip.setPixelColor(i, strip.Color(0, 0, 0)); // Выключение синего цвета.
        strip.show();
        delay(20);
      }
    }
    void setup()
    {
      // Инцилизация.
       strip.begin(); // Функция begin() настроит порт Arduino и выставит значения по умолчанию.
       strip.setBrightness(64); // функция setBrightness() это яркость светодиодов.
       strip.show();  // Функция show() передаст команду на выключение всем пикселям.
    }
    void loop()
    {
      EffectRGB();
    }
     
    bibo, Mitrandir и arkadyf нравится это.
  2. parovoZZ

    parovoZZ Гуру

    То же самое сделай без библиотеки и я скажу: "Молоток! Держи пять".
     
    Daniil, NikitOS и Mitrandir нравится это.
  3. Vladimir75rus

    Vladimir75rus Нерд

    Если человек создал библиотеку, то нужно ей пользоваться ;)
     
    NikitOS нравится это.
  4. NikitOS

    NikitOS Король шутов Администратор

    Прикольно! Только не в тот раздел написали...
     
    Vladimir75rus нравится это.