- Komponenter som används:
- Zero Crossing Detection Technique
- TRIAC Arbetar
- Optokopplare
- Kretsschema:
- Programmering av Arduino för AC Light Dimmer:
- Arbetar av Arduino Lamp Dimmer Circuit
I vårt hushåll drivs de flesta apparaterna från nätadaptern som lampor, TV-apparater och fläktar etc. Vi kan slå på / stänga av dem digitalt om det behövs med Arduino och Relays genom att bygga en hemautomatiseringsinstallation. Men vad händer om vi behöver styra kraften hos dessa enheter, till exempel för att dimma AC-lampan eller för att styra fläktens hastighet. I så fall måste vi använda fasstyrningsteknik och statiska omkopplare som TRIAC för att styra fasen för växelströmsspänningen.
Så i den här handledningen lär vi oss om en AC-lampa dimmer med Arduino och TRIAC. Här används en TRIAC för att växla växelströmslampan, eftersom detta är en kraftelektronisk snabbkopplingsanordning som är bäst lämpad för dessa applikationer. Låt oss följa hela artikeln för detaljer om hårdvara och programmering av detta projekt. Kontrollera också våra tidigare handledning om ljusdämpning:
- IR-fjärrstyrd TRIAC-dimmerkrets
- Arduino-baserad LED-dimmer med PWM
- 1 Watt LED-dimmerkrets
- Power LED-dimmer med ATmega32 Microcontroller
Komponenter som används:
- Arduino UNO-1
- MCT2E optokopplare -1
- MOC3021 optokopplare -1
- BT136 TRIAC-1
- (12-0) V, 500mA Trapptransformator-1
- 1K, 10K, 330ohm motstånd
- 10K Potentiometer
- AC-hållare med lampa
- AC-ledningar
- Tröjor
Innan vi går vidare lär vi oss om nollkorsning, TRIAC och optokopplare.
Zero Crossing Detection Technique
För att kontrollera växelspänningen är det första vi måste göra att detektera nollkorsningen av växelströmssignalen. I Indien är frekvensen för växelströmssignalen 50 Hz och eftersom den är alternerande i naturen. Därför måste vi varje gång signalen kommer till nollpunkt upptäcka den punkten och därefter utlösa TRIAC enligt effektbehovet. Nollkorsningspunkten för en växelströmssignal visas nedan:
TRIAC Arbetar
TRIAC är en treterminal växelströmställare som kan utlösas av en lågenergisignal vid dess grindterminal. I SCR: er leder den bara i en riktning, men i fallet med TRIAC kan effekten styras i båda riktningarna. Här använder vi en BT136 TRIAC för AC-lampdämpning.
Som visas i figuren ovan utlöses TRIAC i en skjutvinkel på 90 grader genom att applicera en liten grindpulssignal på den. Tiden "t1" är den fördröjningstid som vi måste ge enligt vårt dimningskrav. Till exempel, i det här fallet eftersom avfyrningsvinkeln är 90 procent, följaktligen kommer effekten att också halveras och följaktligen kommer lampan att lysa med halv intensitet.
Vi vet att AC-signalens frekvens är 50 Hz här. Så tidsperioden blir 1 / f, vilket kommer att vara 20 ms., Så för en halv cykel kommer detta att vara 10 ms eller 10 000 mikrosekunder. För att styra kraften hos vår AC-lampa kan räckvidden "t1" därför varieras från 0-10000 mikrosekunder. Läs mer om Triac och dess arbete här.
Optokopplare
Optokopplare är också känd som Optoisolato r. Den används för att upprätthålla isolering mellan två elektriska kretsar som likströms- och växelströmssignaler. I grund och botten består den av en LED som avger infrarött ljus och fotosensorn som upptäcker den. Här används en MOC3021 optokopplare för att styra AC-lampan från mikrokontrollsignaler som är en DC-signal. Vi använde tidigare samma MOC3021 optokopplare i TRIAC-dimmerkrets. Lär dig också mer om optokopplare och dess typer genom att följa länken.
Kretsschema:
Kretsschema för AC Light Dimmer ges nedan:
Anslutningsdiagram för TRIAC och optokopplare:
Jag har lödt en krets av TRIAC och Optocoupler MOC3021 på ett perf-kort. Efter lödning kommer det att se ut nedan:
Jag har också lödt optokopplaren MCT2E på perf-kortet för att ansluta den till Transformer för AC-matning:
Och hela kretsen för Arduino Lamp Dimmer kommer att se ut nedan:
Programmering av Arduino för AC Light Dimmer:
Efter framgångsrik slutförande av hårdvaruinstallationen är det nu dags att programmera Arduino. Det kompletta programmet med en demo video ges i slutet. Här har vi förklarat koden stegvis för bättre underdrift.
I det första steget, deklarera alla globala variabler som ska användas i hela koden. Här är TRIAC ansluten till stift 4 i Arduino. Då förklaras dim_val för att lagra värdet på dimningssteget som vi kommer att använda i programmet.
int LAMP = 4; int dim_val = 0;
Därefter deklarerar inuti installationsfunktionen LAMP-stiftet som utgång och konfigurerar sedan ett avbrott för att detektera nollkorsningen. Här har vi använt en funktion som heter attachInterrupt, som konfigurerar den digitala stift 2 av Arduino som extern avbrott och den kommer att kalla funktionen som heter zero_cross, när den upptäcker några avbrott vid dess stift.
ogiltig installation () {pinMode (LAMP, OUTPUT); attachInterrupt (digitalPinToInterrupt (2), zero_cross, CHANGE); }
Inuti oändlig slinga , läs det analoga värdet från potentiometern som är ansluten till A0. Kartlägg det sedan till ett värdeintervall på (10-49). För att ta reda på detta måste vi göra en liten beräkning. Tidigare har jag sagt att varje halvcykel motsvarar 10 000 mikrosekunder. Så, låt oss behöva kontrollera avbländningen i 50 steg (vilket är ett godtyckligt värde. Du kan också ändra det). Jag har tagit minsta steg som 10, inte noll, eftersom 0-9 steg ger ungefär samma effekt och det rekommenderas inte praktiskt taget att ta det maximala steget. Så jag har tagit det maximala steget som 49.
Sedan kan varje stegtid beräknas som 10000/50 = 200 mikrosekunder. Detta kommer att användas i nästa del av koden.
void loop () {int data = analogRead (A0); int data1 = karta (data, 0, 1023,10,49); dim_val = data1; }
I det sista steget konfigurerar du den avbrottsdrivna funktionen zero_cross. Här kan dimningstiden beräknas genom att multiplicera den enskilda stegtiden med nr. steg. Efter denna fördröjningstid kan TRIAC utlösas med en liten hög puls på 10 mikrosekunder, vilket är tillräckligt för att slå på en TRIAC.
ogiltig zero_cross () {int dimming_time = (200 * dim_val); delayMicroseconds (dimming_time); digitalWrite (LAMP, HÖG); delayMicroseconds (10); digitalWrite (LAMP, LOW); }
Arbetar av Arduino Lamp Dimmer Circuit
Nedan visas bilderna som visar tre steg för att dimma AC-lampan med Arduino och TRIAC.
1. Lågt dimningssteg
2. Medium avbländningssteg
3. Maximalt dämpningssteg:
Så här kan en AC Light Dimmer-krets enkelt byggas med TRIAC och optokopplare. En arbetsvideo och Arduino Light Dimmer-kod ges nedan
/>