Arduino и RGB светодиод
Описание
RGB светодиод – три светодиода с цветами Red (красный), Green (зелёный) и Blue (синий), размещённые в общем корпусе. Более подробную теорию можно найти в уроке про RGB светодиоды.
Подключение
“Голый” RGB светодиод подключается к источнику 5V точно так же, как обычный светодиод: с ограничением тока при помощи резисторов, иначе довольно быстро сгорит. Но в наборе GyverKIT идёт удобный RGB модуль, на котором резисторы уже распаяны, а сам светодиод имеет общий катод:
Соответственно достаточно подключить GND к пину “-“, а пины RGB – к любым цифровым пинам микроконтроллера.
- При подключении к обычным цифровым пинам мы получим всего 8 цветов – чёрный (все выключены), белый (все включены) и 6 сочетаний между тремя цветами
- При подключении к ШИМ пниам у нас появится возможность контролировать яркость каждого канала цвета, что при стандартных настройках даёт 256 градаций яркости и 256*256*256 = 16.7 миллионов оттенков для RGB светодиода!
- Подключение к Wemos будет точно такое же, но там ШИМ сигнал можно включить на любом пине, причём с глубиной 10 бит (1024 значения), что даёт 1 миллиард оттенков! Это так много, что глазами различить не получится =)
- У Wemos логический уровень 3.3V, поэтому светодиод будет гореть менее ярко, т.к. будет потреблять меньший ток. В то же время допустимый ток с пина Wemos ниже, чем у Arduino, поэтому всё работает “как нужно”!
Библиотеки
По сути библиотеки не нужны, так как светодиодом можно управлять при помощи базовых функций вывода. Но для удобства работы с разными цветовыми моделями удобнее использовать уже готовые алгоритмы, например мою библиотеку GRGB. Библиотека идёт в архиве к набору GyverKIT, а свежую версию всегда можно установить/обновить из встроенного менеджера библиотек Arduino по названию GRBG. Краткая документация находится по ссылке выше, базовые примеры есть в самой библиотеке.
Примеры ручного управления
Для удобства управления обозначим пины, подключение например как по схеме выше:
#define R_PIN 6 #define G_PIN 5 #define B_PIN 3
В блоке setup()
сделаем пины выходами:
pinMode(R_PIN, OUTPUT); pinMode(G_PIN, OUTPUT); pinMode(B_PIN, OUTPUT);
Готово! Теперь можно включить любой нужный цвет. Объединим всё в одну программу и будем включать цвета на полную яркость поочерёдно:
#define R_PIN 6 #define G_PIN 5 #define B_PIN 3 void setup() { pinMode(R_PIN, OUTPUT); pinMode(G_PIN, OUTPUT); pinMode(B_PIN, OUTPUT); } void loop() { digitalWrite(R_PIN, 1); delay(500); digitalWrite(R_PIN, 0); digitalWrite(G_PIN, 1); delay(500); digitalWrite(G_PIN, 0); digitalWrite(B_PIN, 1); delay(500); digitalWrite(B_PIN, 0); }
Примеры с GRGB
Для удобства задания цветов попробуем поработать с библиотекой:
Домашнее задание
- Изучить возможности библиотеки GRGB
- Попробовать другие цветовые режимы