Для световой индикации в Arduino проектах часто используют светодиоды, а для экономии места можно поставить RGB светодиод. Сегодня в уроке рассмотрим KY-009 модуль, который оснащён SMD RGB светодиодом. Но, к сожалению, у данного модуля нет обвязки, как у других модулей из набора «37 in 1 Sensors Kit for Arduino». На мой взгляд это не логично. На модуль достаточно просто установить 3 резистора. И в принципе KY-009 это не модуль, а просто RGB светодиод.
Полноцветный светодиодный модуль RGB KY-009 для Arduino излучает различные цвета, смешивая красный, зеленый и синий свет. Количество каждого цвета регулируется с помощью ШИМ. Что позволяет вывести до 255 оттенков для каждого канала.
Cветодиодный SMD-модуль KY-009 RGB состоит из светодиода SMD 5050, который используется с ограничивающими резисторами для предотвращения перегорания. Совместим с популярными платформами, такими как Arduino, Raspberry Pi и ESP8266.
При сборке схемы, рассчитанной на напряжение питания 5 В, следует установить в линиях R, G и B резисторы сопротивлением:
Для красного канала (R) не менее 180 Ом.
Для зеленого (G) и синего канала (B) не менее чем по 110 Ом.
Контакты:
На эти контакты подается питание положительной полярности:
Для того чтобы модуль KY-009 не вышел из строя, необходимо использовать резисторы, с номиналом который рассмотрели выше. Дополнительную информацию можно найти в техническом описании SMD 5050 LED внизу статьи, в разделе «файлы для скачивания».
Следующий пример кода для Arduino будет циклически переключаться между различными цветами, изменяя значение ШИМ для каждого из трех основных цветов.
int redpin = 9; //pin red LED int bluepin =10; //pin blue LED int greenpin = 11;//pin green LED int val; void setup() { pinMode(redpin, OUTPUT); pinMode(bluepin, OUTPUT); pinMode(greenpin, OUTPUT); Serial.begin(9600); } void loop() { for(val = 255; val > 0; val--) { analogWrite(redpin, val); //PWM red analogWrite(bluepin, 255 - val); //PWM blue analogWrite(greenpin, 128 - val); //PWM green Serial.println(val); //print delay(5); } for(val = 0; val < 255; val++) { analogWrite(redpin, val); analogWrite(bluepin, 255 - val); analogWrite(greenpin, 128 - val); Serial.println(val); delay(5); } }
Второй вариант кода позволяет плавно изменять цвет из одного оттенка к другому и так по кругу.
#define R_PIN 9 //pin red LED #define G_PIN 10 //pin blue LED #define B_PIN 11 //pin green LED void setup() { pinMode(R_PIN, OUTPUT); pinMode(G_PIN, OUTPUT); pinMode(B_PIN, OUTPUT); } void loop() { // плавно проходимся по всем цветам static int counter = 0; counter += 10; colorWheel(counter); delay(100); if (counter > 1530) counter = 0; } // включает цвет по цветовому колесу, принимает 0-1530 void colorWheel(int color) { byte _r, _g, _b; if (color <= 255) { // красный макс, зелёный растёт _r = 255; _g = color; _b = 0; } else if (color > 255 && color <= 510) { // зелёный макс, падает красный _r = 510 - color; _g = 255; _b = 0; } else if (color > 510 && color <= 765) { // зелёный макс, растёт синий _r = 0; _g = 255; _b = color - 510; } else if (color > 765 && color <= 1020) { // синий макс, падает зелёный _r = 0; _g = 1020 - color; _b = 255; } else if (color > 1020 && color <= 1275) { // синий макс, растёт красный _r = color - 1020; _g = 0; _b = 255; } else if (color > 1275 && color <= 1530) { // красный макс, падает синий _r = 255; _g = 0; _b = 1530 - color; } analogWrite(R_PIN, 255 - _r); analogWrite(G_PIN, 255 - _g); analogWrite(B_PIN, 255 - _b); }
Код не оптимальный, но для понимания этого достаточно. Кроме этого, для облегчения работы с RGB светодиодами также есть библиотеки, например: RGBLed Arduino library.
Скачать библиотеку RGBLed можно на github или внизу статьи, в разделе «файлы для скачивания»
Заходим в Arduino IDE и выбираем в меню: "Скетч –> Подключить библиотеку –> Добавить .ZIP библиотеку…"
Выбираем скаченный архив RGBLed-master.zip и нажимаем кнопку «Открыть». После установки вы увидите надпись, что библиотека успешно добавлена.
Для начала работы с библиотекой RGBLed ее нужно подключить.
#include <RGBLed.h>
Затем создать объект для подключения, указав пины подключения светодиода к Arduino.
RGBLed led(RED_PIN, GREEN_PIN, BLUE_PIN, RGBLed::COMMON_ANODE or RGBLed::COMMON_CATHODE);
В дальнейшем мы можем, в основном цикле loop(), оперировать цветом светодиода, для этого в библиотеке есть функции:
led.setColor(RGBLed::RED); // или led.setColor(255, 0, 0);
led.off();
led.brightness(RGBLed::RED, 50); // 50% brightness // или led.brightness(255, 0, 0, 50); // 50% brightness
Для того чтобы загорелся красный светодиод на 100 мс, достаточно в коде добавить строчку:
led.flash(RGBLed::RED, 100); // Interval 100ms // или led.flash(255, 0, 0, 100); // Interval 100ms
Также в библиотеки есть палитра цветов.
RED GREEN BLUE MAGENTA CYAN YELLOW WHITE
С библиотекой идут примеры использования. Например Вспышка:
#include <RGBLed.h> RGBLed led(9, 10, 11, RGBLed::COMMON_CATHODE); void setup() { } void loop() { // Flash red color, interval 100ms led.flash(RGBLed::RED, 100); // Flash green color, interval 100ms led.flash(0, 255, 0, 100); // Flash red color, during 250ms with interval 100ms led.flash(RGBLed::RED, 250, 100); // Flash green color, during 250ms with interval 100ms led.flash(0, 255, 0, 250, 100); }
Как видим из кода, у нас будем мигать светодиод красным и синим цветами, на подобии полицейской мигалки, про которую есть у меня на сайт отдельный урок: Полицейская мигалка своими руками из светодиодов на Arduino
Вывод.
Как видим, работать с RGB светодиодом достаточно просто, и для этого есть готовые инструменты. Сейчас мы можем смело использовать данный модуль в своих проектах на Arduino.Описание всех датчиков из набора «37 in 1 Sensors Kit for Arduino» вы можете посмотреть на странице описания данного набора модулей для Arduino.
Понравился Урок KY-009 - Модуль RGB светодиода (SMD). Подключение к Arduino? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
Фотографии к статье
Файлы для скачивания
![]() |
библиотека RGBLed Arduino library .zip | 18 Kb | 1165 | Скачать |
![]() |
KY-009 Пример кода 1.ino | 1 Kb | 1052 | Скачать |
![]() |
KY-009 Пример кода 2.ino | 2 Kb | 1002 | Скачать |
![]() |
KY-009 Пример кода с библиотекой RGBLed .ino | 0 Kb | 1056 | Скачать |
![]() |
SMD LED.pdf | 172 Kb | 958 | Скачать |
У меня при проверке мультиметром светодиод светится при присоединении минуса к пинам RGB, и щупа "плюс" к пину "-", это значит что общий анод? Как использовать? С приведёнными примерами не работает
37 модулей для Arduino
1 марта , 2021
Комментариев:1
Файлов для скачивания:5
Фото:7
Понравилась статья? Нажми
Виджеты для Easy HMI
Читайте также
Мы в соц сетях
Комментарии