Радуга на WS2812b

В первой программе для WS2812b мы попробуем зажечь линейку семью цветами радуги, а оставшийся 8-й светодиод пусть горит белым.

Для работы с адресными модулями используем библиотеку Adafruit_NeoPixel. Установить её можно с помощью менеджера библиотек в Arduino IDE.

#include <Adafruit_NeoPixel.h>

#define PIN            6 // это контакт, к которму подключен DIN
#define NUMPIXELS      8 // количество светодиодов, которыми мы хотим управлять

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

// определим массив с цветами радуги, указав RGB компоненты каждого цвета
byte rainbow[8][3] = {{128,0,0},{128,64,0},{128,128,0},{0,128,0},{0,128,128},{0,0,128},{128,0,128},{128,128,128}};

void setup() {
    // инициализации модуля Adafruit_NeoPixel
    pixels.begin();
    // перебираем светодиоды и выводим ка каждый нужный цвет
    for(int i=0; i<NUMPIXELS; i++){
        pixels.setPixelColor(i, pixels.Color(rainbow[i][0],rainbow[i][1],rainbow[i][2]));
    }
    // выводим цветовую последовательность на модуль WS2812b
    pixels.show();
}

void loop() {
}

Загружаем программу на Ардуино и наблюдаем радугу.

Адресные светодиоды ws2812b

Надо также сказать, что компоненты цветов в нашей программе имеют уменьшенные в два раза значения яркости, в противном случае лента светит слишком ярко. Но даже при такой урезанной яркости, фотоаппарат сильно засвечивается и невозможно нормально передать всю палитру.


Изменено:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.