Модуль адресных светодиодов (х4)
Описание
Адресный светодиод - разновидность светодиода, в котором в одном корпусе, помимо самого светодиода, заключен контроллер управления. Наличие индивидуального контроллера позволяет управлять каждым светодиодом по отдельности, используя всего один вывод контроллера.
Модуль выполнен на базе светодиодов WS2812 - они являются RGB-светодиодами и каждый из них способен излучать три разных цвета: красный, зеленый, синий. С помощью модуля адресных светодиодов вы сможете создать многоцветную индикацию в различных вариациях для определенных событий, используя всего лишь один модуль, а также объединять их друг с другом для получения гирлянды или подсветки устройств. Каждым светодиодом, а так же каждым цветом отдельного светодиода можно управлять раздельно или смешивать их вместе, получая различные дополнительные цвета. А регулируя интенсивность цветов, можно получить практически любой оттенок цвета.
Конструкция модулей позволяет использовать их не только как отдельные модули но и объединять их в длинные цепочки стандартным трехпроводным шлейфом «мама-мама» (1 шлейф входит в комплект 1 модуля), при этом для управления всей цепочкой модулей по-прежнему будет использоваться только один вывод контроллера.
Технические характеристики
- Рабочее напряжение: 3-5 В
- Максимальный потребляемый ток одного светодиода: 20 мА
- Максимальный потребляемый ток модуля: 80 мА
- Видимый телесный угол: 120°
Физические размеры
- Модуль Д х Ш х В: 30 х 20 х 7 мм
Ресурсы для загрузки
Примеры подключения и использования модуля
Пример 1. Поочередное включение светодиодов на модуле
Шаг 1. Соберите необходимые компоненты
Что нужно | Количество |
---|---|
Контроллер Smart UNO | 1 |
Sensor shield | 1 |
Модуль адресных светодиодов (х4) | 1 |
Шлейф "мама-мама" х3 | 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. Соберите необходимые компоненты
Что нужно | Количество |
---|---|
Контроллер Smart UNO | 1 |
Sensor shield | 1 |
Модуль адресных светодиодов (х4) | 2 |
Шлейф "мама-мама" х3 | 2 |
Шаг 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. Соберите необходимые компоненты
Что нужно | Количество |
---|---|
Контроллер Smart UNO | 1 |
Sensor shield | 1 |
Модуль адресных светодиодов (х4) | 4 |
Шлейф "мама-мама" х3 | 4 |
Шаг 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. Результат
После загрузки скетча вы увидите как на модуле поочередно загораются и гаснут светодиоды, последний на каждый момент остаётся зажжённым. После включения всех светодиодов, они гаснут и цикл начинается заново.