Привет! Что может быть лучше rgb светодиода? Конечно 256 светодиодов вместе. Да еще и адресуемых. Это значит, что мы сможем зажечь любой из 256 светодиодов из программы на Ардуино. Сегодня в обзоре светодиодная матрица WS2812B (SK6812).
Содержание
- Для того, чтобы выполнить этот урок нам понадобиться
- Светодиодная матрица
- Характеристики
- Подключение
- Библиотека FastLed
- Полный текст программы
- Возможные проблемы
- Заключение
- Где купить
В предыдущей статье мы говорили о гироскопе GY-521. Это тоже очень интересный модуль для Ардуино. Посмотрите тот обзор, если пропустили или уже забыли.
Гироскоп GY-521. Датчики. Ардуинo
Для того, чтобы выполнить этот урок нам понадобиться
- Ардуино UNO
- Перемычки
- Макетная плата
- Светодиодная матрица
- Резистор 220 Ом
- Кабель USB
Светодиодная матрица
Я использовал матрицу 16 на 16 светодиодов на черной подложке. Ссылка на Алиэкспресс будет внизу. Матрица хорошо гнется. Работает от 5 вольт и бывает во многих формфакторах. 8 на 8, 16 на 16 и 8 на 32 светодиодов.
Характеристики
- Можно использовать только внутри сухих помещений.
- Напряжением 5 вольт.
- Рабочая температура матрицы от -25 до + 80 °C Работая при температуре ниже — 25 лента может «тормозить» или вообще не выполнять команды контроллера. Однако изменения при переохлаждении не фатальны. При повышении температуры, диоды продолжат полноценно работать.
Подключение
- +5V — питание 5 вольт на плате
- GND — земля
- DIN — пин для данных на плате Ардуино
Матрица работает от 5 вольт. А значит мы сможем подключить ее напрямую к Ардуино. Однако, для реальных проектов рекомендую сделать для нее отдельное питание от аккумулятора или блока питания. В соответствии с характеристиками производителя при ярком белом свете, матрица потребляет 76,8 Вт. А ток может быть от 12 до 18 А, в соответствии с таблицей производителя.
Кроме того, сигнальный контакт DIN подключим через резистор, чтобы оградить контакт Ардуино от перепадов напряжения.
Библиотека FastLed
Для работы со светодиодными матрицами уже написано не мало библиотек. Сегодня используем одну из них. И посмотрим на примеры программ из нее. С помощью менеджера библиотек установим FastLED и откроем пример из меню File -> Examples -> FastLED -> DemoReel100
В начале скетча есть раздел с настройками матрицы. Нам нужно изменить несколько параметров. Поставим количество светодиодов равное 256, а яркость уменьшим, чтобы потреблять меньше тока, на 8.
Контакт DIN подключен к 3 контакту Ардуино.
define DATA_PIN 3
define LED_TYPE WS2811
define COLOR_ORDER GRB
define NUM_LEDS 256
CRGB leds[NUM_LEDS];
define BRIGHTNESS 8
define FRAMES_PER_SECOND 120
Остальную программу изменять не будем, загрузим скетч в Ардуино и посмотрим на результат.
Теперь попробуем использовать код из примера и напишем свой небольшой скетч.
Объявим настройки матрицы и инициализируем их.
include <FastLED.h>
define NUM_LEDS 256
define DATA_PIN 3
define BRIGHTNESS 8
CRGB leds[NUM_LEDS];
void setup() {
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS); // GRB ordering
FastLED.setBrightness(BRIGHTNESS);
}
А цикле loop() возьмем каждый отдельный светодиод и будем зажигать и гасить его в цикле. Таким образом мы сможем обратиться к каждому конкретному светодиоду.
void loop() {
for (int i = 0; i <= 256; i++){
leds[i] = CRGB::Red;
FastLED.show();
delay(100);
leds[i] = CRGB::Black;
FastLED.show();
delay(100);
}
}
Полный текст программы
include <FastLED.h>
define NUM_LEDS 256
define DATA_PIN 3
define BRIGHTNESS 8
CRGB leds[NUM_LEDS];
void setup() {
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS); // GRB ordering is assumed
FastLED.setBrightness(BRIGHTNESS);
}
void loop() {
for (int i = 0; i <= 256; i++){
leds[i] = CRGB::Red;
FastLED.show();
delay(100);
leds[i] = CRGB::Black;
FastLED.show();
delay(100);
}
}
Возможные проблемы
При подключении питания матрицы к Ардуино. Контроллер может сильно нагреться в процессе использования. Особенно, если включить все светодиоды на большой яркости. В этом случае, пожалуйста, используйте отдельное питание.
Заключение
Мы рассмотрели светодиодную матрицу 16х16 светодиодов. Подключили ее к Ардуино и научились обращаться к каждому светодиоду. Это сильно поможет нам в будущих проектах.
Спасибо, что дочитали статью до конца.
Пожалуйста, подписывайтесь на блог в яндекс дзен, ставьте лайки и пишите в комментариях, если у вас появились вопросы.
Посмотрите больше уроков и проектов на сайте arcadepub.ru
И подписывайтесь на соц. сети.
Спасибо за внимание, скоро увидимся #arcade pub
Другие интересные статьи
Ардуино. Урок 2. Цикл for и управляющие конструкции if и else
С чего начать знакомство с Ардуино
Ультразвуковой радар
Модуль RFID RC522