В этой статье мы будем подключать трехцветный (красный/зеленый/синий) светодиод (RGB LED) к плате Arduino Uno.
Принципы работы трехцветного светодиода
Внешний вид трехцветного светодиода показан на следующем рисунке:
Трехцветный светодиод имеет 4 контакта как показано на рисунке ниже:
- контакт 1: цвет 1 отрицательный вывод при общем аноде или цвет 1 положительный вывод при общем катоде;
- контакт 2: общий положительный вывод для всех трех цветов при общем аноде или общий отрицательный вывод для всех трех цветов при общем катоде;
- контакт 3: цвет 2 отрицательный вывод или цвет 2 положительный вывод;
- контакт 4: цвет 3 отрицательный вывод или цвет 3 положительный вывод.
Таким образом, есть 2 типа трехцветных светодиодов – с общим катодом (ОК) и с общим анодом (ОА). При общем катоде (общий отрицательный вывод) мы имеем три положительных вывода, где каждый вывод отвечает за свой цвет, и один общий отрицательный вывод. Внутренняя схема подключений трехцветного светодиода с общим катодом показана на следующем рисунке:
В таком светодиоде (с ОК) если мы хотим зажечь красный цвет мы должны подать питание на контакт, отвечающий за красный цвет, и подать землю на общий отрицательный вывод. Аналогично и для других цветов.
При общем аноде (общий положительный вывод) мы имеем три отрицательных вывода, где каждый вывод отвечает за свой цвет, и один общий положительный вывод. Внутренняя схема подключений трехцветного светодиода с общим анодом показана на следующем рисунке:
В таком светодиоде (с ОА) если мы хотим зажечь красный цвет мы должны подать землю на контакт, отвечающий за красный цвет, и подать питание на общий положительный вывод. Аналогично и для других цветов.
В нашей схеме мы будем использовать трехцветный светодиод с общим анодом (ОА). Если вам будет необходимо подсоединить больше подобных светодиодов к плате Arduino Uno, к примеру 5, то вам будет нужно 5x4= 20 контактов, но можно уменьшить количество контактов в этом случае до 8 если мы соединим трехцветные светодиоды параллельно и будем использовать технологию мультиплексирования.
Необходимые компоненты
- Плата Arduino UNO (купить на AliExpress).
- Трехцветный светодиод с общим анодом (ОА) (купить на AliExpress).
- Резистор 1 кОм (купить на AliExpress).
Работа схемы
Схема устройства представлена на следующем рисунке.
На представленной схеме мы подсоединили общий отрицательный вывод трехцветного светодиода к выводу питания платы Arduino при помощи резистора 1 кОм.
Отрицательные выводы (1, 3, 4) трехцветного светодиода подсоединены к контактам 2, 3 и 4 Arduino. Здесь трехцветный светодиод подсоединен в обратной логике, то есть если мы подадим на отрицательные выводы светодиода высокий уровень, то он выключится. То есть чтобы светодиод оставался в выключенном состоянии необходимо поддерживать на его отрицательных выводах высокий уровень. А если мы подадим на них низкий уровень, то светодиод зажгется.
То есть мы имеем, что контакт 2 светодиода – это его общий анод, а контакты 1, 3 и 4 – отрицательные выводы для красного, синего и зеленого цветов соответственно.
В представленном далее коде программы вы можете увидеть как мы последовательно мигаем всеми тремя цветами в трехцветном светодиоде последовательно подавая на соответствующие отрицательные выводы светодиода высокий и низкий уровень.
Исходный код программы
Код программы достаточно простой, поэтому комментариев к нему нет. Но если у кого возникнут какие либо вопросы по тексту данной программы, то вы можете задать их в комментариях к данной статье.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
void setup() { pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); } void loop() { digitalWrite(2, LOW); delay(500); digitalWrite(2, HIGH); delay(500); digitalWrite(3, LOW); delay(500); digitalWrite(3, HIGH); delay(500); digitalWrite(4, LOW); delay(500); digitalWrite(4, HIGH); delay(500); } |
Работает. Правда у меня светодиод с общим катодом, поэтому в скетче поменял "Low" на "High" и наоборот.
А питание вместо +5V, подал на Gnd.