- Nødvendige materialer:
- LDR:
- RGB LED:
- Kretsdiagram:
- Programmeringsforklaring:
- Arbeid av Arduino fargeblandingslampe:
Hva om vi kan generere forskjellige farger ved hjelp av en enkelt RGB-ledelse og gjøre rommets hjørne mer attraktivt? Så, her er en enkel Arduino-basert fargeblandingslampe som kan endre farge når det er skift i lys i rommet. Så denne lampen vil automatisk endre fargen i henhold til lysforholdene i rommet.
Hver farge er kombinasjonen av rød, grønn og blå farge. Så vi kan generere hvilken som helst farge ved å bruke røde, grønne og blå farger. Så, her vil vi variere PWM dvs. lysintensiteten på LDR-er. Dette vil ytterligere endre intensiteten til rød, grønn og blå farge i RGB LED, og forskjellige farger vil bli produsert.
Tabellen nedenfor viser fargekombinasjonene med respektive endringer i driftssykluser.
Nødvendige materialer:
- 1 x Arduino UNO
- 1 x brødbrett
- 3 x 220 ohm motstander
- 3 x 1 kilohm motstand
- Jumper ledninger
- 3 x LDR
- 3 x fargede striper (rød, grønn, blå)
- 1 x RGB LED
LDR:
Vi vil bruke fotoresistor (eller lysavhengig motstand, LDR eller fotoledende celle) her i denne kretsen. LDR er laget av halvledermaterialer for å gjøre det mulig for dem å ha sine lysfølsomme egenskaper. Disse LDR-ene eller FOTOMOTSTANDENE fungerer på prinsippet om "Fotokonduktivitet". Nå som dette prinsippet sier er at når lys faller på overflaten til LDR (i dette tilfellet), øker ledningsevnen til elementet, eller med andre ord, faller motstanden til LDR når lyset faller på overflaten til LDR. Denne egenskapen til reduksjonen i motstand for LDR oppnås fordi den er en egenskap av halvledermateriale som brukes på overflaten.
Her brukes tre LDR-sensorer til å kontrollere lysstyrken til individuell rød, grønn og blå LED inne i RGB Led. Lær mer om å kontrollere LDR med Arduino her.
RGB LED:
Det er to typer RGB-lysdioder, den ene er vanlig katodetype (vanlig negativ) og den andre er vanlig anodetype (vanlig positiv). I CC (Common Cathode eller Common Negative) vil det være tre positive terminaler hver terminal representerer en farge og en negativ terminal som representerer alle tre farger.
I vår krets skal vi bruke CA (Common Anode eller Common Positive) type. I vanlig anodetype, hvis vi vil at RØD LED skal være PÅ i, må vi jorde den RØDE LED-pinnen og slå på den felles positive. Det samme gjelder for alle lysdiodene. Lær her å grensesnitt RGB LED med Arduino.
Kretsdiagram:
Det komplette kretsskjemaet for dette prosjektet er gitt ovenfor. + 5V og jordforbindelse vist i kretsskjemaet kan fås fra 5V og jordpinnen til Arduino. Arduino i seg selv kan drives fra den bærbare datamaskinen eller via DC-kontakten ved hjelp av et 12V adapter eller 9V batteri.
Vi vil bruke PWM for å endre lysstyrken på RGB-ledet. Du kan lære mer om PWM her. Her er noen PWM-eksempler med Arduino:
- Variabel strømforsyning av Arduino Uno
- DC Motor Control ved hjelp av Arduino
- Arduino-basert tonegenerator
Programmeringsforklaring:
Først erklærer vi alle innganger og utgangspinner som vist nedenfor.
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;
Erklær startverdier for sensorer og lysdioder som 0.
usignert int red_led_value = 0; usignert int blue_led_value = 0; usignert int green_led_value = 0; usignert int red_sensor_value = 0; usignert int blue_sensor_value = 0; usignert int green_sensor_value = 0; ugyldig oppsett () { pinMode (red_led_pin, OUTPUT); pinMode (blue_led_pin, OUTPUT); pinMode (green_led_pin, OUTPUT); Serial.begin (9600); }
I sløyfeseksjonen tar vi utdata fra tre sensorer med analogRead (); funksjon og lagre i tre forskjellige variabler.
ugyldig sløyfe () { red_sensor_value = analogRead (red_sensor_pin); forsinkelse (50); blue_sensor_value = analogRead (blue_sensor_pin); forsinkelse (50); green_sensor_value = analogRead (green_sensor_pin);
Skriv ut disse verdiene på den serielle skjermen for feilsøking
Serial.println ("Rå sensorverdier:"); Serial.print ("\ t Red:"); Serial.print (red_sensor_value); Serial.print ("\ t Blå:"); Serial.print (blue_sensor_value); Serial.print ("\ Grønn:"); Serial.println (green_sensor_value);
Vi vil få 0-1023 verdier fra sensorene, men våre Arduino PWM-pinner har 0-255 verdier som utgang. Så vi må konvertere råverdiene til 0-255. For det må vi dele råverdier med 4 ELLER ganske enkelt kan vi bruke kartfunksjonen til Arduino for å konvertere disse verdiene.
red_led_value = red_sensor_value / 4; // definer rød LED blue_led_value = blue_sensor_value / 4; // definer Blue LED green_led_value = green_sensor_value / 4; // definere Green Led
Skriv ut tilordnede verdier til seriell skjerm
Serial.println ("Kartlagte sensorverdier:"); Serial.print ("\ t Red:"); Serial.print (red_led_value); Serial.print ("\ t Blå:"); Serial.print (blue_led_value); Serial.print ("\ Grønn:"); Serial.println (green_led_value);
Bruk analogWrite () for å stille inn utgang for RGB LED
analogWrite (red_led_pin, red_led_value); // indikere rød LED analogWrite (blue_led_pin, blue_led_value); // indikere blå LED analogWrite (green_led_pin, green_led_value); // indikerer grønt
Arbeid av Arduino fargeblandingslampe:
Når vi bruker tre LDR-er, så når lys inntreffer på disse sensorene, endres motstanden som et resultat at spenninger også endres på analoge pinner på Arduino, som fungerer som inngangspinner for sensorer.
Når lysintensiteten endres på disse sensorene, vil den respektive ledningen i RGB lyse med mengde motstand som endres, og vi har forskjellige fargeblandinger i RGB-ledede ved hjelp av PWM.