KY-009 - Модуль RGB светодиода (SMD). Подключение к Arduino.

Для световой индикации в Arduino проектах часто используют светодиоды, а для экономии места можно поставить RGB светодиод. Сегодня в уроке рассмотрим KY-009 модуль, который оснащён SMD RGB светодиодом. Но, к сожалению, у данного модуля нет обвязки, как у других модулей из набора «37 in 1 Sensors Kit for Arduino». На мой взгляд это не логично. На модуль достаточно просто установить 3 резистора. И в принципе KY-009 это не модуль, а просто RGB светодиод.

Описание модуля KY-009

Описание модуля KY-009

Полноцветный светодиодный модуль RGB KY-009 для Arduino излучает различные цвета, смешивая красный, зеленый и синий свет. Количество каждого цвета регулируется с помощью ШИМ. Что позволяет вывести до 255 оттенков для каждого канала.

Полноцветный светодиодный модуль RGB KY-009 для Arduino

Технические характеристики KY-009

Cветодиодный SMD-модуль KY-009 RGB состоит из светодиода SMD 5050, который используется с ограничивающими резисторами для предотвращения перегорания. Совместим с популярными платформами, такими как Arduino, Raspberry Pi и ESP8266.

Cветодиодный SMD-модуль KY-009 RGB

При сборке схемы, рассчитанной на напряжение питания 5 В, следует установить в линиях R, G и B резисторы сопротивлением:
Для красного канала (R) не менее 180 Ом.
Для зеленого (G) и синего канала (B) не менее чем по 110 Ом.

Контакты:

  • I – общий провод, подключается к GND.

На эти контакты подается питание положительной полярности:

  • R – красный,
  • G – зеленый,
  • B – синий.

Схема подключения KY-009 к Arduino UNO.

Схема подключения KY-009 к Arduino UNO

Схема подключения KY-009 к Arduino NANO.

Схема подключения 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); 
  }
}

KY-009 Пример кода Arduino.

Второй вариант кода позволяет плавно изменять цвет из одного оттенка к другому и так по кругу.

#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 библиотеку…"

Заходим в Arduino IDE и выбираем в меню

Выбираем скаченный архив RGBLed-master.zip и нажимаем кнопку «Открыть». После установки вы увидите надпись, что библиотека успешно добавлена.

Использование библиотеки RGBLed Arduino library для работы с модулем KY-009.

Для начала работы с библиотекой 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 библиотека RGBLed Arduino library .zip18 Kb 923 Скачать
KY-009 Пример кода 1 KY-009 Пример кода 1.ino1 Kb 842 Скачать
KY-009 Пример кода 2 KY-009 Пример кода 2.ino2 Kb 793 Скачать
KY-009 Пример кода с библиотекой RGBLed KY-009 Пример кода с библиотекой RGBLed .ino0 Kb 851 Скачать
SMD LED SMD LED.pdf172 Kb 795 Скачать

Комментарии

Ваше Имя*

Андрей Софронов

Гость: Андрей Софронов (17 ноября, 2022 в 02:19)

У меня при проверке мультиметром светодиод светится при присоединении минуса к пинам RGB, и щупа "плюс" к пину "-", это значит что общий анод? Как использовать? С приведёнными примерами не работает


Разработка проектов