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 11 Скачать
Кода позволяет плавно изменять цвет RGB светодиода Кода позволяет плавно изменять цвет RGB светодиода.ino2 Kb 11 Скачать
KY-016 Пример кода с библиотекой RGBLed KY-016 Пример кода с библиотекой RGBLed.ino0 Kb 10 Скачать
библиотека RGBLed Arduino library библиотека RGBLed Arduino library.zip18 Kb 13 Скачать

Комментарии

Ваше Имя*