- Nepieciešamie materiāli:
- LDR:
- RGB gaismas diode:
- Ķēdes shēma:
- Programmēšanas skaidrojums:
- Arduino krāsu sajaukšanas lampas darbība:
Ko darīt, ja mēs varam ģenerēt dažādas krāsas, izmantojot vienu RGB LED, un padarīt mūsu istabas stūri pievilcīgāku? Tātad, šeit ir vienkārša Arduino bāzes krāsu sajaukšanas lampa, kas var mainīt krāsu, ja telpā mainās gaisma. Tātad šī lampa automātiski mainīs savu krāsu atbilstoši gaismas apstākļiem telpā.
Katra krāsa ir sarkanās, zaļās un zilās krāsas kombinācija. Tātad mēs varam ģenerēt jebkuru krāsu, izmantojot sarkanas, zaļas un zilas krāsas. Tātad, šeit mēs mainīsim PWM, ti, gaismas intensitāti uz LDR. Tas vēl vairāk mainīs sarkanās, zaļās un zilās krāsas intensitāti RGB LED, un tiks ražotas dažādas krāsas.
Zemāk esošajā tabulā redzamas krāsu kombinācijas ar attiecīgajām izmaiņām darba ciklos.
Nepieciešamie materiāli:
- 1 x Arduino UNO
- 1 x maizes dēlis
- 3 x 220 omu rezistori
- 3 x 1-kilohm rezistori
- Džemperu vadi
- 3 x LDR
- 3 x krāsainas sloksnes (sarkana, zaļa, zila)
- 1 x RGB LED
LDR:
Šajā ķēdē mēs izmantosim fotorezistoru (vai no gaismas atkarīgu rezistoru, LDR vai foto vadošu elementu). LDR ir izgatavoti no pusvadītāju materiāliem, lai tiem būtu savas gaismas jutīgās īpašības. Šie LDR vai FOTO RESISTORI darbojas pēc “Foto vadītspējas” principa. Šis princips saka, ka vienmēr, kad gaisma nokrīt uz LDR virsmas (šajā gadījumā), palielinās elementa vadītspēja vai, citiem vārdiem sakot, LDR pretestība samazinās, gaismai nokrītot uz LDR virsmas. Šī pretestības samazināšanās īpašība pret LDR tiek sasniegta, jo tā ir pusvadītāju materiāla īpašība, ko izmanto uz virsmas.
Šeit trīs LDR sensori tiek izmantoti, lai kontrolētu atsevišķu sarkano, zaļo un zilo LED spilgtumu RGB Led iekšpusē. Uzziniet vairāk par LDR kontroli ar Arduino šeit.
RGB gaismas diode:
Ir divu veidu RGB gaismas diodes: viens ir kopīgs katoda tips (kopīgs negatīvs) un otrs ir kopīgs anoda tips (kopīgs pozitīvs). CC (kopējais katods vai kopīgais negatīvs) būs trīs pozitīvi spailes, no kuriem katrs termināls apzīmē krāsu, un viens negatīvs spailes, kas apzīmē visas trīs krāsas.
Mūsu ķēdē mēs izmantosim CA (Common Anode or Common Positive) veidu. Ja mēs vēlamies, lai parastā anoda tipā būtu ieslēgts RED LED, mums ir jāsamazina RED LED tapa un jāiedarbina kopējais pozitīvais. Tas pats attiecas uz visām gaismas diodēm. Uzziniet šeit, kā saskarni RGB LED ar Arduino.
Ķēdes shēma:
Šī projekta pilnā shēma ir dota iepriekš. + 5V un zemējuma savienojumu, kas parādīts ķēdes shēmā, var iegūt no Arduino 5V un zemējuma tapas. Arduino pats var darbināt no klēpjdatora vai caur līdzstrāvas ligzdu, izmantojot 12V adapteri vai 9V akumulatoru.
Mēs izmantosim PWM, lai mainītu RGB vadīto spilgtumu. Jūs varat uzzināt vairāk par PWM šeit. Šeit ir daži PWM piemēri ar Arduino:
- Arduino Uno mainīga barošana
- Līdzstrāvas motora vadība, izmantojot Arduino
- Arduino bāzes toņu ģenerators
Programmēšanas skaidrojums:
Pirmkārt, mēs deklarējam visas ieejas un izejas tapas, kā parādīts zemāk.
konstanta baits red_sensor_pin = A0; konst baits green_sensor_pin = A1; konst baits blue_sensor_pin = A2; konstanta baits green_led_pin = 9; konstanta baits blue_led_pin = 10; konstanta baits red_led_pin = 11;
Paziņojiet sensoru un LED sākotnējās vērtības kā 0.
neparakstīta int red_led_value = 0; neparakstīts int blue_led_value = 0; neparakstīts int green_led_value = 0; neparakstīta int sarkanā_sensora_vērtība = 0; neparakstīta int zila_sensora_vērtība = 0; neparakstīta int zaļā_sensora_vērtība = 0; void setup () { pinMode (red_led_pin, OUTPUT); pinMode (blue_led_pin, OUTPUT); pinMode (green_led_pin, OUTPUT); Sērijas sākums (9600); }
Cilpas sadaļā mēs ņemsim trīs sensoru izvadi ar analogRead (); funkciju un uzglabā trīs dažādos mainīgajos.
void loop () { red_sensor_value = analogRead (red_sensor_pin); kavēšanās (50); blue_sensor_value = analogRead (blue_sensor_pin); kavēšanās (50); green_sensor_value = analogRead (green_sensor_pin);
Lai atkļūdotu, izdrukājiet šīs vērtības seriālajā monitorā
Serial.println ("Neapstrādātas sensora vērtības:"); Serial.print ("\ t sarkans:"); Sērijas.druka (sarkanā_sensora_vērtība); Serial.print ("\ t zils:"); Sērijas.druka (zilā_sensora_vērtība); Serial.print ("\ t Zaļš:"); Serial.println (zaļā_sensora_vērtība);
Mēs saņemsim 0-1023 vērtības no sensoriem, bet mūsu Arduino PWM tapām kā izeja ir 0-255 vērtības. Tāpēc mums jākonvertē neapstrādātās vērtības uz 0–255. Tam mums jāsadala neapstrādātas vērtības ar 4 VAI vienkārši mēs varam izmantot Arduino kartēšanas funkciju, lai pārvērstu šīs vērtības.
red_led_value = red_sensor_value / 4; // definēt sarkano gaismas diētu blue_led_value = blue_sensor_value / 4; // definēt zilu LED zaļo_led_value = green_sensor_value / 4; // definēt Zaļo Led
Drukājiet kartētās vērtības seriālajā monitorā
Serial.println ("Kartēto sensoru vērtības:"); Serial.print ("\ t sarkans:"); Sērijas.druka (red_led_value); Serial.print ("\ t zils:"); Sērijas.druka (blue_led_value); Serial.print ("\ t Zaļš:"); Serial.println (zaļā_led_vērtība);
Izmantojiet analogWrite (), lai iestatītu izeju RGB LED
analogWrite (red_led_pin, red_led_value); // norāda sarkano LED analogWrite (blue_led_pin, blue_led_value); // norāda zilu LED analogWrite (green_led_pin, green_led_value); // norādīt zaļu
Arduino krāsu sajaukšanas lampas darbība:
Tā kā mēs izmantojam trīs LDR, tad, kad gaisma notiek uz šiem sensoriem, tā pretestība mainās, kā rezultātā mainās spriegums arī Arduino analogajās tapās, kas darbojas kā sensoru ievades tapas.
Kad mainās gaismas intensitāte uz šiem sensoriem, tā attiecīgā vadība RGB spīdēs, mainoties pretestībai, un mums ir atšķirīga krāsu sajaukšanās RGB vadībā, izmantojot PWM.