Kuidas UPS uuele elule ärkas

Mõnikord on nii, et keegi tuleb mingi ideega välja ja ilma pikema mõtlemiseta ütled, et teeme ära. Nii oli ka selle AK sooviga juhtida kahte võrgust köetavat lampi (Ma ei hakka siin rääkima millised need kaks lampi olid, sest siis peaks väikesed lapsed teise tuppa viima). AK jutust võib jääda natuke ekslik mulje, et vana UPS toodigi minu tuppa ja peale paari raja tinaga ühendamist oligi soovitud tulemus käes. Kahjuks päriselus pole kõik nii lihtne. Kui päris aus olla, siis see UPS ei oma antud asja juures eriti suurt tähtsust. Aga nüüd asja juurde.

Nagu tavaliselt algavad kõik asjad spetsifikatsioonist. Antud projekti pojukese juures oli asi küllaltki lihtne. Oli vaja lihtsalt kahte väikese võimsusega koormust kontrollitavalt ühendada elektrivõrku. See elektrivõrku ühendamine pidi olema kontrollitud PC poolt. Kohe alguses sai ära otsustatud, et lampide lülitamine tuleb releedega ja arvutiga liides on vana hea RS232. Mikrokontrolleriks, mis sööb RS232-te ja juhib releesid sai valitud Atmeli Atmega88 kahel põhjuselt. Esiteks olin ma seda mitmeid kordasid edukalt kasutanud ja teiseks oli antud kontrolleril kõik ettenähtud lihtsalt teostatav. Silmas tuleb pidada, et antud juhul oli meil tegemist prototüübi tegemisega, kus riisvara hind ei oma suurt tähtsust. Kui tegemist oleks tootmisesse mineva asjaga, siis omaks mõtet ajaline panus kasutamaks odavamaid, kuid ebamugavaimaid lahendusi.

Esimene samm oli siis kogu see kompott peas natukene läbi seedida ja teha riistvara skeem. Viimasel ajal olen skeemide ja PCB tegemiseks kasutanud sellist industrial grade softi nagu Altium Protel (DXP). Kui keegi küsiks kust said, siis vastus oleks, et jumal andis. Skeem ise kukkus välja selline ja suurema skeemi saab siit või pildil klõpsides:
Relay Board Schematic

Kõige pealt oli tühi ruum ja siis tuli toiteplokk. Toiteploki osa tegemiseks kasutasin ma väikest plaadile joodetavat trafot EI305 2878 (2,3 VA ja 6V väljund). See trafo sai valitud põhjusel, et planeeritav voolutarve pidi olema umbes 200mA ja mikrokontrolleri toiteks oli vaja +5V toidet. Pinge alaldamiseks kasutasime kõige lihtsamat ühe dioodiga poolperiood alaldit, mille väljund oli silutud suure 2200 uF elektrolüüdiga. Selle kondeka pealt võtsime ka toite relee mähiste toiteks, sest see ei pea olema väga silutud ja täpselt paigas. Mikrokontrolleri ja RS232 nivoomuunduri jaoks +5V tegemiseks kasutasime pingeregulaatorit 78L05 (U2).
Selleks, et mikrokontrolleri TTL nivoodel töötavait UARTi kasutada tuleb need pinged muundata vastavalt sellele mis on RS232 spekis ette nähtud. Lihtsamalt öeldult on TTL 0V vaja teha +12V ja TTL +5V teha –12V. Kõigeks selleks kasutasime MAX232 (U3) kivi analoogi. Mikrokontrolleri enda ühendamine on küllaltki triviaalsed. Toide, maa, reseti pullimine toitest, UARTi sisend/väljund, kaks digitaalset väljundit releede ja kaks valgusdioodide juhtimiseks.

Relee sisse lülitamiseks tuleb relee mähisest lasta läbi umbes 100mA suurust voolu. Selle tegemiseks kasutame transistor lülitit (Q1,Q2). Kuna relee induktiivsuse transistoriga lahtiühendamisel indutseerib kustuv magnetväli kõrge pinge ahelasse, tekitab kasvav pinge transistoril elektrilise läbilöögi. Selle ärahoidmiseks on paralleelselt relee mähistega ühendatud kaitsedioodid (D2,D3) nii, et kui pinge läheb ahelas üle toitepinge, siis hakkab diood juhtima ja pinge kasv peatub. Releed SP CO 6 Vdc ise olid ühepoolsed ja maksimum vooluga 10A, mis oli rohkem kui küll antud rakenduse jaoks.

Kuna nüüd oli skeem koos võis vajalikud jupid Tevalost ära tellida. Kuna trükkplaadi enda tegemiseks oli vaja teada mõningate detailide jalgade asetust, siis vahelduseks kirjutasin mikrokontrolleri tarkvara valmis.

ATmega mikrokontrollerite tarkvaraarenduseks vajaminevad vahendid on kõik vabalt saadaval ja väga hea kvaliteediga. Kui tõsine mikrokontrollerite sõber ootaks nüüd erinevaid huvitavaid ASMi ridasid, siis kahjuks peab ta seekord pettuma. Antud juhul on märksõnadeks Eclipse, GCC, make ja C. Ma ei hakkaks see kord täpsemalt rääkima kuidas ATmega arenduskeskkond C jaoks ülesse sättida ja räägiks sellest mõni teine kord. Antud programmi keerukusastet arvestades tegime main funktsiooni lihtsalt ühe while tsükli, mille alguses loetakse stdio-st string ja stringi sisust olenevalt lülitatakse releesid sisse või välja. Stringist lugemise funktsiooni tegin ise põhjusel, et olemaolev c teegi scanf ei toeta keerulisemat funktsionaalsust. Minul oli vaja, et stringi sisse lugemine loetaks rida lõppenuks, kui saabub \r või \n sümbol. Lisaks ei tohiks ka üle stringi puhvri serva kirjutada. Nagu ilmselt tähelepanelik lugeja juba märkas käib jutt stdio-st ja kõige tavalisematest c teegi stringifunktsioonide kasutamisest. Selle võimaldamiseks tuleb stdio sisend ja väljund funktsioonid ümber defineerida kasutamaks meie mikrokontrolleri UART riistvara. Aga eks iga kood räägib põhiliselt iseenda eest ja näha saab seda siit.

Mõninga aja pärast saabus ka pakk Tevalost, kus kõik vajalikud jubinad ja sai hakata trükkplaadile radasid vedama. Nüüd siis lõpuks tuleb mängu see kurikuulus UPS. Kuna meil oli vaja tehtav skeem kuskile paigutad esteetilisel ja praktilisel viisil, siis UPSi korpus oli nagu rusikas silmaauku. Antud UPSi korpus omas piisavalt vaba ruumi ja pistikuid lampide ühendamiseks. Ilmselt tekkis tähelepanelikul lugejal küsimus, et kuidas üks tegus UPS otsad annab? Eks ikka lilli kastes ja naiste läheduses.

Skeem ise sai siis tehtud silmas pidades võimalust teha ühepoolne “sinise” paberi tehnoloogial baseeruv plaat. Kuna plaadi ülemisel poolel peab rajad vedama käsitsi traadi abil, siis tuleb nende arv viia miinimumini. Seekord sain ma hakkama vaid ühe ülemise rajaga. Radade laius ja padide suurus sai valitud sobilik meie söövitamise tehnoloogiale. Radade vedamise tegin puhtalt käsitsi, sest automaatne radade vedamine ei ole piisavalt hea ühepoolse plaadi puhul. Tulemuseks igal juhul oli selline asi:
PCB suur

Selleks, et hõlbustada õiges mõõtkavas väljatrükki on tulemused trükitud PDF faili ja peaks olema pildil klikkides kättesaadavad.

Hõlbustamaks hilisemat detailide jootmist plaadile on olemas ka kooste skeem:
PCB kooste
Peale mõningat triikimist ja keetmist koduses köögis oligi valmis ilus läikiv plaat. Peale seda sai tükid plaadile joodetud ja mikrokontroller programmeeritud ennem plaadi pessa surumist.

Tulemuseks oligi selline asi:
Lahang

Igal juhul releed plõksusid, lambid põlesid ja see unustamatu puna-hele-roheline valgus. Ahjaa mis siis lõpetuseks öelda? Kui teil on oma ajaga midagi targemat teha, siis tehke seda ja ostke hoopis www.olimex.com -ist omale ADuC-IO7020 DEVELOPMENT BOARD. Mis aega puutub, siis kokku läks ehk paari päeva jagu nokitsemist.

Leave a Reply

Your email address will not be published. Required fields are marked *