- Vad är en AC-fasvinkelkontroll och hur fungerar den?
- Utmaningar i fasvinkelkontroll
- Material som krävs för AC-fasvinkelkontrollkrets
- AC-fasvinkelkontrollkretsschema
- AC-fasvinkelkontrollkrets - fungerar
- PCB-design för AC-fasvinkelkontrollkretsen
- Arduino-kod för AC-fasvinkelkontroll
- Testa AC-fasvinkelkontrollkretsen
- Ytterligare förbättringar
Hemautomationssystem blir alltmer populära varje dag, och nuförtiden har det blivit lätt att sätta på och stänga av vissa apparater genom att använda någon enkel styrmekanism som ett relä eller en switch, vi har tidigare byggt många Arduino-baserade hemautomatiseringsprojekt med reläer. Men det finns många hushållsapparater som kräver kontroll av denna växelström snarare än att bara slå på eller av. Gå nu in i världen av AC-fasvinkelkontroll, det är en enkel teknik genom vilken du kan styra AC-fasvinkeln. Det betyder att du kan styra hastigheten på din takfläkt eller någon annan AC-fläkt eller till och med att du kan styra intensiteten på en LED eller glödlampa.
Även om det låter enkelt är processen för att faktiskt implementera det mycket svårt, så i den här artikeln ska vi bygga en enkel växelströmsfasvinkelkontrollkrets med hjälp av en 555-timer, och i slutändan kommer vi att använda en Arduino för att generera en enkel PWM-signal för att styra intensiteten hos en glödlampa. Som du nu klart kan föreställa dig, med den här kretsen, kan du bygga ett enkelt hemautomationssystem där du kan styra fläkten och Ac-ljusdimmer med en enda Arduino.
Vad är en AC-fasvinkelkontroll och hur fungerar den?
AC-fasvinkelkontroll är en metod genom vilken vi kan styra eller hugga en AC-sinusvåg. Den tändvinkeln hos omkopplingsanordningen varieras efter en nollgenomgångsdetektering, vilket resulterar i en genomsnittlig spänningsutgång som ändras proportionellt med det modifierade sinusvåg, bilden nedan beskriver mer.
Som du kan se har vi först vår AC-ingångssignal. Därefter har vi nollkorsningssignalen, som genererar ett avbrott var 10: e ms. Därefter har vi grindutlösarsignalen, när vi väl har fått en utlösande signal väntar vi en viss tid innan vi ger avtryckarpulsen, ju mer vi väntar, desto mer kan vi minska medelspänningen och vice versa. Vi kommer att diskutera mer av ämnet senare i artikeln.
Utmaningar i fasvinkelkontroll
Innan vi tar en titt på schemat och alla materialkrav, låt oss prata om några problem som är förknippade med denna typ av krets och hur vår krets löser dem.
Vårt mål här är att styra fasvinkeln för en AC-sinusvåg med hjälp av en mikrokontroller för alla typer av hemautomationsapplikationer. Om vi tittar på bilden nedan kan du se att i gult har vi sinusvåg och i grönt har vi vår nollkorsningssignal.
Du kan se att nollkorsningssignalen kommer var 10: e ms när vi arbetar med en 50Hz sinusvåg. I en mikrokontroller genererar den ett avbrott var 10: e ms. om vi skulle lägga någon annan kod förutom det, kanske den andra koden inte fungerar på grund av avbrott. Som vi vet är linjefrekvensen som hörs i Indien 50Hz, så vi arbetar med en 50Hz sinusvåg och för att kunna styra nätströmmen måste vi slå på och av TRIAC inom en viss tidsram. För att göra det använder den mikrokontrollerbaserade fasvinkelstyrkretsen nollkorsningssignalen som ett avbrott, men problemet med den här metoden är att du inte kan köra någon annan kod förutom hastighetsvinkelkontrollkoden, för på ett sätt kommer den att bryta loopcykeln och en av dessa koder fungerar inte.
Låt mig klargöra med ett exempel, antar att du måste göra ett projekt där du behöver kontrollera ljusstyrkan på glödlampan, du måste också mäta temperaturen samtidigt. För att kontrollera ljusstyrkan hos en glödlampa behöver du en fasvinkelskontrollkrets, du måste också läsa temperaturdata tillsammans med den. Om detta är scenariot kommer din krets inte att fungera korrekt eftersom DHT22-sensorn tar lite tid att ge dess utdata. Under denna tidsperiod kommer fasvinkelkontrollkretsen att sluta fungera, det vill säga om du har konfigurerat den i ett avfrågningsläge, men om du har konfigurerat nollgenomgångssignalen i avbrottsläge kommer du aldrig att kunna läsa DHT-data eftersom CRC-kontrollen misslyckas.
För att lösa detta problem kan du använda en annan mikrokontroller för olika fasvinkelskontrollkretsar men det kommer att öka BOM-kostnaden, en annan lösning är att använda vår krets som består av generiska komponenter som 555-timern och också kostar mindre.
Material som krävs för AC-fasvinkelkontrollkrets
Bilden nedan visar material som används för att bygga kretsen, eftersom detta är tillverkat med mycket generiska komponenter, bör du kunna hitta allt listat material i din lokala hobbybutik.
Jag har också listat komponenterna i en tabell nedan med typ och kvantitet, eftersom det är ett demonstrationsprojekt använder jag en enda kanal för att göra det. Men kretsen kan enkelt skalas upp enligt krav.
Sl. Nr |
Delar |
Typ |
Kvantitet |
1 |
Skruvterminal 5.04mm |
Anslutning |
3 |
2 |
Huvudhuvud 2,54 mm |
Anslutning |
1X2 |
3 |
56K, 1W |
Motstånd |
2 |
4 |
1N4007 |
Diod |
4 |
5 |
0.1uF, 25V |
Kondensator |
2 |
6 |
100uF, 25V |
Kondensator |
2 |
7 |
LM7805 |
Spänningsregulator |
1 |
8 |
1K |
Motstånd |
1 |
9 |
470R |
Motstånd |
2 |
10 |
47R |
Motstånd |
2 |
11 |
82K |
Motstånd |
1 |
12 |
10K |
Motstånd |
1 |
13 |
PC817 |
Optokopplare |
1 |
14 |
NE7555 |
IC |
1 |
12 |
MOC3021 |
OptoTriac Drive |
1 |
13 |
IRF9540 |
MOSFET |
1 |
14 |
3.3uF |
Kondensator |
1 |
15 |
Anslutande ledningar |
Ledningar |
5 |
16 |
0,1 uF, 1 KV |
Kondensator |
1 |
17 |
Arduino Nano (för test) |
Microcontroller |
1 |
AC-fasvinkelkontrollkretsschema
Schemat för AC-fasvinkelstyrkretsen visas nedan, den här kretsen är mycket enkel och använder generiska komponenter för att uppnå fasvinkelkontroll.
AC-fasvinkelkontrollkrets - fungerar
Denna krets består av mycket noggrant designade komponenter, jag kommer att gå igenom var och en och förklara varje block.
Zero-Crossing Detection Circuit:
Först, i vår lista är nollkorsningsdetekteringskretsen gjord med två 56K, 1W motstånd i kombination med fyra 1n4007-dioder och en PC817-optokopplare. Och denna krets är ansvarig för att tillhandahålla nollgenomgångssignalen till 555 timer IC. Vi har också tejpt av fasen och den neutrala signalen för att ytterligare använda den i TRIAC-sektionen.
LM7809 Spänningsregulator:
7809-spänningsregulatorn används för att driva kretsen, kretsen är ansvarig för att ge ström till hela kretsen. Dessutom har vi använt två 470uF kondensatorer och en 0.1uF kondensator som en frikopplingskondensator för LM7809 IC.
Kontrollkrets med NE555-timer:
Ovanstående bild visar 555 timer-styrkrets, 555 är konfigurerad i en monostabil konfiguration, så när en utlösarsignal från nollkorsningsdetekteringskretsen träffar utlösaren börjar 555-timern att ladda kondensatorn med hjälp av ett motstånd i allmänhet), men vår krets har en MOSFET i stället för ett motstånd, och genom att styra porten till MOSFET styr vi strömmen som går till kondensatorn, det är därför vi styr laddningstiden, därför styr vi utgången från 555 timers. I många projekt har vi använt 555 timer IC för att göra vårt projekt. Om du vill veta mer om detta ämne kan du kolla in alla andra projekt.
TRIAC och TRIAC-förarkretsen:
TRIAC fungerar som huvudströmbrytaren som faktiskt slås på och av och därmed styr utsignalen från växelströmssignalen. Att köra TRIAC är MOC3021 optotriac-enhet, den driver inte bara TRIAC utan ger också optisk isolering, 0.01uF 2KV högspänningskondensator och 47R-motståndet bildar en snubberkrets, som skyddar vår krets mot högspänningsspikar som uppstår när den är ansluten till en induktiv belastning, är den icke-sinusformade naturen hos den växlade växelströmssignalen ansvarig för spikarna. Det ansvarar också för problem med effektfaktorer, men det är ett ämne för en annan artikel. I olika artiklar har vi också använt TRIAC som vår föredragna enhet, du kan kolla in dem om det intresserar dig.
Lågpassfilter och P-Channel MOSFET (fungerar som motstånd i kretsen):
82K-motståndet och kondensatorn 3.3uF bildar lågpassfiltret som är ansvarigt för att utjämna högfrekventa PWM-signalen som genereras av Arduino. Som tidigare nämnts fungerar P-Channel MOSFET som det variabla motståndet, som kontrollerar kondensatorns laddningstid. Styr det är PWM-signalen som utjämnas av lågpassfiltret. I den föregående artikeln har vi rensat begreppet lågpassfilter, du kan kolla in artikeln om aktivt lågpassfilter eller passivt lågpassfilter om du vill veta mer om ämnet.
PCB-design för AC-fasvinkelkontrollkretsen
Kretskortet för vår fasvinkelkontrollkrets är utformat i ett ensidigt kort. Jag har använt Eagle för att designa min PCB men du kan använda valfri designprogramvara. 2D-bilden av min brädedesign visas nedan.
Tillräcklig markpåfyllning används för att göra korrekt jordanslutning mellan alla komponenter. 12V DC-ingången och 220 Volt AC-ingången är fyllda på vänster sida, utgången finns på högra sidan av kretskortet. Den kompletta designfilen för Eagle tillsammans med Gerber kan laddas ner från länken nedan.
- Ladda ner PCB Design-, GERBER- och PDF-filer för AC Phase Angle Control Circuit
Handgjord PCB:
För enkelhets skull gjorde jag min handgjorda version av kretskortet och den visas nedan.
Arduino-kod för AC-fasvinkelkontroll
En enkel PWM-genereringskod används för att få kretsen att fungera, koden och dess förklaring ges nedan. Du hittar också den fullständiga koden längst ner på denna sida. Först deklarerar vi alla nödvändiga variabler, const int analogInPin = A0; // Analog ingångsstift som potentiometern är ansluten till const int analogOutPin = 9; // Analog utgångsstift som lysdioden är ansluten till int sensorValue = 0; // värde läst från potten int outputValue = 0; // värdeutgång till PWM (analog ut)
Variablerna ska deklarera den analoga stiftet, det analoga stiftet och de andra variablerna ska lagra, konvertera och skriva ut det mappade värdet. Nästa i avsnittet setup () initialiserar vi UART med 9600 baud så att vi kan övervaka utgången och så kan vi ta reda på vilket PWM-intervall som helt kunde styra utgången från kretsen.
ogiltig installation () {// initiera seriell kommunikation vid 9600 bps: Serial.begin (9600); }
Därefter läser vi i slingan () avsnittet den analoga stiftet A0 och lagrar värdet till sensorvärdesvariabeln, därefter mappar vi sensorvärdet till 0-255 som för att PWM-timern för atmega bara är 8 bitar ställ in PWM-signalen med en analogWrite () -funktion av Arduino. och slutligen skriver vi ut värdena till det seriella bildskärmsfönstret för att ta reda på kontrollsignalens räckvidd. Om du följer denna handledning kommer videon i slutet att ge dig en tydligare uppfattning om ämnet.
sensorValue = analogRead (analogInPin); // läs analogen i värde: outputValue = map (sensorValue, 0, 1023, 0, 255); // mappa den till intervallet för analog ut: analogWrite (analogOutPin, outputValue); // ändra det analoga ut-värdet: Serial.print ("sensor ="); // skriva ut resultaten till Serial Monitor: Serial.print (sensorValue); Serial.print ("\ t output ="); Serial.println (outputValue);
Testa AC-fasvinkelkontrollkretsen
Bilden ovan visar testuppsättningen av kretsen. 12V-försörjningen tillhandahålls av en 12V SMPS-krets, lasten är en glödlampa i vårt fall, den kan enkelt bytas ut \ mot en induktiv belastning som en fläkt. Som du kan se att jag har anslutit en potentiometer för att styra ljusstyrkan på lampan men den kan ersättas med någon annan form av styrenhet, om du zoomar in på bilden kan du se att potten är ansluten till A0-stift av Arduino och PWM-signalen kommer från pin9 av Arduino.
Som du kan se på bilden ovan är utgångsvärdet 84 och glödlampans ljusstyrka mycket låg,
I den här bilden kan du se att värdet är 82 och att glödlampans ljusstyrka ökar.
Efter många misslyckade försök kunde jag komma på en krets som faktiskt fungerar ordentligt. Har du någonsin undrat hur en testbänk ser ut när en krets inte fungerar? Låt mig säga att det ser väldigt dåligt ut,
Detta är en tidigare designad krets som jag arbetade med. Jag var tvungen att kasta den helt och skapa en ny eftersom den tidigare inte fungerade lite.
Ytterligare förbättringar
För denna demonstration är kretsen gjord på en handgjord kretskort men kretsen kan enkelt byggas i en kretskort av god kvalitet, i mina experiment är storleken på kretskortet riktigt stort på grund av komponentstorleken, men i en produktionsmiljö är det kan reduceras genom att använda billiga SMD-komponenter. I mina experiment fann jag att en 7555-timer istället för en 555-timer ökar kontrollen kraftigt, dessutom ökar kretsens stabilitet också.