Arduino и RGB лента + драйвер L298

При разработке проекта «Арудино и баня» появилась необходимость подключения RGB ленты к Arduino. Нужно было не просто подключить, а еще и реализовать управление цветами этой самой ленты RGB.

Теория подключения Arduino и RGB ленты

Подключить напрямую микроконтроллер Arduino и RGB ленту нельзя. Всему виной разные требования к питанию. Для RGB ленты, в среднем на 10 см ленты требуется 60мА тока. Минимальное напряжение – 9В. Требуемое – 12В. В первом случае, лента будет светиться не так ярко. Поэтому по возможности лучше использовать 12В.

Контроллер Arduino также может питаться от 12В. Однако ШИМ – выходы, через, которые осуществляется управление rgb лентой с arduino, не такие мощные, как хотелось. Токовая нагрузка, создаваемая лентой, может вывести из строя плату Arduino. Поэтому в схеме подключения rgb ленты к Arduino лучше использовать мосфиты или обычные биполярные транзисторы.

Надеюсь теперь понятно почему Arduino и RGB лента требуют раздельных источников питания

Практика подключения Arduino и RGB ленты

На практике подключение Arduino и RGB ленты оказалось не таким уж и сложным, как казалось ранее. Все упрощается при использовании платы — драйвера L298. На практике шилд L298 используется для управления двигателями, обычными и шаговыми. Но, в моем случае ничего не мешает задействовать используемые в шилде мосфиты по моему назначению – управление светодиодной лентой Arduino.

На схеме ниже изображено, как подключается светодиодная лента к Arduino через драйвер L298.

Подключение RGB ленты к Arduino

Из схемы видно, что управление светодиодной лентой с Arduino осуществляется через ШИМ – выхода: 9,10,11.

RGB лента и Arduino запитаны с блока питания 12В, 1А.

Текст программы Arduino RGB лента:

#define LED_R 9    // пин для канала R
#define LED_G 10    // пин для канала G
#define LED_B 11    // пин для канала B
 
//переменные будут хранить значения цветов
//при смешивании всех трех цветов будет получаться необходимый цвет
int led_r=0, led_g=0, led_b=0;
 
void setup(){
  // объявляем пины выходами
  pinMode(LED_R, OUTPUT);
  pinMode(LED_G, OUTPUT);
  pinMode(LED_B, OUTPUT);
}
 
void loop(){
  // изменение цвета (изменяя эти три значения, в комплексе меняется цвет всей ленты)

led_r = 200;
led_g = 0;
led_b = 255;
// подача сигналов цвета на выхода analogWrite(LED_R, led_r); analogWrite(LED_G, led_g); analogWrite(LED_B, led_b); delay(100); }
P.S.: Для случайного изменения цвета ленты в коде программы нужно строки

  led_r = 200;
  led_g = 0;
  led_b = 255;

заменить на

  led_r = random(255);
  led_g = random(255);
  led_b = random(255);

Метки: Метки