Модуль адресных светодиодов (х4)

Описание

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

Модуль выполнен на базе светодиодов WS2812 - они являются RGB-светодиодами и каждый из них способен излучать три разных цвета: красный, зеленый, синий. С помощью модуля адресных светодиодов вы сможете создать многоцветную индикацию в различных вариациях для определенных событий, используя всего лишь один модуль, а также объединять их друг с другом для получения гирлянды или подсветки устройств. Каждым светодиодом, а так же каждым цветом отдельного светодиода можно управлять раздельно или смешивать их вместе, получая различные дополнительные цвета. А регулируя интенсивность цветов, можно получить практически любой оттенок цвета.

Конструкция модулей позволяет использовать их не только как отдельные модули но и объединять их в длинные цепочки стандартным трехпроводным шлейфом «мама-мама» (1 шлейф входит в комплект 1 модуля), при этом для управления всей цепочкой модулей по-прежнему будет использоваться только один вывод контроллера.

Технические характеристики

  • Рабочее напряжение: 3-5 В
  • Максимальный потребляемый ток одного светодиода: 20 мА
  • Максимальный потребляемый ток модуля: 80 мА
  • Видимый телесный угол: 120°

Физические размеры

  • Модуль Д х Ш х В: 30 х 20 х 7 мм

Ресурсы для загрузки

Примеры подключения и использования модуля

Пример 1. Поочередное включение светодиодов на модуле

Шаг 1. Соберите необходимые компоненты

Шаг 2. Соедините компоненты

Соедините компоненты как показано на схеме ниже:

Шаг 3. Загрузите на контроллер скетч

Загрузите скетч на контроллер:

#include <Adafruit_NeoPixel.h> //библиотека для работы со светодиодами
 
#define PIN 8 //вывод, к которому подключен модуль 
 
#define NUMPIXELS 4 //количество светодиодов
 
//объявление переменной pixels типа Adafruit_NeoPixel для 
//работы с модулем и светодиодами
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
 
#define DELAYVAL 500 //время для задержки между включениями светодиодов
 
void setup() {
  pixels.begin(); //инициализация светодиодов
}
 
void loop() {
  pixels.clear(); //выключение всех цветов светодиодов
  pixels.show();  //отобразить "пустое" состояние светодиодов - они выключены
  delay(DELAYVAL); //пауза перед основным циклом
 
  //нумерация светодиодов начинается с 0
  for(int i=0; i<NUMPIXELS; i++) {
 
    pixels.setPixelColor(i, pixels.Color(0, 150, 0)); //установка цвета свечения для очередного светодиода
 
    pixels.show();   //показать цвет светодиода
 
    delay(DELAYVAL); //задержка перед очередным шагом цикла
  }
}

Шаг 4. Результат

После загрузки скетча вы увидите как на модуле поочередно загораются и гаснут светодиоды.

Пример 2. Случайный цвет

В этом примере мы добавим ещё один модуль, итого получим 8 светодиодов. Они, как и в прошлом примере, будут загораться поочерёдно. Только теперь цвет свечения будет случайным.

Шаг 1. Соберите необходимые компоненты

Шаг 2. Соедините компоненты

Соедините компоненты как показано на схеме ниже:

Шаг 3. Загрузите на контроллер скетч

Загрузите скетч на контроллер:

#include <Adafruit_NeoPixel.h> //библиотека для работы со светодиодами
 
#define PIN 8 //вывод, к которому подключен модуль 
 
#define NUMPIXELS 8 //количество светодиодов
 
//объявление переменной pixels типа Adafruit_NeoPixel для 
//работы с модулем и светодиодами
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
 
#define DELAYVAL 500 //время для задержки между включениями светодиодов
 
void setup() {
  pixels.begin(); //инициализация светодиодов
}
 
void loop() {
  pixels.clear(); //выключение всех цветов светодиодов
  pixels.show();  //отобразить "пустое" состояние светодиодов - они выключены
  delay(DELAYVAL); //пауза перед основным циклом
 
  //нумерация светодиодов начинается с 0
  for(int i=0; i<NUMPIXELS; i++) {
 
    pixels.setPixelColor(i, pixels.Color(random(256), random(256), random(256))); //установка цвета свечения для очередного светодиода
 
    pixels.show();   //показать цвет светодиода
 
    delay(DELAYVAL); //задержка перед очередным шагом цикла
  }
}

Шаг 4. Результат

После загрузки скетча вы увидите как светодиоды на модулях зажигаются поочерёдно со случайным цветом.

Пример 3. Светодиодная гирлянда

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

Шаг 1. Соберите необходимые компоненты

Шаг 2. Соедините компоненты

Соедините компоненты как показано на схеме ниже:

Шаг 3. Загрузите на контроллер скетч

Загрузите скетч на контроллер:

#include <Adafruit_NeoPixel.h> //библиотека для работы со светодиодами
 
#define PIN 8 //вывод, к которому подключен модуль 
 
#define NUMPIXELS 16 //количество светодиодов
 
//цвета                 R G B
long int colors[] = { 0xFF0000,
                      0x00FF00,
                      0x0000FF,
                      0xFFFF00,
                      0xFF00FF,
                      0x00FFFF
                    };
 
long int empty_color = 0x000000; //не горит
 
//объявление переменной pixels типа Adafruit_NeoPixel для 
//работы с модулем и светодиодами
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
 
#define DELAYVAL 150 //время для задержки медлу включениями светодиодов
 
//установить цвет светодиода
void setColor(int& pixel, long int& color) {
  int r = ((color >> 16) & 0xFF);  // Получить значение красного цвета
  int g = ((color >> 8) & 0xFF);   // Значение зелёного цвета
  int b = ((color) & 0xFF);        // Значение синего цвета
 
  pixels.setPixelColor(pixel, pixels.Color(r, g, b)); //установка цвета свечения для светодиода
  pixels.show(); //показать цвет светодиода
  delay(DELAYVAL); //задержка перед очередным шагом цикла
}
 
void setup() {
  pixels.begin(); //инициализация светодиодов
}
 
void loop() {
  pixels.clear(); //выключение всех цветов светодиодов
  pixels.show();  //отобразить "пустое" состояние светодиодов - они выключены
  delay(DELAYVAL); //пауза перед основным циклом
 
 
 
  //нумерация светодиодов начинается с 0
  for (int last_pixel = NUMPIXELS - 1; last_pixel >= 0; last_pixel--) {
    for (int i = 0; i <= last_pixel; i++) {
 
      //вычисление цвета
      int k = i / 6;
      int color_index = i - (6 * k);
 
      setColor(i, colors[color_index]); //зажечь светодиод
 
      if (i < last_pixel) { //если он не последний на данный момент
        setColor(i, empty_color); //то его нужно погасить
      }
    }
  }
}

Шаг 4. Результат

После загрузки скетча вы увидите как на модуле поочередно загораются и гаснут светодиоды, последний на каждый момент остаётся зажжённым. После включения всех светодиодов, они гаснут и цикл начинается заново.