Для световой индикации в Arduino проектах часто используют светодиоды, а для экономии места можно поставить RGB светодиод. Сегодня в уроке рассмотрим KY-009 модуль, который оснащён SMD RGB светодиодом. Но, к сожалению, у данного модуля нет обвязки, как у других модулей из набора «37 in 1 Sensors Kit for Arduino». На мой взгляд это не логично. На модуль достаточно просто установить 3 резистора. И в принципе KY-009 это не модуль, а просто RGB светодиод.
Описание модуля KY-009
Полноцветный светодиодный модуль RGB KY-009 для Arduino излучает различные цвета, смешивая красный, зеленый и синий свет. Количество каждого цвета регулируется с помощью ШИМ. Что позволяет вывести до 255 оттенков для каждого канала.
Технические характеристики KY-009
Cветодиодный SMD-модуль KY-009 RGB состоит из светодиода SMD 5050, который используется с ограничивающими резисторами для предотвращения перегорания. Совместим с популярными платформами, такими как Arduino, Raspberry Pi и ESP8266.
При сборке схемы, рассчитанной на напряжение питания 5 В, следует установить в линиях R, G и B резисторы сопротивлением:
Для красного канала (R) не менее 180 Ом.
Для зеленого (G) и синего канала (B) не менее чем по 110 Ом.
Контакты:
- I – общий провод, подключается к GND.
На эти контакты подается питание положительной полярности:
- R – красный,
- G – зеленый,
- B – синий.
Схема подключения KY-009 к Arduino UNO.
Схема подключения KY-009 к Arduino NANO.
Для того чтобы модуль KY-009 не вышел из строя, необходимо использовать резисторы, с номиналом который рассмотрели выше. Дополнительную информацию можно найти в техническом описании SMD 5050 LED внизу статьи, в разделе «файлы для скачивания».
KY-009 Пример кода Arduino.
Следующий пример кода для 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 Arduino library для работы с модулем KY-009.
Скачать библиотеку 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 | 1102 |
Скачать
Вы можете скачать файл.
|
|
KY-009 Пример кода 1.ino | 1 Kb | 1001 |
Скачать
Вы можете скачать файл.
|
|
KY-009 Пример кода 2.ino | 2 Kb | 948 |
Скачать
Вы можете скачать файл.
|
|
KY-009 Пример кода с библиотекой RGBLed .ino | 0 Kb | 1004 |
Скачать
Вы можете скачать файл.
|
|
SMD LED.pdf | 172 Kb | 916 |
Скачать
Вы можете скачать файл.
|
Комментарии