RGB светодиоди за arduino uno. RGB-светодиоди: как работят, вътрешни, как да се свързват, RGB-светодиоди и Arduino. Сглобете веригата на макетна платка

Arduino е идеален за управление на всяко устройство. Микропроцесорът ATmega манипулира голям брой дискретни изходи, A/D I/Os и PWM контролери, използвайки програма за скициране.

Благодарение на гъвкавостта на кода, микроконтролерът ATmega се използва широко в различни модули за автоматизация, включително на негова основа е възможно да се създаде контролер за управление на LED осветление.

Принципът на управление на натоварването чрез Arduino

Платката Arduino има два типа изходни портове: цифров и аналогов (PWM контролер). Цифровият порт има две възможни състояния - логическа нула и логическа единица. Ако свържете светодиод към него, той или ще свети, или не.

Аналоговият изход е PWM контролер, към който се подава сигнал с честота около 500 Hz с регулируем работен цикъл. Какво е PWM контролер и как работи може да се намери в интернет. Чрез аналоговия порт е възможно не само да се включва и изключва натоварването, но и да се променя напрежението (тока) върху него.

Синтаксис на команди

Цифров изход:

pinMode(12, ИЗХОД);- задайте порт 12 като порт за извеждане на данни;
digitalWrite(12, HIGH);- прилагаме логическа единица към дискретния изход 12, запалвайки светодиода.

Аналогов изход:

analogOutPin = 3;- настройте порт 3 за извеждане на аналогова стойност;
analogWrite(3, стойност);- формираме сигнал с напрежение от 0 до 5V на изхода. Стойност – работен цикъл на сигнала от 0 до 255. При стойност 255, максималното напрежение.

Начини за управление на светодиодите чрез Arduino

Само слаб светодиод може да бъде свързан директно през порта и дори тогава е по-добре чрез ограничаващ резистор. Опитът за свързване на по-мощен товар ще го деактивира.

За по-мощни товари, включително LED ленти, се използва електронен ключ - транзистор.

Видове транзисторни ключове

  • биполярно;
  • Поле;
  • Композит (сглобяване на Дарлингтън).
Заредете методи за свързване
Чрез биполярен транзистор Чрез полеви транзистор Чрез превключвател за напрежение

Когато се прилага високо логическо ниво (digitalWrite(12, HIGH);)през изходния порт към основата на транзистора през веригата колектор-емитер, референтното напрежение ще потече към товара. По този начин можете да включвате и изключвате светодиода.

Полевият транзистор работи по подобен начин, но тъй като има дренаж вместо „база“, която се управлява не от ток, а от напрежение, ограничаващ резистор в тази верига е по избор.

Биполярният изглед не ви позволява да регулирате мощни натоварвания. Токът през него е ограничен на ниво 0,1-0,3A.

Полевите транзистори работят с по-мощни товари с ток до 2A. За още по-мощен товар се използват полеви транзистори Mosfet с ток до 9A и напрежение до 60V.

Вместо поле, можете да използвате комплекта Дарлингтън от биполярни транзистори на микросхеми ULN2003, ULN2803.

ULN2003 чип и електрическа схема на електронния превключвател на напрежението:

Принципът на работа на транзистора за плавно управление на LED лентата

Транзисторът работи като кран, само за електрони. Колкото по-високо е напрежението, подадено към основата на биполярния транзистор или изтичането на полевия ефект, толкова по-ниско е съпротивлението във веригата емитер-колектор, толкова по-голям е токът, преминаващ през товара.

Като свържете транзистора към аналоговия порт на Arduino, задайте му стойност от 0 до 255, променете напрежението, приложено към колектора или дренажа от 0 до 5V. През веригата колектор-емитер ще премине от 0 до 100% от референтното напрежение на натоварването.

За да управлявате arduino LED лентата, трябва да изберете транзистор с подходяща мощност. Работният ток за захранване на LED измервателния уред е 300-500mA, за целта е подходящ мощен биполярен транзистор. За по-дълги дължини е необходим полеви транзистор.

Схема на свързване на LED лента към arduino:

RGB управление на лентата с Andurino

В допълнение към светодиодите с един чип, Arduino може да работи и с цветни светодиоди. Чрез свързване на изходите на всеки цвят към аналоговите изходи на Arduino, можете произволно да променяте яркостта на всеки кристал, като постигате желания цвят на сияние.

Схема на свързване за Arduino RGB LED:

Управлението на Arduino RGB лентата е изградено по подобен начин:

Arduino RGB контролерът е най-добре сглобен върху транзистори с полеви ефект.

За плавен контрол на яркосттамогат да се използват два бутона. Единият ще увеличи яркостта на сиянието, другият ще намалее.

Скица за контрол на яркостта на LED лентата на Arduino

int led = 120; задайте нивото на яркост на средно

void setup()(
pinMode(4, ИЗХОД); задайте 4-ти аналогов порт за изход
pinMode(2, INPUT);

pinMode(4, INPUT); задайте 2-ри и 4-ти цифров порт за вход, за да анкетирате бутоните
}
void loop()(

бутон1 = цифрово четене(2);

бутон2 = цифрово четене(4);
ако (бутон1 == ВИСОКО) натискането на първия бутон ще увеличи яркостта
{
led=LED+5;

analogWrite(4, led);
}
if (button2 == HIGH) натискането на втория бутон ще намали яркостта
{
led \u003d led - 5;

analogWrite(4, led);
}

При задържане на първия или втория бутон напрежението, подавано към контролния контакт на електронния ключ, се променя плавно. Тогава ще има плавна промяна в яркостта.

Контролни модули на Arduino

За да създадете пълноправен драйвер за LED лента, можете да използвате сензорни модули.

IR контрол

Модулът позволява програмиране на до 20 команди.

Радиусът на сигнала е около 8m.

Цената на комплекта е 6 c.u.

По радио канал

Четириканален блок с обхват до 100м

Цената на комплекта е 8 c.u.

Позволява ви да включите осветлението дори при приближаване до апартамента.

Безконтактно

Сензорът за разстояние е в състояние да увеличава и намалява яркостта на светлината чрез движение на ръката.

Обхват до 5м.

Цена на модула 0,3 c.u.

сериал "Дърз".

RGB означавакато съкращение от червено, зелено, синьо, с тези цветове можете да получите всеки цвят чрез смесване. RGB LED съдържа 3 малки кристала R, G, B, с които можем да синтезираме всеки цвят или нюанс. В този урок ще свържем RGB LED към платка Arduino и ще го накараме да свети с всички цветове на дъгата.
За този проект ще ви трябват частите, които са налични в комплектите "Basic" и "Learn Arduino":

  1. Arduino Uno;
  2. USB кабел;
  3. прототипна платка;
  4. Проводници "баща-баща" - 7 бр.;
  5. Резистори 220 Ohm - 3 бр;
  6. RGB LED - 1 бр;
  7. Потенциометър.

Сглобяваме веригата, показана на фигура 1.

Фигура 1. Схема на свързване

Сега нека започнем да пишем скицата.
RGB светодиодът трябва да блести с всички цветове на дъгата от червено до лилаво, след това да премине към червено и така нататък в кръг. Скоростта на преход на цветовете се регулира с потенциометър. Таблица 1 показва данните за стойностите на R, G, B за 7-те основни цвята на дъгата.

Таблица 1. Данни за стойностите на R, G, B за 7-те основни цвята на дъгата

За смесване на цветовенеобходимо е да подадете пълния диапазон от напрежения от изводите на Arduino към входовете R, G, B на светодиода. Но Arduino не може да изведе произволно напрежение към цифров щифт. Извежда се или +5V (ВИСОКА) или 0V (НИСКА). За симулиране на частично напрежение се използва PWM (широчинна импулсна модулация или PWM).

Надявам се, че вече сте прочели главата 2.6 от книгата на Джеръми Блум "Изучаване на Arduino: Инструменти и техники на техническото магьосничество", която подробно описва механизма на широчинно-импулсната модулация.
Алгоритъм за изпълнение на програмата:

  • Увеличете стойността на зеления компонент на G, докато достигнем стойността на оранжевото (255,125,0),
  • Увеличаваме стойността на зеления компонент на G, докато достигнем жълтия цвят (255.255.0).
  • Намалете стойността на червения компонент R до зелената стойност (0,255,0).
  • Началната точка е червена (255,0,0).
  • Увеличете стойността на синия компонент B до стойността на циан (0,255,255).
  • Намалете стойността на зеления компонент на G до стойността на синия цвят (0.0.255).
  • Постепенно увеличете стойността на червения компонент R до лилавата стойност (255,0,255).
  • Намалете стойността на синия компонент B до червената стойност (255.0.0).

Нека преминем към стъпка 1.

След всяка стъпка правете пауза, за да фиксирате цветния дисплей,

забавяне(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 LED изход const int GREEN=10; // G RGB LED изход const int BLUE=9; // щифт B на RGB LED int червен; // променлива за съхраняване на R-компонента на цвета int green; // променлива за съхранение на G-компонента на цвета int blue; // променлива за съхраняване на B-компонента на цвета const int POT=A0; // щифт за свързване на потенциометър const int MIN_PAUSE=10; // минимално забавяне на промяната на цвета, ms const int MAX_PAUSE=100; // максимално забавяне на промяната на цвета, ms int пауза; // променлива за съхраняване на текущото забавяне const int VIEW_PAUSE=2000; // време за фиксиране на основния цвят, ms void setup() ( Serial.begin(9600); ) void loop() ( // от червено до жълто Serial.println("червено - жълто"); red=255;зелено =0 ;синьо=0; за(зелено=0;зелено<=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;червено--) setRGB(червено,зелено,синьо); задаване на пауза(); забавяне(VIEW_PAUSE); // от зелено към синьо Serial.println("зелено - синьо"); червено=0;зелено=255;синьо=0; за(синьо=0; синьо<=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;зелено--) setRGB(червено,зелено,синьо); задаване на пауза(); забавяне(VIEW_PAUSE); // синьо до лилаво Serial.println("синьо - лилаво"); червено=0;зелено=0;синьо=255; за(червено=0; червено<=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;син--) setRGB(червен,зелен,син); задаване на пауза(); забавяне(VIEW_PAUSE); ) // Функция за задаване на RGB LED цвят void setRGB(int r,int g,int b) ( analogWrite(RED,r); analogWrite(GREEN,g); analogWrite(BLUE,b); забавяне(пауза); ) / / функция за задаване на текущото забавяне void setpause() ( pause=map(analogRead(POT),0,1024,MIN_PAUSE,MAX_PAUSE); Serial.print("pause=");Serial.println(pause); )

След като заредим скицата, наблюдаваме промяната на цвета на RGB светодиода с цветовете на дъгата, променяме скоростта на смяна на цвета с потенциометър (виж Фигура 2.3).


Фигура 2.3. RGB LED - всички цветове на дъгата

Трицветният светодиод може да блести с всички цветове на дъгата! Съгласете се, това е много по-интересно от просто мигане на обикновен светодиод
Нека започнем третия урок по запознаване с Arduino.

Свързване на оборудването:
Всъщност трицветният светодиод е три светодиода (червен, зелен и син) в един пакет. Когато го стартираме с различна степен на яркост и интензитет на червено, зелено и синьо, получаваме нови цветове като изход.

Има малък скос на ръба на светодиода, това е ключът, той сочи към крака на червения светодиод, след това общият отива, след това зелено и синьо.

Свържете крака на ЧЕРВЕНИЯ LED към резистор 330 ома. Свържете другия край на резистора към порта Arduino pin9.

Свържете GND към GND.

Свържете крака на GREEN към резистора 330 ома.

Свържете другия край на резистора към порта Arduino pin10.

Свържете крака на СИНИЯ към резистора 330 ома.

Свържете другия край на резистора към порта Arduino pin11.

Следващата фигура показва оформлението на макетната платка със сглобена верига и платката Arduino с проводници, идващи от платката.

Комплект за експерименти ArduinoKit
Програмен код за експеримент №3:

Остава да качите програмата в Arduino чрез USB кабел. Изтеглете скицата с третия LED RGB урок - по-горе в статията.

  • 3 резистора от 220 ома (ето отличен набор от резистори с най-често срещаните рейтинги);
  • свързващи проводници (препоръчвам този комплект);
  • макет (макет);
  • персонален компютър с Arduino IDE среда за разработка.
  • 1 Разликата между RGB светодиодитеобщ анод и общ катод

    RGB светодиодите се предлагат в два вида: с общ анод ("плюс")И общ катод ("минус"). Фигурата показва схемните схеми на тези два вида светодиоди. Дългият крак на светодиода винаги е общият захранващ щифт.Изходът на червения светодиод (R) е разположен отделно, зеленият (G) и синият (B) са разположени от другата страна на общия изход, както е показано на фигурата. В тази статия ще разгледаме свързването на RGB LED както с общ анод, така и с общ катод.

    2 Свързване на RGB LED с общ анодкъм Arduino

    Общ анод RGB LED схема на свързванепоказано на фигурата. Свързваме анода към "+5 V" на платката Arduino, останалите три изхода към произволни цифрови щифтове.


    Моля, имайте предвид, че ние свързваме всеки от светодиодите чрез собствен резистор, а не използваме един общ. Препоръчително е да направите точно това, защото всеки от светодиодите има своя собствена ефективност. И ако ги свържете всички през един резистор, светодиодите ще светят с различна яркост.

    За да изчислите бързо стойността на резистора, подходящ за избрания от вас светодиод, можете да използвате онлайн LED калкулатора.

    3 RGB LED управлениес помощта на Arduino

    Нека пренапишем класическата скица мига. Ще активираме и деактивираме всеки от трите цвята на свой ред. Моля, имайте предвид, че светодиодът светва, когато приложим ниско ниво (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); // изключване на зеленото забавяне (200); digitalWrite(pinB, LOW); // осветяване на канала Blue delay(100); digitalWrite(pinB, HIGH); //изключете Blue delay(200); }

    4 Сглобете веригатана дъската

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


    RGB LED, свързан към Arduino. Веригата е сглобена на макетна платка

    5 към Arduino

    Ако използвате RGB LED с общ катод, след което свържете дългия проводник на светодиода към GND Arduino платки и R, G и B канали към цифровите портове на Arduino. Трябва да се помни, че светодиодите светват, когато се прилага високо ниво (HIGH) към каналите R, G, B, за разлика от светодиод с общ анод.


    Схема на свързване за RGB LED с общ катод към Arduino

    Ако не промените горната скица, тогава всеки цвят на светодиода в този случай ще гори за 0,2 секунди, а паузата между тях ще бъде 0,1 секунда.

    Ако искате да контролирате яркостта на светодиод, свържете RGB LED към цифрови щифтове на Arduino, които имат PWM функция. Такива щифтове на платката Arduino обикновено са маркирани с тилда (вълнообразна линия), звездичка или оградени с кръг.

    Тази статия обхваща основите на използването на RGB (червено зелено синьо) LED с Arduino.

    Използваме функцията analogWrite, за да контролираме цвета на RGB LED.

    На пръв поглед RGB светодиодите изглеждат точно като обикновените светодиоди, но всъщност имат три светодиода, инсталирани вътре в тях: един червен, един зелен и да, един син. Чрез контролиране на яркостта на всеки един, можете да контролирате цвета на светодиода.

    Тоест ще регулираме яркостта на всеки светодиод и ще получим желания цвят на изхода, сякаш е палитра на художник или сякаш настройвате честотите на вашия плейър. За да направите това, можете да използвате променливи резистори. Но в резултат на това схемата ще бъде доста сложна. За щастие Arduino ни предлага функцията analogWrite. Ако използваме контактите, маркирани със символ „~” на платката, можем да регулираме напрежението, което се подава към съответния светодиод.

    Задължителни възли

    За да реализираме нашия малък проект, се нуждаем от:

    1 RGB LED 10мм

    3 270 Ω резистора (червени, лилави, кафяви ивици). Можете да използвате резистор до 1 kΩ, но имайте предвид, че с увеличаване на съпротивлението светодиодът няма да свети толкова ярко.


    Шестте цифри на числото съответстват на трите двойки числа; първата двойка е червеният компонент на цвета, следващите две цифри са зеленият компонент, а последната двойка е синият компонент. Тоест #FF0000 съответства на червения цвят, тъй като това ще бъде максималната яркост на червения светодиод (FF е 255 в шестнадесетичен), а червените и сините компоненти са 0.

    Опитайте да запалите светодиода, като използвате например нюанса на индиго: #4B0082.

    Червените, зелените и индигосините компоненти са съответно 4B, 00 и 82. Можем да ги използваме във функцията "setColor" със следния ред код:

    setColor(0x4B, 0x0, 0x82); // индиго

    За три компонента използваме нотация, в която всеки от тях е предшестван от знак "0x" в началото.

    Докато играете с различни RGB LED нюанси, не забравяйте да зададете „закъснение“ след използване на всеки от тях.

    PWM и Arduino

    Широтинно-импулсната модулация (PWM) е един от методите за управление на мощността. В нашия случай PWM се използва за управление на яркостта на всеки отделен светодиод.

    Фигурата по-долу схематично показва сигнала от един от PWM щифтовете на Arduino.


    На всеки 1/500 секунда PWM изходът генерира импулс. Дължината на този импулс се контролира от функцията "analogWrite". Тоест "analogWrite(0)" няма да генерира никакъв импулс, но "analogWrite(255)" ще генерира сигнал, който ще продължи до самото начало на следващия. Тоест ще създаде впечатлението, че се прилага един непрекъснат импулс.

    Когато посочим стойност в диапазона от 0 до 255 в рамките на функцията analogWrite, ние генерираме импулс с определена продължителност. Ако дължината на импулса е 5%, ще приложим 5% от максималната налична мощност към посочения изход на Arduino и изглежда, че светодиодът не свети при максимална яркост.

    Оставете вашите коментари, въпроси и споделете личния си опит по-долу. В дискусията често се раждат нови идеи и проекти!