- Potřebné materiály:
- LDR:
- RGB LED:
- Kruhový diagram:
- Vysvětlení programování:
- Práce s lampou pro míchání barev Arduino:
Co když můžeme generovat různé barvy pomocí jedné LED diody RGB a zatraktivnit tak roh našeho pokoje? Zde je tedy jednoduchá lampa na míchání barev na bázi Arduino, která může změnit barvu, když dojde ke změně světla v místnosti. Tato lampa tedy automaticky změní barvu podle světelných podmínek v místnosti.
Každá barva je kombinací červené, zelené a modré barvy. Můžeme tedy generovat jakoukoli barvu pomocí červené, zelené a modré barvy. Zde tedy budeme měnit PWM, tj. Intenzitu světla na LDR. To dále změní intenzitu červené, zelené a modré barvy v RGB LED a budou produkovány různé barvy.
Níže uvedená tabulka zobrazuje barevné kombinace s příslušnou změnou pracovních cyklů.
Potřebné materiály:
- 1 x Arduino UNO
- 1 x prkénko
- 3 x 220 ohmové rezistory
- 3 x 1-kilohm rezistory
- Propojovací vodiče
- 3 x LDR
- 3 x barevné proužky (červený, zelený, modrý)
- 1 x RGB LED
LDR:
Zde v tomto obvodu použijeme fotorezistor (nebo rezistor závislý na světle, LDR nebo fotovodivý článek). LDR jsou vyrobeny z polovodičových materiálů, aby mohly mít své vlastnosti citlivé na světlo. Tyto LDR nebo FOTOGRAFICKÉ ODPORY fungují na principu „fotovodivosti“. Tento princip nyní říká, že kdykoli světlo dopadne na povrch LDR (v tomto případě), vodivost prvku se zvýší nebo jinými slovy, odpor LDR klesá, když světlo dopadne na povrch LDR. Této vlastnosti snížení odporu pro LDR je dosaženo, protože je to vlastnost polovodičového materiálu použitého na povrchu.
Zde se tři senzory LDR používají k ovládání jasu jednotlivých červených, zelených a modrých LED uvnitř RGB LED. Další informace o ovládání LDR pomocí Arduina se dozvíte zde.
RGB LED:
Existují dva typy RGB LED diod, jeden je běžný typ katody (běžný záporný) a druhý je běžný typ anody (běžný kladný). V CC (společná katoda nebo společná záporná) budou tři kladné svorky, z nichž každý bude představovat barvu a jeden záporný bude představovat všechny tři barvy.
V našem obvodu použijeme typ CA (Common Anode nebo Common Positive). U typu s běžnou anodou, pokud chceme, aby svítila ČERVENÁ LED, musíme uzemnit kolík ČERVENÉ LED a napájet společný klad. Totéž platí pro všechny LED diody. Naučte se zde rozhraní RGB LED s Arduino.
Kruhový diagram:
Kompletní schéma zapojení tohoto projektu je uvedeno výše. Připojení + 5 V a uzemnění zobrazené ve schématu zapojení lze získat z 5 V a zemního kolíku Arduina. Samotné Arduino lze napájet z vašeho notebooku nebo pomocí DC konektoru pomocí 12V adaptéru nebo 9V baterie.
Pro změnu jasu LED RGB použijeme PWM. Zde se můžete dozvědět více o PWM. Zde je několik příkladů PWM s Arduino:
- Variabilní napájecí zdroj Arduino Uno
- Řízení stejnosměrného motoru pomocí Arduina
- Arduino generátor tónů
Vysvětlení programování:
Nejprve deklarujeme všechny vstupní a výstupní piny, jak je znázorněno níže.
const byte red_sensor_pin = A0; const byte green_sensor_pin = A1; const byte blue_sensor_pin = A2; const byte green_led_pin = 9; const byte blue_led_pin = 10; const byte red_led_pin = 11;
Deklarujte počáteční hodnoty senzorů a LED jako 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 sekci smyčky vezmeme výstup tří senzorů s analogRead (); fungovat a ukládat do tří různých proměnných.
void loop () { red_sensor_value = analogRead (red_sensor_pin); zpoždění (50); blue_sensor_value = analogRead (blue_sensor_pin); zpoždění (50); green_sensor_value = analogRead (green_sensor_pin);
Vytiskněte tyto hodnoty na sériový monitor pro účely ladění
Serial.println ("Nezpracované hodnoty senzoru:"); 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);
Ze senzorů dostaneme hodnoty 0-1023, ale naše piny Arduino PWM mají jako výstup hodnoty 0-255. Musíme tedy převést naše nezpracované hodnoty na 0-255. K tomu musíme rozdělit hrubé hodnoty na 4 NEBO jednoduše, můžeme použít mapovací funkci Arduina k převodu těchto hodnot.
red_led_value = red_sensor_value / 4; // definovat červená LED modrá_ledná_hodnota = modrá_senzorová_hodnota / 4; // definovat Blue LED green_led_value = green_sensor_value / 4; // definovat zelenou led
Tisk namapovaných hodnot na sériový monitor
Serial.println ("Mapované hodnoty senzorů:"); 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);
Použijte analogWrite () k nastavení výstupu pro RGB LED
analogWrite (red_led_pin, red_led_value); // indikuje červenou LED analogWrite (blue_led_pin, blue_led_value); // indikuje modrou LED analogWrite (green_led_pin, green_led_value); // značí zeleně
Práce s lampou pro míchání barev Arduino:
Jelikož používáme tři LDR, tak při dopadu světla na tyto senzory se mění odpor v důsledku toho se také mění napětí na analogových pinech Arduina, které funguje jako vstupní piny pro senzory.
Když se na těchto senzorech změní intenzita světla, příslušná LED v RGB bude zářit s měnícím se odporem a máme různé míchání barev v RGB LED pomocí PWM.