KY-016 - Модуль RGB светодиода 5 мм. Подключение к Arduino.

Светодиоды широко используются в проектах на Arduino. Сегодня рассмотрим модуль KY-016, которой оснащен RGB светодиодам 5 мм. В отличие от модуля «KY-009 RGB светодиода (SMD)», данный модуль оснащен резисторами и его можно подключать напрямую к Arduino, без дополнительной обвязки. Схема подключения и код аналогичные с модулем KY-009.

Описание модуля KY-016 - rgb led Arduino.

Описание модуля KY-016 - rgb led Arduino.

KY-016 - rgb led Arduino полноцветный 5-миллиметровый светодиод RGB, разные цвета и оттенки могут быть получены путем смешивания трех основных цветов.

Технические характеристики rgb модуля Arduino.

Технические характеристики rgb модуля Arduino.

Этот rgb модуль Arduino состоит из 5- миллиметрового RGB-светодиода и трех токоограничивающих резисторов на 150 Ом, для предотвращения перегорания. Регулировка сигнала ШИМ на каждом пине модуля приведет к изменению цвета светодиода.

Рабочее напряжение

Светодиодный режим управления

Общий катод

Диаметр светодиода

5 мм

Размер модуля

15 мм x 19 мм

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

Подключение rgb светодиода к Arduino следующим оброзом:красный контакт (R) на KY-016 к контакту 9 на Arduino. Синий (B) к контакту 11, зеленый (G) к контакту 10 и земля (-) к GND. Обратите внимание, что вам не нужно использовать ограничивающие резисторы, поскольку они уже установлены на плату.

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

Контакты:

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

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

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

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

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

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

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

Arduino rgb скетч.

Следующий пример Arduino rgb скетч будет циклически переключаться между различными цветами, изменяя значение ШИМ для каждого из трех основных цветов.

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-016.

Скачать библиотеку RGBLed можно на github или внизу статьи, в разделе «файлы для скачивания»

Заходим в Arduino IDE и выбираем в меню: "Скетч –> Подключить библиотеку –> Добавить .ZIP библиотеку…"

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

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

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

Для начала работы с библиотекой 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);
}

Как видим из кода, у нас будем c, про которую есть у меня на сайт отдельный урок: Полицейская мигалка своими руками из светодиодов на Arduino

мигать светодиод красным и синим цветами, на подобии полицейской мигалки

Вывод

Модуль KY-016 показал себя как достаточно простой в использовании, и применить его можно в различных проектах на Arduino. И главный плюс, по сравнению с модуля KY-009, — это распаянные резисторы.

Понравился Урок KY-016 - Модуль RGB светодиода 5 мм. Подключение к Arduino? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Файлы для скачивания

Arduino rgb скетч Arduino rgb скетч.ino1 Kb 7 Скачать
Кода позволяет плавно изменять цвет RGB светодиода Кода позволяет плавно изменять цвет RGB светодиода.ino2 Kb 8 Скачать
KY-016 Пример кода с библиотекой RGBLed KY-016 Пример кода с библиотекой RGBLed.ino0 Kb 7 Скачать
библиотека RGBLed Arduino library библиотека RGBLed Arduino library.zip18 Kb 10 Скачать

Комментарии

Ваше Имя*