- Potrebné materiály:
- LDR:
- RGB LED:
- Schéma zapojenia:
- Vysvetlenie programovania:
- Fungovanie lampy na miešanie farieb Arduino:
Čo ak dokážeme pomocou jednej LED diódy generovať rôzne farby a zatraktívniť tak kútik našej miestnosti? Tu je teda jednoduchá lampa na miešanie farieb na báze Arduino, ktorá dokáže meniť farbu pri zmene svetla v miestnosti. Táto lampa bude teda automaticky meniť svoju farbu podľa svetelných podmienok v miestnosti.
Každá farba je kombináciou červenej, zelenej a modrej farby. Môžeme teda vygenerovať ľubovoľnú farbu pomocou červenej, zelenej a modrej farby. Takže tu budeme meniť PWM, tj intenzitu svetla na LDR. To ďalej zmení intenzitu červenej, zelenej a modrej farby v RGB LED a budú sa vyrábať rôzne farby.
Nasledujúca tabuľka zobrazuje farebné kombinácie s príslušnou zmenou pracovných cyklov.
Potrebné materiály:
- 1 x Arduino UNO
- 1 x nepájivá doska
- 3 x 220-ohmové odpory
- 3 x 1-kilohm rezistory
- Prepojovacie vodiče
- 3 x LDR
- 3 x farebné prúžky (červený, zelený, modrý)
- 1 x RGB LED
LDR:
Tu v tomto obvode použijeme fotorezistor (alebo na svetle závislý rezistor, LDR alebo fotovodivý článok). LDR sú vyrobené z polovodičových materiálov, aby mali svoje vlastnosti citlivé na svetlo. Tieto LDR alebo FOTOGRAFICKÉ ODPORY fungujú na princípe „fotovodivosti“. Teraz tento princíp hovorí, že kedykoľvek dopadne svetlo na povrch LDR (v tomto prípade), zvýši sa vodivosť prvku alebo inými slovami, odpor LDR klesne, keď svetlo dopadne na povrch LDR. Táto vlastnosť poklesu odporu pre LDR sa dosahuje, pretože je to vlastnosť polovodičového materiálu použitého na povrchu.
Tu sa používajú tri snímače LDR na riadenie jasu jednotlivých červených, zelených a modrých LED vo vnútri RGB LED. Viac informácií o ovládaní LDR pomocou Arduina sa dozviete tu.
RGB LED:
Existujú dva typy RGB LED diód, jeden je bežného typu s katódou (spoločný záporný) a druhého so spoločným typom anódy (spoločný kladný). V CC (spoločná katóda alebo spoločný negatív) budú tri kladné póly, z ktorých každý vývod predstavuje farbu a jeden záporný vývod predstavuje všetky tri farby.
V našom obvode použijeme typ CA (Common Anode alebo Common Positive). Ak chceme, aby v type bežnej anódy svietila ČERVENÁ LED dióda, musíme uzemniť pin ČERVENEJ LED diódy a napájať spoločný kladný pól. To isté platí pre všetky LED diódy. Naučte sa tu, ako prepojiť RGB LED s Arduino.
Schéma zapojenia:
Kompletná schéma zapojenia tohto projektu je uvedená vyššie. Pripojenie + 5 V a uzemnenie zobrazené v schéme zapojenia je možné získať z 5 V a uzemňovacieho kolíka Arduina. Samotné Arduino je možné napájať z vášho notebooku alebo cez DC jack pomocou 12V adaptéra alebo 9V batérie.
Použijeme PWM na zmenu jasu LED diódy RGB. Viac informácií o PWM sa dozviete tu. Tu je niekoľko príkladov PWM s Arduinom:
- Variabilný zdroj napájania od spoločnosti Arduino Uno
- Ovládanie jednosmerného motora pomocou Arduina
- Arduino tónový generátor
Vysvetlenie programovania:
Najskôr deklarujeme všetky vstupné a výstupné piny, ako je uvedené nižšie.
konštajtový byte red_sensor_pin = A0; konštanta byte green_sensor_pin = A1; konštanta byte blue_sensor_pin = A2; konšt bajt green_led_pin = 9; konšt bajt blue_led_pin = 10; konštajtový byte red_led_pin = 11;
Deklarujte počiatočné hodnoty senzorov a LED diód ako 0.
unsigned int red_led_value = 0; unsigned int blue_led_value = 0; unsigned int green_led_value = 0; unsigned int red_sensor_value = 0; unsigned int blue_sensor_value = 0; unsigned int green_sensor_value = 0; void setup () { pinMode (red_led_pin, OUTPUT); pinMode (blue_led_pin, OUTPUT); pinMode (green_led_pin, OUTPUT); Serial.begin (9600); }
V sekcii slučky vezmeme výstup troch senzorov s analogRead (); funkcie a ukladať do troch rôznych premenných.
void loop () { red_sensor_value = analogRead (red_sensor_pin); oneskorenie (50); blue_sensor_value = analogRead (blue_sensor_pin); oneskorenie (50); green_sensor_value = analogRead (green_sensor_pin);
Vytlačte tieto hodnoty na sériový monitor na účely ladenia
Serial.println ("Hodnoty surového senzora:"); Serial.print ("\ t Červená:"); Serial.print (red_sensor_value); Serial.print ("\ t Modrá:"); Serial.print (blue_sensor_value); Serial.print ("\ t Zelená:"); Serial.println (green_sensor_value);
Zo senzorov dostaneme hodnoty 0-1023, ale naše piny Arduino PWM majú ako výstup hodnoty 0-255. Musíme teda previesť naše nespracované hodnoty na 0-255. Preto musíme surové hodnoty rozdeliť na 4 ALEBO jednoducho a na prevod týchto hodnôt môžeme použiť mapovaciu funkciu Arduina.
red_led_value = red_sensor_value / 4; // definuj cervenu LED blue_led_value = blue_sensor_value / 4; // definuj Blue LED green_led_value = green_sensor_value / 4; // definovať zelenú led
Vytlačte namapované hodnoty na sériový monitor
Serial.println ("Mapované hodnoty senzorov:"); Serial.print ("\ t Červená:"); Serial.print (red_led_value); Serial.print ("\ t Modrá:"); Serial.print (blue_led_value); Serial.print ("\ t Zelená:"); Serial.println (green_led_value);
Na nastavenie výstupu pre RGB LED použite analogWrite ()
analogWrite (red_led_pin, red_led_value); // indikuje cervenu LED analogWrite (blue_led_pin, blue_led_value); // indikácia modrej LED analogWrite (green_led_pin, green_led_value); // označuje zelenú farbu
Fungovanie lampy na miešanie farieb Arduino:
Pretože používame tri LDR, tak pri dopade svetla na tieto snímače sa mení odpor, v dôsledku čoho sa menia aj napätia na analógových kolíkoch Arduina, ktoré fungujú ako vstupné kolíky pre snímače.
Keď sa na týchto senzoroch zmení intenzita svetla, príslušná kontrolka v RGB bude svietiť zmenami odporu a máme rozdielne miešanie farieb v kontrolke RGB pomocou PWM.