Урок по Arduino №1 — подключаем, настраиваем, мигаем одноцветными и RGB-светодиодами

На предыдущем уроке мы уже попробовали зажигать и гасить с помощью Ардуино обычный светодиод. Теперь же разберемся с многоцветным светодиодом, который часто называют сокращенно: RGB-светодиод.

RGB — это аббревиатура, которая расшифровывается как: Red — красный, Green — зеленый, Blue — синий. То есть внутри этого устройства размещается сразу три отдельных светодиода. В зависимости от типа, RGB-светодиод может иметь общий катод или общий анод.

Блок: 1/2 | Кол-во символов: 452
Источник: https://robotclass.ru/tutorials/arduino-rgb-led/

Устройство и назначение RGB светодиода

Для отображения всей палитры оттенков вполне достаточно три цвета, используя RGB синтез (Red — красный, Green — зеленый, Blue — синий). RGB палитра используется не только в графических редакторах, но и в сайтостроении. Смешивая цвета в разной пропорции можно получить практически любой цвет. Преимущества RGB светодиодов в простоте конструкции, небольших габаритах и высоком КПД светоотдачи.

RGB светодиоды объединяют три кристалла разных цветов в одном корпусе. RGB LED имеет 4 вывода — один общий (анод или катод имеет самый длинный вывод) и три цветовых вывода. К каждому цветовому выходу следует подключать резистор. Кроме того, модуль RGB LED Arduino может сразу монтироваться на плате и иметь встроенные резисторы — этот вариант более удобный для занятий в кружке робототехники.

Фото. Распиновка RGB светодиода и модуль с RGB светодиодом для Ардуино

Распиновка RGB светодиода указана на фото выше. Заметим также, что для многих полноцветных (трехцветных) светодиодов необходимы светорассеиватели, иначе будут видны составляющие цвета. Далее подключим трехцветный светодиод к Ардуино и заставим его сначала мигать разными цветами, а затем плавно переливаться разными цветами с помощью «широтно импульсной модуляции».

Блок: 2/4 | Кол-во символов: 1260
Источник: https://xn--18-6kcdusowgbt1a4b.xn--p1ai/rgb-%D1%81%D0%B2%D0%B5%D1%82%D0%BE%D0%B4%D0%B8%D0%BE%D0%B4-%D0%B0%D1%80%D0%B4%D1%83%D0%B8%D0%BD%D0%BE/

Смешение цветов

Чем RGB-светодиод, лучше трех обычных? Всё дело в свойстве нашего зрения смешивать свет от разных источников, размещенных близко друг к другу. Например, если мы поставим рядом синий и красный светодиоды, то на расстоянии несколько метров их свечение сольется, и глаз увидит одну фиолетовую точку. А если добавим еще и зеленый, то точка покажется нам белой. Именно так работают мониторы компьютеров, телевизоры и уличные экраны.

Матрица телевизора состоит из отдельно стоящих точек разных цветов. Если взять лупу и посмотреть через нее на включенный монитор, то эти точки можно легко увидеть. А вот на уличном экране точки размещаются не очень плотно, так что их можно различить невооруженным глазом. Но с расстояния несколько десятков метров эти точки неразличимы.

Получается, что чем плотнее друг к другу стоят разноцветные точки, тем меньшее расстояние требуется глазу чтобы смешивать эти цвета. Отсюда вывод: в отличие от трех отдельностоящих светодиодов, смешение цветов RGB-светодиода заметно уже на расстоянии 30-70 см. Кстати, еще лучше себя показывает RGB-светодиод с матовой линзой.


Изменено:

Блок: 2/2 | Кол-во символов: 1138
Источник: https://robotclass.ru/tutorials/arduino-rgb-led/

Переходим к шагу 1

После каждого шага делаем паузу для фиксации показа цвета,

 delay(VIEW_PAUSE);

проверяем значение потенциометра и изменяем значение скорости изменения цвета.

 void setpause()   {   pause=map(analogRead(POT),0,1024,MIN_PAUSE,MAX_PAUSE);   Serial.print("pause=");Serial.println(pause);   }

Создадим в Arduino IDE новый скетч, занесем в него код из листинга 1 и загрузим скетч на на плату Arduino. Напоминаем, что в настройках Arduino IDE необходимо выбрать тип платы (Arduino UNO) и порт подключения платы.

Листинг 1

 const int RED=11; // вывод R RGB-светодиода   const int GREEN=10; // вывод G RGB-светодиода   const int BLUE=9; // вывод B RGB-светодиода   int red; // переменная для хранения R-составляющей цвета   int green; // переменная для хранения G-составляющей цвета   int blue; // переменная для хранения B-составляющей цвета   const int POT=A0; // вывод подключения потенциометра   const int MIN_PAUSE=10; // минимальная задержка смены цвета, мс   const int MAX_PAUSE=100; // максимальная задержка смены цвета, мс   int pause; // переменная для хранения текущей задержки   const int VIEW_PAUSE=2000; // время фиксации основного цвета, мс    void setup()   {   Serial.begin(9600);   }   void loop()   {   // от красного к желтому   Serial.println("red - yellow");   red=255;green=0;blue=0;   for(green=0;green<=255;green++) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от желтому к зеленому Serial.println("yellow - green"); red=255;green=255;blue=0; for(red=255;red>=0;red--)   setRGB(red,green,blue);   setpause();   delay(VIEW_PAUSE);   // от зеленого к голубому   Serial.println("green - blue");   red=0;green=255;blue=0;   for(blue=0;blue<=255;blue++) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от голубого к синему Serial.println("blue - blue"); red=0;green=255;blue=255; for(green=255;green>=0;green--)   setRGB(red,green,blue);   setpause();   delay(VIEW_PAUSE);   // от синего к фиолетовому   Serial.println("blue - purple");   red=0;green=0;blue=255;   for(red=0;red<=255;red++) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от фиолетового к красному Serial.println("purple - red"); red=255;green=0;blue=255; for(blue=0;blue>=0;blue--)   setRGB(red,green,blue);   setpause();   delay(VIEW_PAUSE);   }   // функция установки цвета RGB-светодиода   void setRGB(int r,int g,int b)   {   analogWrite(RED,r);   analogWrite(GREEN,g);   analogWrite(BLUE,b);   delay(pause);   }   // функция установки текущей задержки   void setpause()   {   pause=map(analogRead(POT),0,1024,MIN_PAUSE,MAX_PAUSE);   Serial.print("pause=");Serial.println(pause);   }  

После загрузки скетча наблюдаем изменение цвета RGB-светодиода цветами радуги, потенциометром меняем скорость смены цвета (см. рисунок 2,3).

Рисунок 2,3. RGB-светодиод – всеми цветами радуги

Блок: 2/2 | Кол-во символов: 2833
Источник: https://playarduino.ru/uroki-arduino/rgb-svetodiod-s-arduino-perelivatsya-vsemi-tsvetami-radugi/

2 Подключение RGB светодиода с общим анодомк Arduino

Схема подключения RGB светодиода с общим анодом показана на рисунке. Анод подключаем к «+5 В» на плате Arduino, три другие вывода – к произвольным цифровым пинам.

Схема подключения RGB светодиода с общим анодом к Arduino

Обратите внимание, что мы подключаем каждый из светодиодов через свой резистор, а не используем один общий. Желательно делать именно так, потому что каждый из светодиодов имеет свой КПД. И если подключить их все через один резистор, светодиоды будут светиться с разной яркостью.

Для быстрого расчёта номинала резистора, подходящего к выбранному вами светодиоду, можно воспользоваться онлайн-калькулятором расчёта светодиодов.

Блок: 3/6 | Кол-во символов: 706
Источник: https://soltau.ru/index.php/arduino/item/347-kak-podklyuchit-rgb-svetodiod-k-arduino

3Управление RGB светодиодами с помощью Arduino

Перепишем классический скетч blink. Будем включать и отключать по очереди каждый из трёх цветов. Обратите внимание, что светодиод загорается, когда мы подаём низкий уровень (LOW) на соответствующий вывод Arduino.

  // задаём номера выводов:  const int pinR = 12;   const int pinG = 10;  const int pinB = 9;    void setup() {    // задаём назначение выводов:    pinMode(pinR, OUTPUT);     pinMode(pinG, OUTPUT);    pinMode(pinB, OUTPUT);  }    void loop() {    digitalWrite(pinR, LOW); //зажигаем канал Red    delay(100);                    digitalWrite(pinR, HIGH); //выключаем Red    delay(200);                       digitalWrite(pinG, LOW); //зажигаем канал Green    delay(100);                    digitalWrite(pinG, HIGH); //выключаем Green    delay(200);                     digitalWrite(pinB, LOW); //зажигаем канал Blue    delay(100);                    digitalWrite(pinB, HIGH); //выключаем Blue    delay(200);                 }  

Блок: 4/6 | Кол-во символов: 991
Источник: https://soltau.ru/index.php/arduino/item/347-kak-podklyuchit-rgb-svetodiod-k-arduino

4 Собрать схемуна макетной плате

Посмотрим в действии на мигание RGB светодиодом. Светодиод по очереди зажигается красным, зелёным и синим цветами. Каждый цвет горит 0,1 секунду, а затем гаснет на 0,2 секунды, и включается следующий. Можно зажигать каждый канал отдельно, можно все одновременно, тогда цвет свечения будет меняться.

RGB светодиод подключён к Arduino. Схема собрана на макетной плате

Блок: 5/6 | Кол-во символов: 400
Источник: https://soltau.ru/index.php/arduino/item/347-kak-podklyuchit-rgb-svetodiod-k-arduino

5Подключение RGB светодиода с общим катодомк Arduino

Если вы используете RGB светодиод с общим катодом, то подключите длинный вывод светодиода к GND платы Arduino, а каналы R, G и B – к цифровым портам Arduino. При этом нужно помнить, что светодиоды загораются при подаче на каналы R, G, B высокого уровня (HIGH), в отличие от светодиода с общим анодом.

Схема подключения RGB светодиода с общим катодом к Arduino

Если не менять вышеприведённый скетч, то каждый цвет светодиода в этом случае будет гореть 0,2 секунды, а пауза между ними составит 0,1 секунду.

Полезный совет

Если вы хотите управлять яркостью светодиода, то подключайте RGB светодиод к цифровым выводам Arduino, которые имеют функцию ШИМ (PWM). Такие выводы на плате Arduino обычно помечены знаком тильда (волнистая линия), звёздочкой или обведены кружочками.

Блок: 6/6 | Кол-во символов: 829
Источник: https://soltau.ru/index.php/arduino/item/347-kak-podklyuchit-rgb-svetodiod-k-arduino

Кол-во блоков: 10 | Общее кол-во символов: 11127
Количество использованных доноров: 5
Информация по каждому донору:

  1. https://xn--18-6kcdusowgbt1a4b.xn--p1ai/rgb-%D1%81%D0%B2%D0%B5%D1%82%D0%BE%D0%B4%D0%B8%D0%BE%D0%B4-%D0%B0%D1%80%D0%B4%D1%83%D0%B8%D0%BD%D0%BE/: использовано 1 блоков из 4, кол-во символов 1260 (11%)
  2. https://soltau.ru/index.php/arduino/item/347-kak-podklyuchit-rgb-svetodiod-k-arduino: использовано 5 блоков из 6, кол-во символов 3505 (31%)
  3. https://playarduino.ru/uroki-arduino/rgb-svetodiod-s-arduino-perelivatsya-vsemi-tsvetami-radugi/: использовано 1 блоков из 2, кол-во символов 2833 (25%)
  4. https://portal-pk.ru/news/1-urok-1—miganie-vstroennym-na-platu-arduino-svetodiodom.html: использовано 1 блоков из 2, кол-во символов 1939 (17%)
  5. https://robotclass.ru/tutorials/arduino-rgb-led/: использовано 2 блоков из 2, кол-во символов 1590 (14%)


Поделитесь в соц.сетях:

Оцените статью:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Добавить комментарий