- Komponenter krävs
- Arbetar med AC-fläktstyrning med Arduino
- 1. Nollkorsningsdetektor
- 2. Fasvinkelstyrningskrets
- 3. Potentiometer för att styra fläkthastigheten
- 4. PWM-signalgenereringsenhet
- Kretsschema
- Programmering av Arduino för AC-fläkthastighetsreglering
VARNING!! Kretsschemat som diskuteras i detta projekt är endast för utbildningsändamål. Tänk på att arbeta med 220V växelspänning kräver extrem försiktighet och säkerhetsrutiner bör följas. Rör inte vid någon av komponenterna eller ledningarna när kretsen är i drift.
Det är enkelt att slå på eller stänga av hushållsapparater med hjälp av en strömbrytare eller med hjälp av någon kontrollmekanism som vi gjorde i många Arduino-baserade hemautomatiseringsprojekt. Men det finns många applikationer där vi behöver styra växelströmmen delvis, till exempel för att styra fläktens hastighet eller lampans intensitet. I det här fallet används PWM-tekniken, så här lär vi oss hur man använder Arduino-genererad PWM för att styra AC-fläkthastighet med Arduino.
I det här projektet kommer vi att visa Arduino AC-fläkthastighetsreglering med TRIAC. Här används fasstyrande metod för växelströmsignalen för att styra växelströmsfläktens hastighet med PWM-signaler som genereras av Arduino. I föregående handledning kontrollerade vi DC-fläkthastigheten med PWM.
Komponenter krävs
- Arduino UNO
- 4N25 (nollkorsningsdetektor)
- 10k potentiometer
- MOC3021 0-koppling
- (0-9) V, 500 mA Stepdown Transformer
- BT136 TRIAC
- 230 VAC axiell AC-fläkt
- Anslutande ledningar
- Motstånd
Arbetar med AC-fläktstyrning med Arduino
Arbetet kan delas in i fyra olika delar. De är som följer
1. Nollkorsningsdetektor
2. Fasvinkelstyrkrets
3. Potentiometer för att styra fläkthastighetsmängden
4. PWM-signalgenereringskrets
1. Nollkorsningsdetektor
Strömförsörjningen vi får i vårt hushåll är 220 v växelström, 50 Hz. Denna växelströmssignal växlar till sin natur och ändrar dess polaritet regelbundet. Under den första halvan av varje cykel flyter den i en riktning och når en toppspänning och minskar sedan ner till noll. Sedan i nästa halvcykel flyter den i alternativ riktning (negativ) till en toppspänning och kommer sedan igen till noll. För att styra AC-fläktens hastighet måste toppspänningen för båda halvcyklerna hackas eller kontrolleras. För detta måste vi upptäcka nollpunkten från vilken signalen ska styras / hackas. Denna punkt på spänningskurvan där spänningen ändras i riktning kallas nollspänningskorsning.
Kretsen nedan är nollgenomgångsdetektorkretsen som används för att få nollgenomgångspunkten. Först trappas 220V växelspänningen ner till 9V växelström med en nedtransformator och matas sedan till en 4N25 optokopplare vid stift 1 och 2. 4N25 optokopplare har en inbyggd lysdiod med stift 1 som anod och stift 2 som en katod. Så enligt kretsen nedan, när växelströmsvåg går närmare nollgenomgångspunkten, kommer den inbyggda lysdioden på 4N25 att stängas av och som ett resultat kommer även utgångstransistorn på 4N25 att stängas AV och utgångspulsstiftet kommer att få dras upp till 5V. På samma sätt när signalen ökar gradvis till toppenpunkt, då tänds lysdioden PÅ och transistorn tänds också med jordstiftet anslutet till utgångsstiftet, vilket gör denna stift 0V. Med hjälp av denna puls kan nollgenomgångspunkten detekteras med Arduino.
2. Fasvinkelstyrningskrets
Efter att ha upptäckt punkten för nollkorsning måste vi nu styra mängden timing för vilken strömmen kommer att vara PÅ och AV. Denna PWM-signal bestämmer mängden spänningsutmatning till växelströmsmotorn, som i sin tur styr hastigheten på den. Här används en BT136 TRIAC, som styr växelspänningen eftersom den är en kraftelektronisk omkopplare för styrning av en växelspänningssignal.
TRIAC är en treterminal växelströmbrytare som kan utlösas av en lågenergisignal vid portterminalen. I SCR leder den bara i en riktning, men i fallet med TRIAC kan effekten styras i båda riktningarna. För att lära dig mer om TRIAC och SCR, följ våra tidigare artiklar.
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 anges enligt dimningskravet. I det här fallet är tändningsvinkeln till exempel 90 procent, följaktligen kommer också uteffekten att 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 är 20 ms. Under en halv cykel är detta 10 ms eller 10 000 mikrosekunder. Följaktligen för att styra kraften hos en AC-lampa kan intervallet "t1" varieras från 0-10000 mikrosekunder.
Optokopplare:
Optokopplare är också känd som Optoisolator. 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-fläkten från mikrokontrollsignalerna som är en DC-signal.
Kopplingsschema för TRIAC och optokopplare:
3. Potentiometer för att styra fläkthastigheten
Här används en potentiometer för att variera hastigheten på AC-fläkten. Vi vet att en potentiometer är en 3-terminal enhet som fungerar som en spänningsdelare och ger en variabel spänningsutgång. Denna variabla analoga utgångsspänning ges vid Arduino analoga ingångsterminal för att ställa in hastigheten på AC-fläkten.
4. PWM-signalgenereringsenhet
I det sista steget ges en PWM-puls till TRIAC enligt hastighetskraven, vilket i sin tur varierar PÅ / AV-tidpunkten för växelsignalen och ger en variabel utgång för att styra fläkthastigheten. Här används Arduino för att generera PWM-puls, som tar ingången från potentiometern och ger PWM-signalutgång till TRIAC och optokopplingskrets som ytterligare driver AC-fläkten vid önskad hastighet. Läs mer om PWM-generation med Arduino här.
Kretsschema
Kretsschema för denna Arduino-baserade 230v fläkthastighetsregleringskrets ges nedan:
Obs: Jag har visat hela kretsen på en bräda endast för att förstå. Du bör inte använda 220V växelström direkt på din bräda, jag har använt ett prickat kort för att göra anslutningarna som du kan se på bilden nedan
Programmering av Arduino för AC-fläkthastighetsreglering
Efter hårdvaruanslutningen måste vi skriva upp koden för Arduino, som genererar en PWM-signal för att styra växelströmssignalens PÅ / AV-timing med en potentiometeringång. Vi använde tidigare PWM-tekniker i många projekt.
Den fullständiga koden för detta Arduino AC-fläktstyrningsprojekt ges längst ner i detta projekt. Stegvis förklaring av koden ges nedan.
I det första steget, deklarera alla nödvändiga variabler, som kommer att användas i hela koden. Här är BT136 TRIAC ansluten till stift 6 i Arduino. Och variabeln speed_val deklareras för att lagra värdet på hastighetssteget.
int TRIAC = 6; int speed_val = 0;
Därefter, inuti installationsfunktionen , deklarera TRIAC- stiftet som utgång eftersom PWM-utdata genereras genom denna stift. Konfigurera sedan ett avbrott för att upptäcka nollkorsningen. Här har vi använt en funktion som heter attachInterrupt, som konfigurerar den digitala stift 3 av Arduino som extern avbrott och kallar funktionen som heter zero_crossing när den upptäcker några avbrott vid dess stift.
ogiltig installation () {pinMode (LAMP, OUTPUT); attachInterrupt (digitalPinToInterrupt (3), zero_crossing, CHANGE); }
Inuti den oändliga slingan , läs det analoga värdet från potentiometern som är ansluten vid A0 och mappa det till ett värdeintervall på (10-49).
För att ta reda på detta intervall måste vi göra en liten beräkning. Tidigare har man fått veta att varje halvcykel motsvarar 10 000 mikrosekunder. Så här kommer dimningen att kontrolleras i 50 steg vilket är ett godtyckligt värde och kan ändras. Här tas minimistegen som 10, inte noll eftersom 0-9 steg ger ungefär samma effekt och maximala steg tas som 49 eftersom det praktiskt taget inte rekommenderas att ta den övre gränsen (vilket är 50 i detta fall).
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 pot = analogRead (A0); int data1 = karta (pot, 0, 1023,10,49); speed_val = data1; }
I det sista steget konfigurerar du den avbrottsdrivna funktionen zero_crossing. 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_crossing () {int chop_time = (200 * speed_val); delayMicroseconds (chop_time); digitalWrite (TRIAC, HIGH); delayMicroseconds (10); digitalWrite (TRIAC, LOW); }
Komplett kod tillsammans med en fungerande video för denna AC-fläktkontroll med Arduino och PWM ges nedan.