- Nepieciešamās sastāvdaļas
- Maiņstrāvas ventilatora vadības darbība, izmantojot Arduino
- 1. Nulles šķērsošanas detektors
- 2. Fāzes leņķa vadības ķēde
- 3. Potenciometrs, lai kontrolētu ventilatora ātrumu
- 4. PWM signālu ģenerēšanas vienība
- Ķēdes shēma
- Arduino programmēšana maiņstrāvas ventilatora ātruma kontrolei
BRĪDINĀJUMS !! Šajā projektā aplūkotā shēma ir paredzēta tikai izglītības vajadzībām. Jābrīdina, ka darbam ar maiņstrāvu ar 220 V maiņstrāvu ir nepieciešama īpaša piesardzība, un ir jāievēro drošības procedūras. Kad ķēde darbojas, nepieskarieties nevienam no komponentiem vai vadiem.
Jebkuru sadzīves tehniku ir viegli ieslēgt vai izslēgt, izmantojot slēdzi vai izmantojot kādu vadības mehānismu, kā mēs to darījām daudzos Arduino balstītos mājas automatizācijas projektos. Bet ir daudz lietojumu, kur mums daļēji jākontrolē maiņstrāva, piemēram, lai kontrolētu ventilatora ātrumu vai lampas intensitāti. Šajā gadījumā tiek izmantota PWM tehnika, tāpēc šeit mēs uzzināsim, kā izmantot Arduino ģenerēto PWM, lai kontrolētu AC ventilatora ātrumu ar Arduino.
Šajā projektā mēs demonstrēsim Arduino AC ventilatora ātruma kontroli, izmantojot TRIAC. Šeit maiņstrāvas signāla fāzes vadības metodi izmanto, lai kontrolētu maiņstrāvas ventilatora ātrumu, izmantojot Arduino ģenerētos PWM signālus. Iepriekšējā apmācībā mēs kontrolējām līdzstrāvas ventilatora ātrumu, izmantojot PWM.
Nepieciešamās sastāvdaļas
- Arduino UNO
- 4N25 (nulles šķērsošanas detektors)
- 10k potenciometrs
- MOC3021 0pto-savienotājs
- (0–9) V, 500 mA pakāpiena transformators
- BT136 TRIAC
- 230 VAC aksiālais maiņstrāvas ventilators
- Savienojošie vadi
- Rezistori
Maiņstrāvas ventilatora vadības darbība, izmantojot Arduino
Darbu var sadalīt četrās dažādās daļās. Tie ir šādi
1. Nulles krustojuma detektors
2. Fāzes leņķa vadības ķēde
3. Potenciometrs ventilatora ātruma lieluma kontrolei
4. PWM signāla ģenerēšanas ķēde
1. Nulles šķērsošanas detektors
Maiņstrāvas avots, ko iegūstam mūsu mājsaimniecībā, ir 220 V maiņstrāvas vidējā kvadrātiskā vērtība, 50 Hz. Šis maiņstrāvas signāls pēc būtības ir mainīgs un periodiski maina tā polaritāti. Katra cikla pirmajā pusē tas plūst vienā virzienā, sasniedzot maksimālo spriegumu, un pēc tam samazinās līdz nullei. Tad nākamajā pusciklā tas plūst mainīgā virzienā (negatīvs) līdz maksimālajam spriegumam un pēc tam atkal nāk uz nulli. Lai kontrolētu maiņstrāvas ventilatora ātrumu, jāsamazina vai jākontrolē abu pusciklu maksimālais spriegums. Lai to izdarītu, mums ir jānosaka nulles punkts, no kura signāls tiks kontrolēts / sasmalcināts. Šo sprieguma līknes punktu, kurā spriegums maina virzienu, sauc par nulles sprieguma šķērsošanu.
Zemāk redzamā ķēde ir nulles šķērsošanas detektora ķēde, ko izmanto nulles šķērsošanas punkta iegūšanai. Pirmkārt, 220 V maiņstrāvas spriegums tiek pazemināts līdz 9 V maiņstrāvai, izmantojot pazeminošo transformatoru, un pēc tam tas tiek ievadīts 4N25 optronā pie tā 1. un 2. tapas. 4N25 optiskajam savienotājam ir iebūvēts LED ar tapu 1 kā anodu un tapu 2 kā katods. Tātad, kā norādīts zemāk esošajā ķēdē, kad maiņstrāvas vilnis tuvojas nulles šķērsošanas punktam, 4N25 iebūvētais LED tiks izslēgts, un rezultātā 4N25 izejas tranzistors arī tiks izslēgts, un izejas impulsa tapa būs saņemt līdz 5V. Līdzīgi, kad signāls pakāpeniski palielinās līdz maksimumampunktu, tad gaismas diode ieslēdzas un tranzistors ieslēgsies arī ar zemējuma tapu, kas savienota ar izejas tapu, kas padara šo tapu 0 V. Izmantojot šo impulsu, nulles šķērsošanas punktu var noteikt, izmantojot Arduino.
2. Fāzes leņķa vadības ķēde
Pēc nulles šķērsošanas punkta noteikšanas tagad mums ir jākontrolē laiks, kurā barošana tiks ieslēgta un izslēgta. Šis PWM signāls izlems maiņstrāvas motora izejas sprieguma daudzumu, kas savukārt kontrolē tā ātrumu. Šeit tiek izmantots BT136 TRIAC, kas kontrolē maiņstrāvas spriegumu, jo tas ir strāvas elektronisks slēdzis maiņstrāvas sprieguma signāla kontrolei.
TRIAC ir trīs termināļu maiņstrāvas slēdzis, kuru var iedarbināt ar zemas enerģijas signālu tā vārtu spailē. SCR tas vada tikai vienā virzienā, bet TRIAC gadījumā jaudu var kontrolēt abos virzienos. Lai uzzinātu vairāk par TRIAC un SCR, sekojiet mūsu iepriekšējiem rakstiem.
Kā parādīts iepriekš redzamajā attēlā, TRIAC tiek iedarbināts šaušanas leņķī 90 grādi, tam iedarbinot nelielu vārtu impulsa signālu. Laiks “t1” ir aizkaves laiks, kas norādīts saskaņā ar aptumšošanas prasību. Piemēram, šajā gadījumā šaušanas leņķis ir 90 procenti, līdz ar to arī jauda tiks samazināta uz pusi, līdz ar to arī lampa spīdēs ar pusi intensitātes.
Mēs zinām, ka maiņstrāvas signāla frekvence šeit ir 50 Hz. Tātad laika periods būs 1 / f, kas ir 20 ms. Puse cikla tas būs 10 ms vai 10 000 mikrosekundes. Tādējādi, lai kontrolētu maiņstrāvas spuldzes jaudu, diapazonu “t1” var mainīt no 0 līdz 10000 mikrosekundēm.
Optrons:
Optocoupler ir pazīstams arī kā Optoisolator. To lieto, lai uzturētu izolāciju starp divām elektriskām ķēdēm, piemēram, līdzstrāvas un maiņstrāvas signāliem. Būtībā tas sastāv no LED, kas izstaro infrasarkano gaismu, un fotosensora, kas to nosaka. Šeit MOC3021 optronu izmanto, lai kontrolētu maiņstrāvas ventilatoru no mikrokontrollera signāliem, kas ir līdzstrāvas signāls.
TRIAC un Optocoupler savienojuma shēma:
3. Potenciometrs, lai kontrolētu ventilatora ātrumu
Šeit potenciometru izmanto, lai mainītu maiņstrāvas ventilatora ātrumu. Mēs zinām, ka potenciometrs ir 3 termināļu ierīce, kas darbojas kā sprieguma dalītājs un nodrošina mainīgu sprieguma izeju. Šis mainīgais analogās izejas spriegums tiek norādīts Arduino analogās ieejas spailē, lai iestatītu maiņstrāvas ventilatora ātruma vērtību.
4. PWM signālu ģenerēšanas vienība
Pēdējā posmā TRIAC tiek piešķirts PWM impulss atbilstoši ātruma prasībām, kas savukārt maina maiņstrāvas signāla ieslēgšanas / izslēgšanas laiku un nodrošina mainīgu izeju ventilatora ātruma kontrolei. Šeit Arduino tiek izmantots PWM impulsa ģenerēšanai, kas ņem ievadi no potenciometra un dod PWM signāla izvadi TRIAC un optronu shēmai, kas vēl vairāk virza maiņstrāvas ventilatoru vēlamajā ātrumā. Uzziniet vairāk par PWM paaudzi, izmantojot Arduino šeit.
Ķēdes shēma
Šīs Arduino bāzes 230 V ventilatora ātruma vadības ķēdes shēmas shēma ir sniegta zemāk:
Piezīme. Visu ķēdi uz maizes paneļa esmu parādījis tikai izpratnes nolūkos. Jums nevajadzētu izmantot 220 V maiņstrāvas padevi tieši uz maizes dēļa, savienojumu izveidošanai esmu izmantojis punktētu dēli, kā redzat zemāk esošajā attēlā
Arduino programmēšana maiņstrāvas ventilatora ātruma kontrolei
Pēc aparatūras savienojuma mums jāuzraksta kods Arduino, kas ģenerēs PWM signālu, lai kontrolētu maiņstrāvas signāla ieslēgšanas / izslēgšanas laiku, izmantojot potenciometra ieeju. Iepriekš mēs daudzos projektos izmantojām PWM paņēmienus.
Šī Arduino AC ventilatora ātruma vadības projekta pilnais kods ir norādīts šī projekta apakšdaļā. Tālāk ir sniegts pakāpenisks koda skaidrojums.
Vispirms deklarējiet visus nepieciešamos mainīgos, kurus paredzēts izmantot visā kodā. Šeit BT136 TRIAC ir savienots ar Arduino 6. kontaktu. Mainīgais ātrums_val tiek deklarēts, lai saglabātu ātruma pakāpes vērtību.
int TRIAC = 6; int ātruma_val = 0;
Pēc tam, uzstādīšanas funkcijas iekšpusē, deklarējiet TRIAC tapu kā izvadi, jo caur šo tapu tiks ģenerēta PWM izeja. Pēc tam konfigurējiet pārtraukumu, lai noteiktu nulles šķērsošanu. Šeit mēs esam izmantojuši funkciju, ko sauc par attachInterrupt, kas konfigurēs Arduino digitālo tapu 3 kā ārēju pārtraukumu un izsauks funkciju ar nosaukumu zero_crossing, kad tā konstatēs visus traucējumus savā tapā.
void setup () {pinMode (LAMP, OUTPUT); attachInterrupt (digitalPinToInterrupt (3), zero_crossing, CHANGE); }
Bezgalīgās cilpas iekšpusē nolasiet analogo vērtību no potenciometra, kas savienots pie A0, un kartējiet to ar vērtību diapazonu (10–49).
Lai uzzinātu šo diapazonu, mums jāveic neliels aprēķins. Iepriekš tika teikts, ka katrs puscikls ir ekvivalents 10 000 mikrosekundēm. Tātad šeit aptumšošana tiks kontrolēta 50 soļos, kas ir patvaļīga vērtība, un to var mainīt. Šeit minimālās darbības tiek veiktas kā 10, nevis nulles, jo 0–9 darbības dod aptuveni vienādu izejas jaudu, bet maksimālās darbības tiek veiktas kā 49, jo praktiski nav ieteicams veikt augšējo robežu (kas šajā gadījumā ir 50).
Tad katra soļa laiku var aprēķināt kā 10000/50 = 200 mikrosekundes. Tas tiks izmantots koda nākamajā daļā.
void loop () {int pot = analogRead (A0); int dati1 = karte (pot, 0, 1023,10,49); speed_val = dati1; }
Pēdējā solī konfigurējiet pārtraukuma vadīto funkciju zero_crossing. Šeit aptumšošanas laiku var aprēķināt, reizinot individuālo soļa laiku ar nr. no soļiem. Pēc šī kavēšanās laika TRIAC var iedarbināt, izmantojot nelielu 10 mikrosekunžu lielu impulsu, kas ir pietiekams, lai ieslēgtu TRIAC.
void zero_crossing () {int chop_time = (200 * ātruma_val); aizkaveMikrosekundes (chop_time); digitalWrite (TRIAC, HIGH); kavēšanāsMikrosekundes (10); digitalWrite (TRIAC, LOW); }
Pilns kods kopā ar darba videoierīci šai maiņstrāvas ventilatora kontrolei, izmantojot Arduino un PWM, ir norādīts zemāk.