Projekto tikslai
Laikmatis / galios reguliatorius skirtas tinklo įtampa (220 V) maitinamų įrenginių galios bei įjungimo laiko valdymui. Pavyzdžiui, lituoklio temperatūros reguliavimas, UV lempos išjungimas po nustatyto laiko (gaminant PCB).
LED indikatorius
Darbo režimai
Galimi trys darbo režimai:
- Galios reguliavimas – reguliuojama į apkrovą paduodama galia ( 0 ÷ 100 %);
- Laikmatis – apkrova atjungiama po nustatyto laiko ( 1s ÷ 999 min);
- Laikmatis / galios reguliavimas – kombinuotas režimas. Reguliuojama galia ir po nustatyto laiko išjungiama.
Prietaiso valdymas
Informacijos išvedimui panaudotas trijų skilčių 7-ių segmentų LED indikatorius. Išrinktą darbo režimą bei prietaiso būseną (apkrova įjungta / išjungta) indikuoja trys papildomi šviesos diodai. Režimo išrinkimui, galios bei laiko nustatymui ir apkrovos įjungimui / išjungimui skirti trys mygtukai.
Šviesos diodai
1 pav. Šviesos diodai
Šviesos diodas ON/OFF rodo apkrovos būseną – Įjungta / Išjungta.
POWER – įjungtas galios reguliavimo režimas.
TIMER – įjungtas laikmačio režimas.
Jei šviečia ir POWER ir TIMER – įjungtas kombinuotas režimas.
LED indikatorius
Į apkrovą paduodama galia procentais (2 pav.):
2 pav. Galios indikacija
Nustatytas darbo laikas.
Jei laiko trukmė mažiau nei 10 minučių – sekundžių tikslumu (3 pav.):
3 pav.
Jei laikas nuo 10 minučių iki 100 minučių – dešimties sekundžių tikslumu (4 pav.):
4 pav.
Jei laikas nuo 100 iki 999 minučių – minutės tikslumu (5 pav.):
5 pav.
Valdymo mygtukai
6 pav. Valdymo mygtukai
Mygtukas ON/OFF skirtas apkrovos įjungimui / išjungimui.
Mygtukas + didina į apkrovą paduodamą galią arba darbo laiką. Galios reguliavimo režime vienas mygtuko paspaudimas padidina galią vienu procentu. Palaikius nuspaustą mygtuką, galia pradedama didinti automatiškai, kol mygtukas laikomas nuspaustas arba kol pasiekiama 100 %. Taimerio režime vienas mygtuko paspaudimas padidina laiką 1 sekunde, jei laikas 0 ÷ 9,99; 10 sekundžių, jei laikas 10,0 ÷ 99,5; 1 minute, jei laikas 100 ÷ 999. Palaikius nuspaustą mygtuką, laikas pradedamas didinti automatiškai, kol mygtukas laikomas nuspaustas arba, kol pasiekiamos 999 minutės. Automatinis laiko didinimas keičia žingsnį, priklausomai nuo įvesto laiko ir mygtuko paspaudimo trukmės. Galimi žingsniai – 1 s, 10 s, 1 min., 10 min.
Mygtukas - mažina į apkrovą paduodamą galią arba darbo laiką. Valdymas analogiškas + mygtukui.
Paspaudus kartu + ir -, keičiamas darbo režimas. Išrinkus galios reguliavimo režimą, indikatoriuje rodoma nustatyta galia. Išrinkus laikmačio režimą, indikatoriuje rodomas nustatytas laikas. Galios ir laikmačio režime nustatytas reikšmes (galią ir laiką) galima keisti ir esant įjungtai apkrovai. Kombinuoto režimo nustatymai įvedami taip: įjungiamas galios režimas, nustatoma reikiama galia, perjungiama į laikmačio režimą, nustatomas reikiamas laikas, tada perjungiama į kombinuotą režimą ir mygtuku ON/OFF įjungiama apkrova. Kombinuotame režime mygtukais + ir - išrenkama ką rodyti indikatoriuje: paspaudus +, rodomas nustatytas ar likęs (jei apkrova įjungta) laikas, paspaudus –, rodoma galia.
Išjungus prietaisą iš tinklo, darbo režimai bei jų parametrai išsaugomi EEPROM atmintyje. Vėl įjungus, bus atstatytas paskutinis darbo režimas bei jo nustatymai. Po įjungimo į tinklą, apkrova visada išjungta.
Mikrokontrolerio programa
Mikrokontrolerio programa parašyta C kalba, panaudotas „WinAVR“ 20050214 kompiliatorius.
Galios reguliavimas
Paduodama galia reguliuojama keičiant atidaryto ir uždaryto tiristoriaus laikų santykį (t. y., imamas tam tikras laiko periodas T ir dalį laiko tiristorius uždarytas – t OFF, dalį atidarytas – t ON). Kuo ilgiau tiristorius atidarytas, tuo didesnė galia per periodą T perduodama į kaitinimo elementą.
7 pav. Temperatūros reguliavimo metodas
Šiame reguliatoriuje kontroleris neseka tinklo įtampos perėjimo per 0, ir valdymo signalas gali būti paduotas bet kurioje pusperiodžio vietoje. Tiristoriaus atsidarymą perėjimo per 0 metu užtikrina elementas MOC3063 (Zero Voltage Crossing triac driver). Jei vietoj šio elemento įdėsite kitą, kuris neturi perėjimo per 0 kontrolės, tiristorius galės būti atidarytas be kuriame tinklo įtampos pusperiodžio taške. Taip daryti nerekomenduojama, nes toks reguliatorius gali skleisti trikdžius į eterį bei elektros tinklą.
Matome, kad mažiausia galios „porcija“, kuri gali būti paduota į lituoklio kaitinimo elementą tokio tipo reguliatoriuje, lygi galiai perduodamai per vieną tinklo įtampos pusperiodį. Siekiant padidinti reguliavimo diskretiškumą, reikia didinti pasikartojimo periodo T ilgį (pvz., jei T lygus dešimčiai tinklo įtampos pusperiodžių, galėsime reguliuoti tik 10 % diskretiškumu, 8 pav.). Šiame reguliatoriuje T lygus 20 s, TIMER1 pertraukimas ( f=5 Hz) dalina jį į 100 dalių, todėl galią reguliuojame kas 1 %. Siekiant tolydesnio reguliavimo, tiristoriaus atidarymo laikas nėra sukoncentruotas periodo pradžioje (8 pav. A), o tolygiai išdėstytas (8 pav. B). Valdymo impulsų tolygus išdėstymas periode T apskaičiuojamas panaudojant Bresenham’o algoritmą.
8 pav.
Galios valdymo algoritmas realizuotas TIMER 1 pertraukimo paprogramėje. TIMER 1 pertraukimas suderintas 5 Hz dažniui.
Bresenham’o algoritmo demonstravimui pateikiama AK programa Bresenham.exe bei jos tekstas C kalba.
9 pav.
Indikacija
Naudojama dinaminė indikaciją, t. y., vienu metu šviečia tik vienas skaitmuo. Indikacijos valdymas realizuotas TIMER 0 pertraukimo paprogramėje. TIMER 0 pertraukimas suderintas 200 Hz dažniui.
Darbo režimo išsaugojimas EEPROM’e
Išjungus prietaisą iš tinklo, darbo režimai bei jų parametrai išsaugomi EEPROM atmintyje. Šiam tikslui panaudotas vidinis ATMEGA8 komparatorius. Teigiamas komparatoriaus įėjimas AIN0 prijungtas prie vidinio atraminės įtampos šaltinio (Internal Voltage Reference). Šaltinio parametrai:
10 pav.
Neigiamas komparatoriaus įėjimas AIN1 prijungtas prie įtampos daliklio R21-R22. Išjungus prietaisą iš elektros tinklo, daliklio įtampa krinta ir kai vidinė atraminė įtampa (prijungta prie AIN0) pasidaro didesnė už daliklio įtampą (prijungta prie AIN1) suveikia komparatorius pertraukimas, ir pertraukimo paprogramė įrašo darbo režimą bei jo parametrus į EEPROM.
Mygtukų nuskaitymas
Mygtukų būsenos nuskaitomos TIMER 0 pertraukimo paprogramėje (200 Hz dažniu). Būsenų apdorojimas (apsauga nuo kontaktų drebėjimo, trumpo ir ilgo paspaudimo atskyrimas) atliekamas pagrindinėje programoje.
Principinė elektrinė schema
Realizacija
Prietaiso nuotraukos:
Programinė įranga
- ATMEGA8 programa.
- Kompiliatorius - WinAVR 20050214.