- Kas yra kintamosios fazės kampo valdymas ir kaip jis veikia?
- Fazinio kampo valdymo iššūkiai
- Medžiaga, reikalinga kintamosios fazės kampo valdymo grandinei
- Kintamosios srovės fazinio kampo valdymo grandinės schema
- Kintamosios fazės kampo valdymo grandinė - veikia
- Kintamosios srovės fazinio kampo valdymo grandinės PCB dizainas
- „Arduino“ kintamosios srovės fazinio kampo valdymo kodas
- Kintamosios srovės fazinio kampo valdymo grandinės testavimas
- Kiti patobulinimai
Namų automatikos sistemos kiekvieną dieną vis labiau populiarėja, o šiais laikais tapo lengva įjungti ir išjungti tam tikrus prietaisus naudojant tam tikrą paprastą valdymo mechanizmą, pvz., Relę ar jungiklį. Anksčiau mes sukūrėme daugybę „Arduino“ pagrįstų namų automatikos projektų naudodami reles. Tačiau yra daugybė buitinių prietaisų, kuriems reikalinga šios kintamosios srovės valdymas, o ne tik įjungimas ar išjungimas. Dabar įeikite į kintamosios srovės fazių kampų valdymo pasaulį. Tai paprasta technika, kuria galite valdyti kintamosios srovės fazės kampą. Tai reiškia, kad galite valdyti lubų ventiliatoriaus ar bet kurio kito kintamosios srovės ventiliatoriaus greitį arba net galite valdyti LED ar kaitrinės lemputės intensyvumą.
Nors tai skamba paprastai, iš tikrųjų jo įgyvendinimas yra labai sunkus, todėl šiame straipsnyje mes sukursime paprastą kintamosios srovės fazės kampo valdymo grandinę 555 laikmačio pagalba ir galų gale naudosime „Arduino“ generuoti paprastą PWM signalą kaitinamosios lemputės intensyvumui valdyti. Kaip dabar galite aiškiai įsivaizduoti, naudodamiesi šia grandine, galite sukurti paprastą namų automatikos sistemą, kurioje galėsite valdyti ventiliatorių ir „Ac“ šviesos reguliatorius su vienu „Arduino“.
Kas yra kintamosios fazės kampo valdymas ir kaip jis veikia?
Kintamosios srovės fazės kampo valdymas yra metodas, per kurį galime valdyti arba susmulkinti kintamosios srovės sinusinę bangą. Šaudymo kampas Perjungimo įtaisas yra įvairi po nulis kirtimo aptikimo, todėl vidutinė išėjimo įtampos, kad keičiasi proporcingai su modifikuotos sinusoidės bangos, vaizdas žemiau aprašoma daugiau.
Kaip matote, pirmiausia turime kintamosios srovės įvesties signalą. Toliau mes turime nulio kirtimo signalą, kuris generuoja pertraukimą kas 10ms. Toliau mes turime vartų paleidimo signalą, gavę suveikimo signalą, laukiame tam tikro laikotarpio, kol duosime trigerio impulsą, kuo daugiau laukiame, tuo labiau galime sumažinti vidutinę įtampą ir atvirkščiai. Daugiau temos aptarsime vėliau straipsnyje.
Fazinio kampo valdymo iššūkiai
Prieš apžvelgdami schemą ir visus medžiagų reikalavimus, pakalbėkime apie kai kurias problemas, susijusias su tokia grandine, ir kaip mūsų grandinė jas išsprendžia.
Mūsų tikslas čia yra valdyti kintamosios srovės sinusinės bangos fazinį kampą naudojant mikrovaldiklį bet kokio tipo namų automatikos programoms. Pažvelgę į žemiau esantį vaizdą, galite pastebėti, kad geltona spalva yra mūsų sinusinė banga, o žalia spalva - nulio kirtimo signalas.
Matote, kad nulio kirtimo signalas sklinda kas 10ms, kai dirbame su 50Hz sinusine banga. Mikrovaldiklyje jis generuoja pertraukimą kas 10ms. jei be to įdėtume kokį nors kitą kodą, kitas kodas gali neveikti dėl pertraukimo. Kadangi žinome, kad Indijoje girdimas 50Hz dažnio dažnis, todėl dirbame su 50Hz sinusine banga, o tam, kad galėtume valdyti tinklo AC, turime įjungti ir išjungti TRIAC per tam tikrą laiką. Norėdami tai padaryti, mikrovaldiklio pagrindu veikianti fazinio kampo valdymo grandinė naudoja nulio kirtimo signalą kaip pertraukimą, tačiau šio metodo problema yra ta, kad negalite paleisti jokio kito kodo, išskyrus tempo kampo valdymo kodą, nes tam tikru būdu jis suges ciklo ciklas ir vienas iš tų kodų neveiks.
Leiskite paaiškinti pavyzdžiu, tarkime, kad turite atlikti projektą, kuriame turite valdyti kaitrinės lemputės ryškumą, taip pat turite matuoti temperatūrą tuo pačiu metu. Norėdami valdyti kaitrinės lemputės ryškumą, jums reikia fazinio kampo valdymo grandinės, taip pat turite perskaityti temperatūros duomenis kartu su juo, jei tai yra scenarijus, jūsų grandinė neveiks tinkamai, nes DHT22 jutikliui reikia šiek tiek laiko pateikti savo išvesties duomenis. Šiuo laikotarpiu fazinio kampo valdymo grandinė nustos veikti, tai yra, jei sukonfigūravote ją apklausos režimu, bet jei sukonfigūravote nulio kirtimo signalą pertraukimo režimu, niekada negalėsite skaityti DHT duomenų nes CRC patikra nepavyks.
Norėdami išspręsti šią problemą, galite naudoti skirtingą mikrovaldiklį skirtingoms fazių kampų valdymo grandinėms, tačiau tai padidins BOM kainą, kitas sprendimas yra naudoti mūsų grandinę, kurią sudaro bendrieji komponentai, tokie kaip 555 laikmatis, taip pat kainuoja mažiau.
Medžiaga, reikalinga kintamosios fazės kampo valdymo grandinei
Žemiau pateiktame paveikslėlyje parodytos medžiagos, naudojamos grandinei sukurti, nes ji yra pagaminta iš labai bendrų komponentų, turėtumėte galėti rasti visą išvardytą medžiagą savo vietinėje hobių parduotuvėje.
Žemiau esančioje lentelėje taip pat išvardijau komponentus, nurodydamas tipą ir kiekį, nes tai yra parodomasis projektas, tam naudoju vieną kanalą. Tačiau grandinę galima lengvai padidinti pagal reikalavimą.
Sl. Nr |
Dalys |
Tipas |
Kiekis |
1 |
Sraigtinis gnybtas 5,04 mm |
Jungtis |
3 |
2 |
Vyrų antraštė 2,54 mm |
Jungtis |
1X2 |
3 |
56K, 1W |
Rezistorius |
2 |
4 |
1N4007 |
Diodas |
4 |
5 |
0,1 uF, 25 V |
Kondensatorius |
2 |
6 |
100uF, 25V |
Kondensatorius |
2 |
7 |
LM7805 |
Įtampos reguliatorius |
1 |
8 |
1 tūkst |
Rezistorius |
1 |
9 |
470R |
Rezistorius |
2 |
10 |
47R |
Rezistorius |
2 |
11 |
82 tūkst |
Rezistorius |
1 |
12 |
10 tūkst |
Rezistorius |
1 |
13 |
PC817 |
Optronas |
1 |
14 |
NE7555 |
IC |
1 |
12 |
MOC3021 |
„OptoTriac“ pavara |
1 |
13 |
IRF9540 |
MOSFET |
1 |
14 |
3.3 uF |
Kondensatorius |
1 |
15 |
Laidų sujungimas |
Laidai |
5 |
16 |
0,1 uF, 1KV |
Kondensatorius |
1 |
17 |
„Arduino Nano“ (bandymui) |
Mikrovaldiklis |
1 |
Kintamosios srovės fazinio kampo valdymo grandinės schema
Kintamosios srovės fazinio kampo valdymo grandinės schema parodyta žemiau, ši grandinė yra labai paprasta ir fazinio kampo valdymui pasiekti naudojami bendrieji komponentai.
Kintamosios fazės kampo valdymo grandinė - veikia
Ši grandinė susideda iš labai kruopščiai suprojektuotų komponentų, aš pereisiu kiekvieną iš jų ir paaiškinsiu kiekvieną bloką.
Nulio kirtimo aptikimo grandinė:
Pirma, mūsų sąraše yra nulio kirtimo aptikimo grandinė, sudaryta iš dviejų 56K, 1W rezistorių kartu su keturiais 1n4007 diodais ir PC817 optronu. Ši grandinė yra atsakinga už nulio kirtimo signalo teikimą 555 laikmačio IC. Be to, mes užfiksavome fazę ir neutralų signalą, kad galėtume jį toliau naudoti TRIAC skyriuje.
LM7809 įtampos reguliatorius:
7809 įtampos reguliatorius naudojamas grandinei maitinti, grandinė yra atsakinga už visos grandinės maitinimą. Be to, mes naudojome du 470uF kondensatorius ir 0,1uF kondensatorių kaip LM7809 IC atjungimo kondensatorių.
Valdymo grandinė su NE555 laikmačiu:
Aukščiau pateiktame paveikslėlyje parodyta 555 laikmačio valdymo grandinė, 555 yra sukonfigūruota monostabilioje konfigūracijoje, taigi, kai suveikimo signalas iš nulio kirtimo aptikimo grandinės pasiekia gaiduką, 555 laikmatis ima krauti kondensatorių rezistoriaus pagalba (apskritai), bet mūsų grandinėje vietoj rezistoriaus yra MOSFET, o valdydami MOSFET vartus, mes valdome srovę, einančią į kondensatorių, todėl mes kontroliuojame įkrovimo laiką, taigi mes valdome 555 laikmačių išvestį. Daugelyje projektų mes panaudojome 555 laikmačio IC, kad galėtume sukurti savo projektą. Jei norite sužinoti daugiau apie šią temą, galite patikrinti visus kitus projektus.
TRIAC ir TRIAC vairuotojo grandinė:
TRIAC veikia kaip pagrindinis jungiklis, kuris faktiškai įsijungia ir išsijungia, taip valdydamas kintamosios srovės signalo išvestį. TRIAC vairavimas yra „MOC3021“ optotriacinė pavara, ji ne tik valdo TRIAC, bet ir užtikrina optinę izoliaciją, 0,01uF 2KV aukštos įtampos kondensatorių, o 47R rezistorius suformuoja trumpąją grandinę, kuri apsaugo mūsų grandinę nuo aukštos įtampos šuolių kurios atsiranda prijungus prie indukcinės apkrovos, už smaigalius atsakingas ne sinusoidinis įjungto kintamosios srovės signalo pobūdis. Be to, jis atsakingas už galios faktoriaus klausimus, tačiau tai yra kito straipsnio tema. Be to, įvairiuose straipsniuose mes naudojome TRIAC kaip pageidaujamą įrenginį. Galite juos patikrinti, jei tai domina jūsų susidomėjimą.
Žemųjų dažnių filtras ir P kanalo MOSFET (veikia kaip grandinės rezistorius):
82K rezistorius ir 3.3uF kondensatorius sudaro žemo dažnio filtrą, kuris yra atsakingas už „Arduino“ sukurto aukšto dažnio PWM signalo išlyginimą. Kaip minėta anksčiau, P kanalo MOSFET veikia kaip kintamasis rezistorius, kuris kontroliuoja kondensatoriaus įkrovimo laiką. Jo valdymas yra PWM signalas, kurį išlygina žemų dažnių filtras. Ankstesniame straipsnyje mes išvalėme žemų dažnių filtrų sąvoką. Jei norite sužinoti daugiau apie temą, galite peržiūrėti straipsnį apie aktyvų žemų dažnių filtrą arba pasyvų žemų dažnių filtrą.
Kintamosios srovės fazinio kampo valdymo grandinės PCB dizainas
Mūsų fazinio kampo valdymo grandinės PCB yra sukurta vienpusėje plokštėje. Savo „PCB“ kūrimui naudojau „Eagle“, tačiau galite naudoti bet kurią pasirinktą dizaino programinę įrangą. 2D mano plokštės dizaino vaizdas parodytas žemiau.
Tinkamas žemės sujungimas tarp visų komponentų naudojamas pakankamu žemės užpildymu. 12 V nuolatinės srovės įvestis ir 220 voltų kintamosios srovės įvestis yra užpildytos kairėje pusėje, išvestis yra dešinėje PCB pusėje. Išsamų „Eagle“ dizaino failą kartu su „Gerber“ galite atsisiųsti iš toliau pateiktos nuorodos.
- Atsisiųskite kintamosios srovės fazės kampo valdymo grandinės PCB dizaino, GERBER ir PDF failus
Rankų darbo PCB:
Kad būtų patogiau, pasidariau savo rankomis pagamintą PCB versiją ir ji parodyta žemiau.
„Arduino“ kintamosios srovės fazinio kampo valdymo kodas
Kad grandinė veiktų, naudojamas paprastas PWM generavimo kodas, kodas ir jo paaiškinimas pateikiami žemiau. Visą kodą taip pat galite rasti šio puslapio apačioje. Pirma, mes deklaruojame visą reikalingą kintamąjį, const int analogasInPin = A0; // Analoginis įvesties kaištis, kad potenciometras pritvirtintas prie const int analogOutPin = 9; // Analoginis išvesties kaištis, prie kurio šviesos diodas pritvirtintas prie int sensorValue = 0; // reikšmė, nuskaityta iš puodo int outputValue = 0; // vertės išvestis į PWM (analoginė išvestis)
Kintamieji turi deklaruoti analoginį kaištį, analogOut kaištį, o kiti kintamieji - susietą vertę saugoti, konvertuoti ir spausdinti. Toliau sąrankos () skyriuje mes inicijuojame UART su 9600 baudu, kad galėtume stebėti išvestį ir taip galime sužinoti, kuris PWM diapazonas sugebėjo visiškai valdyti grandinės išvestį.
void setup () {// inicijuoti nuoseklųjį ryšį 9600 bps greičiu: Serial.begin (9600); }
Toliau, ciklo () skyriuje, mes perskaitėme analoginį kaištį A0 ir išsaugojome reikšmę jutiklio vertės kintamajam, tada mes jutiklio vertę priskyrėme 0-255, nes atmega PWM laikmatis yra tik 8 bitai, o mes nustatykite PWM signalą naudodami „Arduino“ funkciją „ analogWrite“) . galiausiai išspausdiname reikšmes į nuoseklaus monitoriaus langą, kad sužinotume valdymo signalo diapazoną. Jei laikotės šios mokymo programos, vaizdo įrašas pabaigoje suteiks aiškesnę idėją šia tema.
sensorValue = analogRead (analogInPin); // skaitykite analogą reikšme: outputValue = map (sensorValue, 0, 1023, 0, 255); // susieti jį su analoginio išėjimo diapazonu: analogWrite (analogOutPin, outputValue); // pakeisti analoginio išėjimo vertę: Serial.print ("sensor ="); // išspausdinti rezultatus į „Serial Monitor“: Serial.print (sensorValue); Serial.print ("\ t output ="); Serial.println (outputValue);
Kintamosios srovės fazinio kampo valdymo grandinės testavimas
Aukščiau pateiktame paveikslėlyje parodyta grandinės bandymo sąranka. 12 V maitinimą teikia 12 V SMPS grandinė, apkrova mūsų atveju yra lemputė, ją galima lengvai pakeisti \ induktyvia apkrova kaip ventiliatoriumi. Taip pat, kaip matote, aš pritvirtinau potenciometrą, kad galėčiau kontroliuoti lempos ryškumą, tačiau jį galima pakeisti bet kokiu kitu valdikliu, jei priartinsite vaizdą, matysite, kad puodas yra prijungtas prie „Arduino“ A0 kaištis ir PWM signalas ateina iš „Arduino“ pin9.
Kaip matote aukščiau esančiame paveikslėlyje, išėjimo vertė yra 84, o kaitrinės lemputės ryškumas yra labai mažas,
Šiame paveikslėlyje galite pamatyti, kad vertė yra 82, o kaitrinės lemputės ryškumas padidėja.
Po daugelio nesėkmingų bandymų sugebėjau sugalvoti grandinę, kuri iš tikrųjų veikia tinkamai. Ar kada susimąstėte, kaip bandymų stendas atrodo neveikiant grandinei? Leisk man pasakyti, kad tai atrodo labai blogai,
Tai yra anksčiau sukurta grandinė, prie kurios dirbau. Teko visiškai išmesti ir padaryti naują, nes ankstesnė šiek tiek neveikė.
Kiti patobulinimai
Šioje demonstracijoje grandinė pagaminta ant rankų darbo PCB, tačiau grandinę galima lengvai sukonstruoti iš geros kokybės PCB. Mano eksperimentų metu PCB dydis yra tikrai didelis dėl komponento dydžio, tačiau gamybos aplinkoje jis galima sumažinti naudojant pigius SMD komponentus. Savo eksperimentuose pastebėjau, kad 7555 laikmačio naudojimas vietoj 555 laikmačio labai padidina kontroliuojamą, be to, padidėja grandinės stabilumas.