- Ce este un control al unghiului de fază AC și cum funcționează?
- Provocări în controlul unghiului de fază
- Material necesar pentru circuitul de control al unghiului de fază AC
- Schema circuitului de control al unghiului de fază AC
- Circuitul de control al unghiului de fază AC - funcționează
- Proiectare PCB pentru circuitul de control al unghiului de fază AC
- Cod Arduino pentru controlul unghiului de fază AC
- Testarea circuitului de control al unghiului de fază AC
- Îmbunătățiri suplimentare
Sistemele de automatizare a casei câștigă din ce în ce mai multă popularitate zi de zi, iar în zilele noastre a devenit ușor să porniți și să opriți anumite aparate utilizând un mecanism de control simplu, cum ar fi un releu sau un comutator, am construit anterior mai multe proiecte de automatizare la domiciliu bazate pe Arduino folosind relee. Dar există multe electrocasnice care necesită controlul acestei curent alternativ, mai degrabă decât doar pornirea sau oprirea. Acum, intrați în lumea controlului unghiului de fază AC, este o tehnică simplă prin care puteți controla unghiul de fază AC. Aceasta înseamnă că puteți controla viteza ventilatorului de tavan sau a oricărui alt ventilator de curent alternativ sau chiar puteți controla intensitatea unui LED sau a unui bec incandescent.
Deși sună simplu, procesul de implementare a acestuia este foarte dificil, așa că, în acest articol, vom construi un circuit simplu de control al unghiului de fază AC cu ajutorul unui temporizator 555 și, în cele din urmă, vom folosi un Arduino pentru a genera un semnal simplu PWM pentru a controla intensitatea unui bec cu incandescență. După cum vă puteți imagina acum, cu acest circuit, puteți construi un sistem simplu de automatizare a locuinței în care puteți controla ventilatorul și variatoarele de lumină AC cu un singur Arduino.
Ce este un control al unghiului de fază AC și cum funcționează?
Controlul unghiului de fază AC este o metodă prin care putem controla sau tăia o undă sinusoidală AC. Unghiul de aprindere al dispozitivului de comutare este variat ca urmare a unei detectare trecere prin zero, rezultând o producție medie tensiune care se modifică proporțional cu undă sinusoidală modificată, imaginea de mai jos descrie mai mult.
După cum puteți vedea, mai întâi avem semnalul nostru de intrare AC. Apoi, avem semnalul de trecere zero, care generează o întrerupere la fiecare 10 ms. Apoi, avem semnalul de declanșare a porții, odată ce obținem un semnal de declanșare, așteptăm o anumită perioadă înainte de a da impulsul de declanșare, cu cât așteptăm mai mult, cu atât putem reduce mai mult tensiunea medie și invers. Vom discuta mai multe despre subiect mai târziu în articol.
Provocări în controlul unghiului de fază
Înainte de a arunca o privire asupra schemei și a tuturor cerințelor materiale, să vorbim despre unele probleme care sunt asociate cu acest tip de circuit și modul în care circuitul nostru le rezolvă.
Obiectivul nostru aici este de a controla unghiul de fază al unei unde sinusoidale de curent alternativ cu ajutorul unui microcontroler, pentru orice tip de aplicație de automatizare a casei. Dacă ne uităm la imaginea de mai jos, puteți vedea că în galben avem unda sinusoidală, iar în verde avem semnalul nostru de trecere zero.
Puteți vedea că semnalul de trecere zero vine la fiecare 10 ms, deoarece lucrăm cu o undă sinusoidală de 50Hz. Într-un microcontroler, generează o întrerupere la fiecare 10 ms. dacă ar fi să punem orice alt cod în afară de acesta, este posibil ca celălalt cod să nu funcționeze din cauza întreruperii. După cum știm, auzul frecvenței de linie în India este de 50Hz, deci lucrăm cu o undă sinusoidală de 50Hz și, pentru a controla rețeaua de curent alternativ, trebuie să pornim și să oprim TRIAC într-un anumit interval de timp. Pentru a face acest lucru, circuitul de control al unghiului de fază bazat pe microcontroler utilizează semnalul de trecere zero ca întrerupere, dar problema cu această metodă este că nu puteți rula alt cod în afară de codul de control al unghiului de ritm, deoarece într-un fel se va rupe ciclul de buclă și unul dintre aceste coduri nu vor funcționa.
Permiteți-mi să vă clarific cu un exemplu, să presupunem că trebuie să faceți un proiect în care trebuie să controlați luminozitatea becului incandescent, de asemenea, trebuie să măsurați temperatura în același timp. Pentru a controla luminozitatea unui bec cu incandescență, aveți nevoie de un circuit de control al unghiului de fază, de asemenea, trebuie să citiți datele de temperatură împreună cu acesta, dacă acesta este scenariul, circuitul dvs. nu va funcționa corect, deoarece senzorul DHT22 durează ceva timp până dați datele sale de ieșire. În această perioadă de timp, circuitul de control al unghiului de fază nu va mai funcționa, adică dacă l-ați configurat într-un mod de sondare, dar dacă ați configurat semnalul de trecere zero în modul de întrerupere, nu veți putea citi niciodată datele DHT deoarece verificarea CRC va eșua.
Pentru a rezolva această problemă, puteți utiliza un microcontroler diferit pentru un circuit de control al unghiului de fază diferit, dar acesta va crește costul BOM, o altă soluție este să folosiți circuitul nostru care este format din componente generice precum temporizatorul 555 și, de asemenea, costă mai puțin.
Material necesar pentru circuitul de control al unghiului de fază AC
Imaginea de mai jos prezintă materialele utilizate pentru a construi circuitul, deoarece acesta este realizat cu componente foarte generice, ar trebui să puteți găsi tot materialul listat în magazinul dvs. local de hobby-uri.
De asemenea, am enumerat componentele într-un tabel de mai jos cu tipul și cantitatea, deoarece este un proiect demonstrativ, folosesc un singur canal pentru a face acest lucru. Dar circuitul poate fi amplificat cu ușurință conform cerințelor.
Sl. Nu |
Părți |
Tip |
Cantitate |
1 |
Borna cu surub 5.04mm |
Conector |
3 |
2 |
Antet masculin 2,54 mm |
Conector |
1X2 |
3 |
56K, 1W |
Rezistor |
2 |
4 |
1N4007 |
Diodă |
4 |
5 |
0.1uF, 25V |
Condensator |
2 |
6 |
100uF, 25V |
Condensator |
2 |
7 |
LM7805 |
Regulator de voltaj |
1 |
8 |
1K |
Rezistor |
1 |
9 |
470R |
Rezistor |
2 |
10 |
47R |
Rezistor |
2 |
11 |
82K |
Rezistor |
1 |
12 |
10K |
Rezistor |
1 |
13 |
PC817 |
Optocuplator |
1 |
14 |
NE7555 |
IC |
1 |
12 |
MOC3021 |
OptoTriac Drive |
1 |
13 |
IRF9540 |
MOSFET |
1 |
14 |
3.3uF |
Condensator |
1 |
15 |
Conectarea firelor |
Fire |
5 |
16 |
0,1uF, 1KV |
Condensator |
1 |
17 |
Arduino Nano (pentru test) |
Microcontroler |
1 |
Schema circuitului de control al unghiului de fază AC
Schema pentru circuitul de control al unghiului de fază în curent alternativ este prezentată mai jos, acest circuit este foarte simplu și folosește componente generice pentru a realiza controlul unghiului de fază.
Circuitul de control al unghiului de fază AC - funcționează
Acest circuit este format din componente foarte atent proiectate, voi trece prin fiecare și voi explica fiecare bloc.
Circuit de detectare a traversării zero:
În primul rând, în lista noastră se află circuitul de detectare a trecerii zero, realizat cu două rezistențe de 56K, 1W împreună cu patru diode 1n4007 și un optocuplu PC817. Și acest circuit este responsabil pentru furnizarea semnalului de trecere zero către 555 timer IC. De asemenea, am eliminat faza și semnalul neutru pentru a le utiliza în continuare în secțiunea TRIAC.
Regulator de tensiune LM7809:
Regulatorul de tensiune 7809 este utilizat pentru alimentarea circuitului, circuitul este responsabil pentru furnizarea de energie întregului circuit. În plus, am folosit doi condensatori 470uF și un condensator 0.1uF ca condensator de decuplare pentru IC LM7809.
Circuit de control cu temporizator NE555:
Imaginea de mai sus arată circuitul de control al temporizatorului 555, modelul 555 este configurat într-o configurație monostabilă, astfel încât atunci când un semnal de declanșare din circuitul de detectare a trecerii zero lovește declanșatorul, temporizatorul 555 începe să încarce condensatorul cu ajutorul unui rezistor (în general), dar circuitul nostru are un MOSFET în locul unui rezistor și, controlând poarta MOSFET, controlăm curentul care merge la condensator, de aceea controlăm timpul de încărcare, de aceea controlăm ieșirea celor 555 temporizatoare. În multe proiecte, am folosit IC-ul cu temporizator 555 pentru a realiza proiectul nostru, dacă doriți să aflați mai multe despre acest subiect, puteți verifica toate celelalte proiecte.
TRIAC și circuitul driverului TRIAC:
TRIAC acționează ca întrerupătorul principal care de fapt pornește și oprește, controlând astfel ieșirea semnalului de curent alternativ. Conducerea TRIAC este unitatea optotriacă MOC3021, nu conduce doar TRIAC-ul, ci oferă și izolare optică, condensatorul de înaltă tensiune 0,01uF 2KV, iar rezistorul 47R formează un circuit snubber, care ne protejează circuitul de vârfuri de înaltă tensiune care apar atunci când este conectat la o sarcină inductivă, natura non-sinusoidală a semnalului alternativ de comutare este responsabilă pentru vârfuri. De asemenea, este responsabil pentru problemele legate de factorul de putere, dar acesta este un subiect pentru un alt articol. De asemenea, în diferite articole, am utilizat TRIAC ca dispozitiv preferat, le puteți verifica dacă acest lucru vă interesează.
Lowpass-Filter și MOSFET cu canal P (care acționează ca rezistor în circuit):
Rezistorul de 82K și condensatorul de 3,3 uF formează filtrul de trecere jos, care este responsabil pentru netezirea semnalului PWM de înaltă frecvență generat de Arduino. După cum sa menționat anterior, MOSFET-ul P-Channel acționează ca rezistor variabil, care controlează timpul de încărcare al condensatorului. Controlul acestuia este semnalul PWM care este netezit de filtrul low-pass. În articolul precedent, am eliminat conceptul de filtre low-pass, puteți consulta articolul despre filtrul activ low pass sau low pass pass dacă doriți să aflați mai multe despre subiect.
Proiectare PCB pentru circuitul de control al unghiului de fază AC
PCB-ul pentru circuitul nostru de control al unghiului de fază este proiectat într-o placă unilaterală. Am folosit Eagle pentru a-mi proiecta PCB-ul, dar puteți utiliza orice software de proiectare la alegere. Imaginea 2D a designului plăcii mele este prezentată mai jos.
O umplere suficientă la pământ este utilizată pentru a realiza conexiuni la pământ adecvate între toate componentele. Intrarea de 12V DC și intrarea de 220 Volt AC sunt populate în partea stângă, ieșirea este situată în partea dreaptă a PCB-ului. Fișierul complet de proiectare pentru Eagle împreună cu Gerber poate fi descărcat de pe linkul de mai jos.
- Descărcați fișierele PCB Design, GERBER și PDF pentru circuitul de control al unghiului de fază AC
PCB realizat manual:
Pentru comoditate, am realizat versiunea mea manuală a PCB-ului și este prezentată mai jos.
Cod Arduino pentru controlul unghiului de fază AC
Un cod simplu de generare PWM este utilizat pentru a face circuitul să funcționeze, codul și explicația acestuia sunt date mai jos. De asemenea, puteți găsi codul complet în partea de jos a acestei pagini. Mai întâi, declarăm toată variabila necesară, const int analogInPin = A0; // Pin de intrare analogic pe care potențiometrul este atașat la const int analogOutPin = 9; // Pin de ieșire analogic pe care LED-ul este atașat la int sensorValue = 0; // valoare citită din pot int outputValue = 0; // ieșire valoare către PWM (ieșire analogică)
Variabilele trebuie să declare pinul analogic, pinul analogOut, iar celelalte variabile sunt să stocheze, să convertească și să imprime valoarea mapată. Apoi, în secțiunea setup () , inițializăm UART cu 9600 baud, astfel încât să putem monitoriza ieșirea și așa putem afla care gamă PWM a fost capabilă să controleze total ieșirea circuitului.
void setup () {// inițializează comunicațiile seriale la 9600 bps: Serial.begin (9600); }
Apoi, în secțiunea buclă () , citim pinul analogic A0 și stocăm valoarea la valoarea variabilă a senzorului, apoi mapăm valoarea senzorului la 0 -255, deoarece temporizatorul PWM al atmega este doar de 8 biți, setați semnalul PWM cu o funcție analogWrite () a Arduino. și, în cele din urmă, imprimăm valorile în fereastra monitorului serial pentru a afla intervalul semnalului de control, dacă urmați acest tutorial, videoclipul de la sfârșit vă va oferi o idee mai clară asupra subiectului.
sensorValue = analogRead (analogInPin); // citiți valoarea analogică: outputValue = hartă (sensorValue, 0, 1023, 0, 255); // mapează-l la intervalul ieșirii analogice: analogWrite (analogOutPin, outputValue); // modificați valoarea ieșirii analogice: Serial.print ("senzor ="); // tipăriți rezultatele pe Serial Monitor: Serial.print (sensorValue); Serial.print ("\ t output ="); Serial.println (outputValue);
Testarea circuitului de control al unghiului de fază AC
Imaginea de mai sus arată configurarea testului circuitului. Alimentarea de 12V este asigurată de un circuit SMPS de 12V, sarcina este un bec în cazul nostru, poate fi ușor înlocuită \ cu o sarcină inductivă ca un ventilator. De asemenea, după cum puteți vedea, am atașat un potențiometru pentru a controla luminozitatea lămpii, dar poate fi înlocuit cu orice altă formă de controler, dacă măriți imaginea, puteți vedea că potul este conectat la Pinul A0 al Arduino și semnalul PWM provin de la pin-ul Arduino.
După cum puteți vedea în imaginea de mai sus, valoarea de ieșire este 84 și luminozitatea becului incandescent este foarte scăzută,
În această imagine, puteți vedea că valoarea este 82, iar luminozitatea becului incandescent crește.
După multe încercări eșuate, am reușit să vin cu un circuit care funcționează corect. V-ați întrebat vreodată cum arată un banc de testare atunci când un circuit nu funcționează? Permiteți-mi să vă spun că arată foarte rău,
Acesta este un circuit proiectat anterior la care lucram. A trebuit să-l arunc complet și să fac unul nou, pentru că cel anterior nu funcționa puțin.
Îmbunătățiri suplimentare
Pentru această demonstrație, circuitul este realizat pe un PCB fabricat manual, dar circuitul poate fi ușor construit într-un PCB de bună calitate, în experimentele mele, dimensiunea PCB este foarte mare datorită dimensiunii componentelor, dar într-un mediu de producție, poate fi redus folosind componente SMD ieftine. În experimentele mele, am constatat că folosind un temporizator 7555 în loc de un temporizator 555 măresc extensiv controlul, în plus, crește și stabilitatea circuitului.