- Material som krävs:
- LDR:
- RGB-LED:
- Kretsschema:
- Programmeringsförklaring:
- Arbetning av Arduino färgblandningslampa:
Vad händer om vi kan skapa olika färger med en enda RGB-ledning och göra vårt rums hörn mer attraktivt? Så här är en enkel Arduino-baserad färgblandningslampa som kan ändra färg när det blir ljusförändring i rummet. Så den här lampan ändrar automatiskt sin färg beroende på ljusförhållandena i rummet.
Varje färg är en kombination av röd, grön och blå färg. Så vi kan generera vilken färg som helst genom att använda röda, gröna och blå färger. Så, här kommer vi att variera PWM dvs ljusintensiteten på LDR. Det kommer att förändra intensiteten av röda, gröna och blå färger i RGB LED och olika färger kommer att produceras.
Nedanstående tabell visar färgkombinationerna med respektive förändring i arbetscykler.
Material som krävs:
- 1 x Arduino UNO
- 1 x brödbräda
- 3 x 220 ohm motstånd
- 3 x 1-kilohm motstånd
- Bygeltrådar
- 3 x LDR
- 3 x färgade remsor (röd, grön, blå)
- 1 x RGB-LED
LDR:
Vi kommer att använda fotoresistor (eller ljusberoende motstånd, LDR eller fotoledande cell) här i denna krets. LDR är gjorda av halvledarmaterial för att de ska ha sina ljuskänsliga egenskaper. Dessa LDR: er eller FOTOMOTSTANDAR fungerar på principen "Fotokonduktivitet". Vad denna princip nu säger är att när ljus faller på ytan av LDR (i det här fallet) ökar konduktansen hos elementet eller med andra ord, motståndet från LDR faller när ljuset faller på ytan av LDR. Denna egenskap hos minskningen av motstånd för LDR uppnås eftersom den är en egenskap hos halvledarmaterial som används på ytan.
Här används tre LDR-sensorer för att styra ljusstyrkan hos enskilda röda, gröna och blå lysdioder inuti RGB-led. Läs mer om att styra LDR med Arduino här.
RGB-LED:
Det finns två typer av RGB-lysdioder, en är vanlig katodtyp (vanlig negativ) och andra är vanlig anodtyp (gemensam positiv). I CC (Common Cathode eller Common Negative) kommer det att finnas tre positiva terminaler som varje terminal representerar en färg och en negativ terminal som representerar alla tre färgerna.
I vår krets ska vi använda CA- typ (Common Anode eller Common Positive). I Common Anode-typ, om vi vill att RÖD LED ska vara PÅ, måste vi jorda den RÖDA LED-stiften och driva den gemensamma positiva. Detsamma gäller för alla lysdioder. Lär dig här att gränssnitt RGB LED med Arduino.
Kretsschema:
Det fullständiga kretsschemat för detta projekt ges ovan. + 5V och jordanslutningen som visas i kretsschemat kan erhållas från 5V och jordstiftet på Arduino. Arduino i sig kan drivas från din bärbara dator eller via DC-uttaget med en 12V-adapter eller 9V-batteri.
Vi kommer att använda PWM för att ändra ljusstyrkan hos RGB-led. Du kan lära dig mer om PWM här. Här är några PWM-exempel med Arduino:
- Variabel strömförsörjning av Arduino Uno
- DC-motorstyrning med Arduino
- Arduino-baserad tongenerator
Programmeringsförklaring:
Först deklarerar vi alla ingångar och utgångsstift enligt nedan.
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;
Deklarera initialvärden för sensorer och lysdioder som 0.
osignerad int red_led_value = 0; osignerad int blue_led_value = 0; osignerad int green_led_value = 0; osignerad int red_sensor_value = 0; osignerad int blue_sensor_value = 0; osignerad int green_sensor_value = 0; ogiltig installation () { pinMode (red_led_pin, OUTPUT); pinMode (blue_led_pin, OUTPUT); pinMode (green_led_pin, OUTPUT); Serial.begin (9600); }
I loop-avsnittet tar vi utdata från tre sensorer med analogRead (); funktion och lagra i tre olika variabler.
ogiltig slinga () { red_sensor_value = analogRead (red_sensor_pin); fördröjning (50); blue_sensor_value = analogRead (blue_sensor_pin); fördröjning (50); green_sensor_value = analogRead (green_sensor_pin);
Skriv ut dessa värden på den seriella bildskärmen för felsökningsändamål
Serial.println ("Raw Sensor Values:"); Serial.print ("\ t Red:"); Serial.print (red_sensor_value); Serial.print ("\ t Blue:"); Serial.print (blue_sensor_value); Serial.print ("\ t Green:"); Serial.println (green_sensor_value);
Vi kommer att få 0-1023 värden från sensorerna men våra Arduino PWM-stift har 0-255 värden som utdata. Så vi måste konvertera våra råvärden till 0-255. För det måste vi dela råa värden med 4 ELLER helt enkelt kan vi använda kartfunktionen av Arduino för att konvertera dessa värden.
red_led_value = red_sensor_value / 4; // definiera röd LED blue_led_value = blue_sensor_value / 4; // definiera Blue LED green_led_value = green_sensor_value / 4; // definiera Green Led
Skriv ut mappade värden till seriell bildskärm
Serial.println ("Mappade sensorvärden:"); Serial.print ("\ t Red:"); Serial.print (red_led_value); Serial.print ("\ t Blue:"); Serial.print (blue_led_value); Serial.print ("\ t Green:"); Serial.println (green_led_value);
Använd analogWrite () för att ställa in utgång för RGB LED
analogWrite (red_led_pin, red_led_value); // ange röd LED analogWrite (blue_led_pin, blue_led_value); // ange blå LED- analogWrite (green_led_pin, green_led_value); // ange grönt
Arbetning av Arduino färgblandningslampa:
Eftersom vi använder tre LDR: er, så när ljus som inträffar på dessa sensorer ändras dess motstånd till följd av att spänningar också ändras vid analoga stift av Arduino som fungerar som ingångsstift för sensorer.
När ljusintensiteten ändras på dessa sensorer lyser den respektive RGB-lampan med motståndsförändring och vi har olika färgblandningar i RGB-ledningar med PWM.