- Componente necesare
- Funcționarea controlului ventilatorului AC folosind Arduino
- 1. Detector Zero-Crossing
- 2. Circuitul de control al unghiului de fază
- 3. Potențiometru pentru controlul vitezei ventilatorului
- 4. Unitatea de generare a semnalului PWM
- Diagrama circuitului
- Programarea Arduino pentru controlul vitezei ventilatorului AC
AVERTIZARE!! Diagrama de circuit discutată în acest proiect are doar scop educativ. Rețineți că lucrul cu tensiunea de rețea 220V AC necesită precauții extreme și trebuie respectate procedurile de siguranță. Nu atingeți niciunul dintre componente sau fire când circuitul este în funcțiune.
Este ușor să porniți sau să opriți orice aparat de uz casnic utilizând un comutator sau folosind un mecanism de control, așa cum am făcut în multe proiecte de automatizare la domiciliu bazate pe Arduino. Dar există o mulțime de aplicații în care trebuie să controlăm parțial puterea de curent alternativ, de exemplu, pentru a controla viteza ventilatorului sau intensitatea unei lămpi. În acest caz, se utilizează tehnica PWM, așa că aici vom învăța cum să folosim PWM generat de Arduino pentru a controla viteza ventilatorului de curent alternativ cu Arduino.
În acest proiect, vom demonstra controlul vitezei ventilatorului Arduino AC folosind TRIAC. Aici metoda de control de fază a semnalului de curent alternativ este utilizată pentru a controla viteza ventilatorului de curent alternativ, utilizând semnale PWM generate de Arduino. În tutorialul anterior, am controlat viteza ventilatorului DC folosind PWM.
Componente necesare
- Arduino UNO
- 4N25 (detector de trecere zero)
- Potențiometru 10k
- MOC3021 0-cuplaj
- (0-9) V, 500 mA Stepdown Transformer
- BT136 TRIAC
- Ventilator axial de 230 VCA
- Conectarea firelor
- Rezistențe
Funcționarea controlului ventilatorului AC folosind Arduino
Lucrarea poate fi împărțită în patru părți diferite. Sunt după cum urmează
1. Detector zero-Crossing
2. Circuit de control al unghiului de fază
3. Potențiometru pentru controlul cantității de turație a ventilatorului
4. Circuit de generare a semnalului PWM
1. Detector Zero-Crossing
Alimentarea cu curent alternativ pe care o primim în gospodăria noastră este de 220v AC RMS, 50 HZ. Acest semnal alternativ are o natură alternativă și își schimbă periodic polaritatea. În prima jumătate a fiecărui ciclu, acesta curge într-o singură direcție atingând o tensiune de vârf și apoi scade până la zero. Apoi, în următorul semiciclu, curge în direcție alternativă (negativă) la o tensiune de vârf și apoi ajunge din nou la zero. Pentru controlul vitezei ventilatorului de curent alternativ, tensiunea de vârf a ambelor semicicluri trebuie tăiată sau controlată. Pentru aceasta, trebuie să detectăm punctul zero din care urmează să fie controlat / tăiat semnalul. Acest punct de pe curba tensiunii în care tensiunea schimbă direcția se numește trecere de tensiune zero.
Circuitul prezentat mai jos este circuitul detectorului de trecere zero care este utilizat pentru a obține punctul de trecere zero. În primul rând, tensiunea de 220V AC este redusă la 9V AC folosind un transformator de descărcare și este apoi alimentată către un optocuplator 4N25 la pinii 1 și 2. Optocuplatorul 4N25 are un LED încorporat cu pinul 1 ca anod și pinul 2 ca un catod. Deci, conform circuitului de mai jos, când unda AC se apropie de punctul de trecere zero, LED-ul încorporat al 4N25 se va stinge și, ca rezultat, tranzistorul de ieșire al 4N25 va fi, de asemenea, oprit și pinul de impuls de ieșire se va opri. fii tras până la 5V. În mod similar, atunci când semnalul crește treptat până la vârfpunct, apoi LED-ul se aprinde și tranzistorul se va aprinde și cu pinul de masă conectat la pinul de ieșire, ceea ce face ca acest pin să fie de 0V. Folosind acest impuls, punctul de trecere zero poate fi detectat folosind Arduino.
2. Circuitul de control al unghiului de fază
După detectarea punctului de trecere zero, acum trebuie să controlăm cantitatea de timp pentru care puterea va fi PORNITĂ și OPRITĂ. Acest semnal PWM va decide cantitatea de tensiune ieșită la motorul de curent alternativ, care, la rândul său, controlează viteza acestuia. Aici este utilizat un BT136 TRIAC, care controlează tensiunea de curent alternativ, deoarece este un comutator electronic de putere pentru controlul unui semnal de tensiune de curent alternativ.
TRIAC este un comutator de curent alternativ cu trei terminale care poate fi declanșat de un semnal de energie scăzută la terminalul porții sale. În SCR-uri, acesta conduce într-o singură direcție, dar în cazul TRIAC, puterea poate fi controlată în ambele direcții. Pentru a afla mai multe despre TRIAC și SCR, urmați articolele noastre anterioare.
Așa cum se arată în figura de mai sus, TRIAC este declanșat la un unghi de tragere de 90 de grade prin aplicarea unui semnal mic de impuls de poartă. Timpul „t1” este timpul de întârziere dat conform cerințelor de estompare. De exemplu, în acest caz, unghiul de tragere este de 90 la sută, prin urmare puterea de ieșire va fi, de asemenea, înjumătățită și, prin urmare, lampa va străluci și cu intensitate pe jumătate.
Știm că frecvența semnalului de curent alternativ este de 50 Hz aici. Deci, perioada de timp va fi 1 / f, care este de 20 ms. Pentru o jumătate de ciclu, aceasta va fi de 10 ms sau 10.000 microsecunde. Prin urmare, pentru controlul puterii unei lămpi de curent alternativ, domeniul „t1” poate varia de la 0 la 10000 de microsecunde.
Optocuplator:
Optocuplorul este, de asemenea, cunoscut sub numele de Optoizolator. Este folosit pentru a menține izolarea între două circuite electrice, cum ar fi semnalele de curent continuu și de curent alternativ. Practic, este format dintr-un LED care emite lumină infraroșie și senzorul fotosensibil care o detectează. Aici este utilizat un optocuplator MOC3021 pentru a controla ventilatorul de curent alternativ de la semnalele microcontrolerului, care este un semnal de curent continuu.
Diagrama de conectare TRIAC și Optocuploare:
3. Potențiometru pentru controlul vitezei ventilatorului
Aici se utilizează un potențiometru pentru a varia viteza ventilatorului de curent alternativ. Știm că un potențiometru este un dispozitiv cu 3 terminale care acționează ca un divizor de tensiune și oferă o ieșire de tensiune variabilă. Această tensiune de ieșire analogică variabilă este dată la terminalul de intrare analogică Arduino pentru a seta valoarea vitezei ventilatorului de curent alternativ.
4. Unitatea de generare a semnalului PWM
În etapa finală, un impuls PWM este dat TRIAC conform cerințelor de viteză, care, la rândul său, variază temporizarea PORNIT / OPRIT a semnalului AC și oferă o ieșire variabilă pentru a controla viteza ventilatorului. Aici Arduino este folosit pentru a genera impulsul PWM, care preia intrarea de la potențiometru și dă semnalul PWM la TRIAC și circuitul optocuplator care acționează în continuare ventilatorul de curent alternativ la viteza dorită. Aflați mai multe despre generația PWM folosind Arduino aici.
Diagrama circuitului
Diagrama circuitului pentru acest circuit de control al turației ventilatorului pe bază de Arduino de 230v este prezentată mai jos:
Notă: Am arătat circuitul complet pe o placă de calcul numai în scopul înțelegerii. Nu ar trebui să utilizați o sursă de curent alternativ de 220V direct pe placa dvs., am folosit o placă punctată pentru a face conexiunile așa cum puteți vedea în imaginea de mai jos
Programarea Arduino pentru controlul vitezei ventilatorului AC
După conexiunea hardware, trebuie să scriem codul pentru Arduino, care va genera un semnal PWM pentru a controla sincronizarea ON / OFF a semnalului AC utilizând o intrare de potențiometru. Am folosit anterior tehnici PWM în multe proiecte.
Codul complet al acestui proiect de control al vitezei ventilatorului Arduino AC este dat în partea de jos a acestui proiect. Explicația pas cu pas a codului este dată mai jos.
În primul pas, declarați toate variabilele necesare, care urmează să fie utilizate în întregul cod. Aici BT136 TRIAC este conectat la pinul 6 al Arduino. Și variabila speed_val este declarată pentru a stoca valoarea pasului vitezei.
int TRIAC = 6; int speed_val = 0;
Apoi, în interiorul funcției de configurare , declarați pinul TRIAC ca ieșire, deoarece ieșirea PWM va fi generată prin acest pin. Apoi, configurați o întrerupere pentru a detecta trecerea zero. Aici am folosit o funcție numită attachInterrupt, care va configura pinul digital 3 al Arduino ca întrerupere externă și va apela funcția numită zero_crossing atunci când detectează orice întreruperi la pinul său.
void setup () {pinMode (LAMP, OUTPUT); attachInterrupt (digitalPinToInterrupt (3), zero_crossing, CHANGE); }
În interiorul buclei infinite, citiți valoarea analogică de la potențiometru care este conectat la A0 și mapați-o la un interval de valori de (10-49).
Pentru a afla acest interval trebuie să facem un mic calcul. Mai devreme se spune că fiecare jumătate de ciclu este echivalent cu 10.000 de microsecunde. Așadar, diminuarea va fi controlată în 50 de pași, ceea ce reprezintă o valoare arbitrară și poate fi modificată. Aici pașii minimi sunt luați la 10, nu la zero, deoarece 0-9 pași oferă aproximativ aceeași putere de ieșire și pașii maximi sunt luați la 49, deoarece nu este recomandat practic să luați limita superioară (care este 50 în acest caz).
Apoi, fiecare pas poate fi calculat ca 10000/50 = 200 microsecunde. Aceasta va fi utilizată în următoarea parte a codului.
bucla void () {int pot = analogRead (A0); int data1 = hartă (pot, 0, 1023,10,49); speed_val = data1; }
În pasul final, configurați funcția de întrerupere zero_crossing. Aici timpul de estompare poate fi calculat prin înmulțirea timpului de pas individual cu nr. de trepte. Apoi, după acest timp de întârziere, TRIAC poate fi declanșat folosind un mic impuls mare de 10 microsecunde, care este suficient pentru a porni un TRIAC.
void zero_crossing () {int chop_time = (200 * speed_val); delayMicroseconds (chop_time); digitalWrite (TRIAC, HIGH); delayMicroseconds (10); digitalWrite (TRIAC, LOW); }
Codul complet împreună cu un videoclip funcțional pentru acest control al ventilatorului de curent alternativ folosind Arduino și PWM este dat mai jos.