Светодиодный модуль RGB KY-009 излучает широкий спектр цветов путем смешивания красного, зеленого и синего света. Каждый цвет регулируется с помощью ШИМ.
Технические характеристики KY-009
Светодиодный модуль KY-009 выглядит как небольшая схема размером 18,5 мм x 15 мм, на которой установлен RGB SMD-светодиод типоразмера 5050 и 4-контактный разъем.
Напряжение источника питания | 5В |
Пороговое напряжение для красного светодиода | 1.8В ~ 2.4В |
Пороговое напряжение для зеленого светодиода | 2.8В ~ 3.6В |
Пороговое напряжение для синего светодиода | 2.8В ~ 3.6В |
Ток | 20мА ~ 30мА |
Температура окружающего воздуха | от -25°C до 85°C |
Размер модуля | 18.5мм x 15мм |
Внимание
При подключении модуля будьте осторожны. На рынке попадаются разные версии светодиода, которые отличаются расположением контактов: например, -GRB и -RGB
Для питания трех светодиодов, составляющих модуль KY-009, необходимо ограничить ток (т.к. цифровой контакт Ардуино может обеспечить ток около 40мА) и таким образом обезопасить светодиоды от перегорания. Для этой цели используйте постоянные резисторы, номинал которых можно рассчитать с помощью закона Ома, зная характеристики светодиода и напряжение питания.
Расчет сопротивлений произведем по формуле:
Также вычислим мощность, которая рассеивается на резисторе:
Воспользовавшись формулами, получаем:
Красный светодиод
Зеленый светодиод
Синий светодиод
Как подключить к Ардуино
KY-009 | Макетная плата | Arduino |
---|---|---|
R | Резистор 160 Ом | Контакт 11 |
G | Резистор 110 Ом | Контакт 9 |
B | Резистор 110 Ом | Контакт 10 |
– | GND |
- Подключите красный контакт (R) к контакту 11.
- Подключите зеленый контакт (G) к контакту 9.
- Подключите синий контакт (B) к контакту 10.
- И, наконец, общий контакт (-) к GND.
Не забудьте использовать резисторы между платой модуля и Arduino, чтобы предотвратить перегорание светодиода.
Пример кода
Сначала показываются три основных цвета, затем происходит объединение трех цветов, представляющее собой белый свет. А уже затем цвета изменяются путем изменения значения ШИМ для каждого из трех основных цветов.
int bluepin = 10; // контакт для синего светодиода int greenpin = 9; // контакт для зеленого светодиода int redpin = 11; // контакт для красного светодиода int val; void setup() { pinMode(bluepin, OUTPUT); // Инициализация контакта как выход pinMode(greenpin, OUTPUT); // Инициализация контакта как выход pinMode(redpin, OUTPUT); // Инициализация контакта как выход Serial.begin(9600); // Инициализация последовательного порта } void loop() { digitalWrite(redpin, HIGH); // Зажигаем красный светодиод delay (1000); // Ждем 1 секунду digitalWrite(redpin, LOW); // Гасим красный светодиод digitalWrite(bluepin, HIGH); // Зажигаем синий светодиод delay (1000); // Ждем 1 секунду digitalWrite(bluepin, LOW); // Гасим синий светодиод digitalWrite(greenpin, HIGH); // Зажигаем зеленый светодиод delay (1000); // Ждем 1 секунду digitalWrite(redpin, HIGH); // Зажигаем красный светодиод digitalWrite(bluepin, HIGH); // Зажигаем синий светодиод /* При включении трех светодиодов получаем белый цвет */ delay (1000); // Ждем 1 секунду /* Гасим все три светодиода */ digitalWrite(redpin, LOW); // Гасим красный светодиод digitalWrite(greenpin, LOW); // Гасим зеленый светодиод digitalWrite(bluepin, LOW); // Гасим синий светодиод delay (1000); // Ждем 1 секунду for (val = 255; val > 0; val--) { analogWrite(redpin, val); // Установим значение ШИМ для красного цвета analogWrite(bluepin, 255 - val); // Установим значение ШИМ для синего цвета analogWrite(greenpin, 128 - val); // Установим значение ШИМ для зеленого цвета Serial.println(val, DEC); // Выводим полученное значение в порт delay(1); // Ждем 1 миллисекунду } for (val = 0; val < 255; val++) { analogWrite(redpin, val); // Установим значение ШИМ для красного цвета analogWrite(bluepin, 255 - val); // Установим значение ШИМ для синего цвета analogWrite(greenpin, 128 - val); // Установим значение ШИМ для зеленого цвета Serial.println(val, DEC); // Выводим полученное значение в порт delay(1); // Ждем 1 миллисекунду } digitalWrite(redpin, LOW); // Гасим красный светодиод digitalWrite(greenpin, LOW); // Гасим зеленый светодиод digitalWrite(bluepin, LOW); // Гасим синий светодиод delay (1000); // Ждем 1 секунду }