- Hvad er en AC-fase vinkelkontrol, og hvordan fungerer det?
- Udfordringer i fase vinkel kontrol
- Materiale, der kræves til vekselstrømsfasekontrolkredsløb
- AC-fase vinkelkontrol kredsløbsdiagram
- AC fase vinkel kontrol kredsløb - arbejder
- Printkortdesign til AC-fase vinkelkontrolkredsløb
- Arduino-kode til vekselkontrol af vekselstrømsfase
- Test af AC-fase vinkelkontrolkredsløb
- Yderligere forbedringer
Hjemmeautomationssystemer vinder i stigende grad popularitet dag for dag, og i dag er det blevet let at tænde og slukke for visse apparater ved hjælp af en simpel styringsmekanisme som et relæ eller en switch, vi har tidligere bygget mange Arduino-baserede Home Automation-projekter ved hjælp af relæer. Men der er mange husholdningsapparater, der kræver kontrol af denne vekselstrøm i stedet for bare at tænde eller slukke. Gå nu ind i verdenen af vekselstrømsfasestyring, det er en simpel teknik, hvorigennem du kan styre vekselstrømsfasevinklen. Dette betyder, at du kan styre hastigheden på din loftsventilator eller en hvilken som helst anden AC-ventilator, eller endda kan du kontrollere intensiteten af en LED eller glødepære.
Selvom det lyder simpelt, er processen med at implementere det meget vanskelig, så i denne artikel skal vi bygge et simpelt vekselstrømsfasevinkelkontrolkredsløb ved hjælp af en 555 timer, og i sidste ende vil vi bruge en Arduino at generere et simpelt PWM-signal til styring af intensiteten af en glødepære. Som du nu klart kan forestille dig, kan du med dette kredsløb opbygge et simpelt hjemmeautomatiseringssystem, hvor du kan styre blæseren og lysdæmpere med en enkelt Arduino.
Hvad er en AC-fase vinkelkontrol, og hvordan fungerer det?
AC-fasevinkelkontrol er en metode, hvorigennem vi kan styre eller hugge en AC-sinusbølge. Den tændvinklen af omskifteranordningen varieres efter en nulgennemgang detektion, hvilket resulterer i en gennemsnitlig spændingsudgangssignal der skifter proportionalt med den modificerede sinusbølge, billedet nedenfor beskriver mere.
Som du kan se, har vi først vores AC-indgangssignal. Dernæst har vi nul-krydssignalet, som genererer et afbrydelse hver 10 ms. Dernæst har vi portudløsersignalet, når vi først får et udløsende signal, venter vi i en bestemt periode, før vi giver triggerpulsen, jo mere vi venter, jo mere kan vi reducere den gennemsnitlige spænding og omvendt. Vi vil diskutere mere af emnet senere i artiklen.
Udfordringer i fase vinkel kontrol
Inden vi ser på skematisk og alle materielle krav, lad os tale om nogle problemer, der er forbundet med denne form for kredsløb, og hvordan vores kredsløb løser dem.
Vores mål her er at kontrollere fasevinklen på en AC-sinusbølge ved hjælp af en mikrocontroller til enhver form for hjemmeautomatiseringsapplikation. Hvis vi ser på billedet nedenfor, kan du se, at i gult har vi vores sinusbølge, og i grønt har vi vores nul-krydssignal.
Du kan se, at nul-krydssignalet kommer i hver 10 ms, da vi arbejder med en 50Hz sinusbølge. I en mikrokontroller genererer den et afbrydelse hver 10 ms. hvis vi anbragte en anden kode udover det, fungerer den anden kode muligvis ikke på grund af afbrydelse. Som vi ved, er linjefrekvensen, der høres i Indien, 50Hz, så vi arbejder med en 50Hz sinusbølge, og for at styre lysnettet, er vi nødt til at tænde og slukke for TRIAC inden for en bestemt tidsramme. For at gøre det bruger det mikrocontroller-baserede fasevinkelkontrolkredsløb nulovergangssignalet som en afbrydelse, men problemet med denne metode er, at du ikke kan køre nogen anden kode udover tempovinkelkontrolkoden, fordi den på en måde bryder loopcyklussen og en af disse koder fungerer ikke.
Lad mig præcisere med et eksempel, antag at du skal lave et projekt, hvor du har brug for at kontrollere lysstyrken på den glødepære, og du skal også måle temperaturen på samme tid. For at kontrollere lysstyrken på en glødepære har du brug for et fasevinkelkontrolkredsløb, du skal også læse temperaturdataene sammen med det. Hvis dette er scenariet, fungerer dit kredsløb ikke korrekt, fordi DHT22-sensoren tager noget tid at give dets outputdata. I denne periode stopper fasevinkelkontrolkredsløbet med at arbejde, det vil sige, hvis du har konfigureret det i en pollingtilstand, men hvis du har konfigureret nulkrydsningssignalet i afbrydelsesfunktion, vil du aldrig være i stand til at læse DHT-data fordi CRC-kontrollen mislykkes.
For at løse dette problem kan du bruge en anden mikrocontroller til forskellige fasevinkelkontrolkredsløb, men det vil øge stykprisen, en anden løsning er at bruge vores kredsløb, der består af generiske komponenter som 555-timeren og også koster mindre.
Materiale, der kræves til vekselstrømsfasekontrolkredsløb
Billedet nedenfor viser de materialer, der bruges til at oprette kredsløbet, da dette er lavet med meget generiske komponenter, skal du være i stand til at finde alt det anførte materiale i din lokale hobbybutik.
Jeg har også anført komponenterne i en tabel nedenfor med type og mængde, da det er et demonstrationsprojekt, bruger jeg en enkelt kanal til at gøre det. Men kredsløbet kan let skaleres op efter krav.
Sl. Nr |
Dele |
Type |
Antal |
1 |
Skrueterminal 5.04mm |
Stik |
3 |
2 |
Hanhoved 2,54 mm |
Stik |
1X2 |
3 |
56K, 1W |
Modstand |
2 |
4 |
1N4007 |
Diode |
4 |
5 |
0,1 uF, 25V |
Kondensator |
2 |
6 |
100uF, 25V |
Kondensator |
2 |
7 |
LM7805 |
Strøm regulator |
1 |
8 |
1K |
Modstand |
1 |
9 |
470R |
Modstand |
2 |
10 |
47R |
Modstand |
2 |
11 |
82K |
Modstand |
1 |
12 |
10K |
Modstand |
1 |
13 |
PC817 |
Optokobler |
1 |
14 |
NE7555 |
IC |
1 |
12 |
MOC3021 |
OptoTriac Drive |
1 |
13 |
IRF9540 |
MOSFET |
1 |
14 |
3.3 uF |
Kondensator |
1 |
15 |
Tilslutning af ledninger |
Ledninger |
5 |
16 |
0,1 uF, 1KV |
Kondensator |
1 |
17 |
Arduino Nano (til test) |
Mikrocontroller |
1 |
AC-fase vinkelkontrol kredsløbsdiagram
Skematisk for AC-fasevinkelkontrolkredsløb er vist nedenfor, dette kredsløb er meget simpelt og bruger generiske komponenter til at opnå fasevinkelkontrol.
AC fase vinkel kontrol kredsløb - arbejder
Dette kredsløb består af meget omhyggeligt designede komponenter, jeg vil gennemgå hver enkelt og forklare hver blok.
Nulkrydsningsdetektionskredsløb:
For det første er på vores liste nulkrydsningsdetekteringskredsløbet lavet med to 56K, 1W modstande i forbindelse med fire 1n4007-dioder og en PC817-optokobler. Og dette kredsløb er ansvarlig for at levere nul-kryds signalet til 555 timer IC. Vi har også optaget fasen og det neutrale signal for at bruge den yderligere i TRIAC-sektionen.
LM7809 Spændingsregulator:
7809-spændingsregulatoren bruges til at drive kredsløbet, kredsløbet er ansvarlig for at levere strøm til hele kredsløbet. Derudover har vi brugt to 470uF kondensatorer og en 0.1uF kondensator som en afkoblingskondensator til LM7809 IC.
Kontrolkredsløb med NE555-timer:
Ovenstående billede viser 555 timer kontrolkredsløb, 555 er konfigureret i en monostabil konfiguration, så når et trigger signal fra nulkrydsningsdetekteringskredsløbet rammer triggeren, begynder 555 timeren at oplade kondensatoren ved hjælp af en modstand (generelt), men vores kredsløb har en MOSFET i stedet for en modstand, og ved at kontrollere porten til MOSFET styrer vi strømmen, der går til kondensatoren, det er derfor, vi styrer opladningstiden, og derfor styrer vi output fra 555 timere. I mange projekter har vi brugt 555 timer IC for at gøre vores projekt. Hvis du vil vide mere om dette emne, kan du tjekke alle andre projekter.
TRIAC og TRIAC-Driver Circuit:
TRIAC fungerer som hovedafbryderen, der faktisk tænder og slukker og styrer således udgangen af AC-signalet. At køre TRIAC er MOC3021 optotriac-drevet, det kører ikke kun TRIAC, men det giver også optisk isolering, 0.01uF 2KV højspændingskondensator, og 47R-modstanden danner et snubber-kredsløb, der beskytter vores kredsløb mod højspændingsspidser som opstår, når den er forbundet med en induktiv belastning, er den ikke-sinusformede karakter af det omskiftede vekselstrømssignal ansvarlig for pigge. Det er også ansvarligt for magtfaktorproblemer, men det er et emne for en anden artikel. I forskellige artikler har vi også brugt TRIAC som vores foretrukne enhed, du kan tjekke dem, hvis det kigger efter din interesse.
Lowpass-filter og P-Channel MOSFET (fungerer som modstand i kredsløbet):
82K-modstanden og 3.3uF kondensatoren danner lavpasfilteret, som er ansvarlig for at udjævne det højfrekvente PWM-signal genereret af Arduino. Som tidligere nævnt fungerer P-Channel MOSFET som den variable modstand, der styrer kondensatorens opladningstid. Styring af det er PWM-signalet, der udjævnes af lavpasfilteret. I den forrige artikel har vi ryddet begrebet lowpass-filtre, du kan tjekke artiklen om aktivt lavpasfilter eller passivt lavpasfilter, hvis du vil vide mere om emnet.
Printkortdesign til AC-fase vinkelkontrolkredsløb
Printkortet til vores fase vinkel kontrol kredsløb er designet i et ensidet kort. Jeg har brugt Eagle til at designe min PCB, men du kan bruge enhver Design-software efter eget valg. 2D-billedet af mit kortdesign er vist nedenfor.
Tilstrækkelig jordfyldning bruges til at skabe korrekte jordforbindelser mellem alle komponenterne. 12V DC-indgangen og 220 Volt AC-indgangen er befolket på venstre side, udgangen er placeret på højre side af printkortet. Den komplette designfil til Eagle sammen med Gerber kan downloades fra nedenstående link.
- Download PCB Design-, GERBER- og PDF-filer til AC-fase vinkelstyringskredsløb
Håndlavet printkort:
For nemheds skyld lavede jeg min håndlavede version af printkortet, og det er vist nedenfor.
Arduino-kode til vekselkontrol af vekselstrømsfase
En simpel PWM-genereringskode bruges til at få kredsløbet til at fungere, koden og dens forklaring er angivet nedenfor. Du kan også finde den komplette kode nederst på denne side. Først erklærer vi alle de nødvendige variabler, const int analogInPin = A0; // Analog indgangsstift, som potentiometeret er fastgjort til const int analogOutPin = 9; // Analog udgangsstift, som LED'en er knyttet til int sensorValue = 0; // værdi aflæst fra potten int outputValue = 0; // værdi output til PWM (analog udgang)
Variablerne skal erklære den analoge pin, den analoge pin, og de andre variabler skal gemme, konvertere og udskrive den kortlagte værdi. Dernæst i afsnittet setup () initialiserer vi UART med 9600 baud, så vi kunne overvåge output, og det er sådan, vi kan finde ud af, hvilket PWM-interval, der var i stand til helt at styre kredsløbets output.
ugyldig opsætning () {// initialiser seriel kommunikation ved 9600 bps: Serial.begin (9600); }
Dernæst i sektionen loop () læser vi den analoge pin A0 og gemmer værdien til sensorværdivariablen, næste kortlægger vi sensorværdien til 0-255 som fordi PWM-timeren til atmega kun er 8-bit, næste vi indstil PWM-signalet med en analogWrite () - funktion af Arduino. og til sidst udskriver vi værdierne til det serielle skærmvindue for at finde ud af rækkevidden til kontrolsignalet. Hvis du følger denne vejledning, vil videoen i slutningen give dig en klarere idé om emnet.
sensorValue = analogRead (analogInPin); // læs den analoge i værdi: outputValue = map (sensorValue, 0, 1023, 0, 255); // kortlæg den til rækkevidden af den analoge udgang: analogWrite (analogOutPin, outputValue); // ændre den analoge ud-værdi: Serial.print ("sensor ="); // udskriv resultaterne til Serial Monitor: Serial.print (sensorValue); Serial.print ("\ t output ="); Serial.println (outputValue);
Test af AC-fase vinkelkontrolkredsløb
Ovenstående billede viser testopsætningen af kredsløbet. 12V forsyningen leveres af et 12V SMPS kredsløb, belastningen er i vores tilfælde en pære, den kan let udskiftes \ med en induktiv belastning som en blæser. Også som du kan se, at jeg har monteret et potentiometer for at kontrollere lysstyrken på lampen, men det kan udskiftes med enhver anden form for controller, hvis du zoomer ind på billedet, kan du se, at potten er forbundet A0-pin af Arduino og PWM-signal kommer fra pin9 af Arduino.
Som du kan se på ovenstående billede er outputværdien 84, og lysstyrken på den glødepære er meget lav,
I dette billede kan du se, at værdien er 82, og glødepærens lysstyrke stiger.
Efter mange mislykkede forsøg var jeg i stand til at komme op med et kredsløb, der rent faktisk fungerer korrekt. Har du nogensinde spekuleret på, hvordan en testbænk ser ud, når et kredsløb ikke fungerer? Lad mig fortælle dig, at det ser meget dårligt ud,
Dette er et tidligere designet kredsløb, som jeg arbejdede på. Jeg var nødt til at smide den helt væk og lave en ny, fordi den forrige ikke virkede lidt.
Yderligere forbedringer
Til denne demonstration er kredsløbet lavet på et håndlavet printkort, men kredsløbet kan let bygges i en pcb af god kvalitet, i mine eksperimenter er størrelsen på printkortet virkelig stort på grund af komponentstørrelsen, men i et produktionsmiljø er det kan reduceres ved at bruge billige SMD-komponenter. I mine eksperimenter fandt jeg, at jeg ved hjælp af en 7555-timer i stedet for en 555-timer øgede kontrollanten i vid udstrækning, desuden øges kredsløbets stabilitet også.