Felch’i kodukas

Minu esimene akvaariumi kontroller

Üks noor elektroonikahuviline olla alustanud nii, et konstrueeris oma küüliku puuri taimeriga automaatsöötja. Kõik töötas kenasti, kuid skeemi koostamisel ei arvestatud sellega, et sööginõu võib millalgi tühjaks saada. Nii paraku juhtunudki ja vaene jänku pidi mõnda aega kaalujälgija olema…

                 On selge, et automaatikat piiritult usaldada ei saa, kuid eks ta tee elu omajagu mugavamaks küll. Näiteks akvaariumi tulede sisse- ja väljalülitamine on kasulik automatiseerida. Samuti temperatuuri hoidmine ja ehk ka söötmine. Siis saab rahumeeli puhkusele minna, jättes protsessori koduloomade pudrumolli ja heaolu eest hoolitsema.

                 Kontroller töötab hästi - kalad elus ja kasvavad, nii et ruumi kipub väheks jääma.

                 Mida skeem võimaldab?

valgustuse sisse/väljalülitamine etteantud aegadel (2 aega päevas);

hoiab temperatuuri etteantud väärtusel (piiratud vahemikus 19…28°C);

juhib söötemehhanismi magnetit, kuni kolm toitmisaega päevas;

veesoojendaja blokeerimine (menüüst) akvaariumi puhastamise ajaks;

kellaaja ja vee temperatuuri näit 8-kohalisel LCD-displeil;

seadete muutmine menüüde kaudu, kuvatakse samale LCD-le;

kella mikroskeem töötab ka voolukatkestuse korral edasi.

Skeemist

 

                 Kontrolleri südameks on Atmeli (www.atmel.com) flash-mäluga protsessor AT89C2051 (vt. skeemi). Taktsagedus määratakse kvartsiga X2 (12MHz), kuid seda võib muuta nii üles- kui ka allapoole, sagedusest sõltuvaid juppe koodis ei ole.

Vaatamata elektri hinna pidevale kasvule on vool seinakontaktis ikka vahelduv – kord on ja kord ei ole. Vähemalt kontrolleri taimer peaks voolukatkestused üle elama.

UPSi akvaariumi alla ei tahaks riputada – ikkagi märjaks saamise oht! Seepärast kasutan skeemis kunagise Dallase (nüüd vist Maximi poolt ära ostetud?) spetsiaalset kellakivi DS1307. Mikroskeemi hea omadus on see, et ta on mõeldud voolu kadumisel töötama ka oma 3V-se patarei pealt. Puuduseks on muidugi suhteliselt kõrge hind. Mikroskeemi juhitakse ja kellaaega loetakse üle kahejuhtmelise nn. I2C siini. Sellega tegeleb eraldi lõiguke protsessori koodis. Aja etaloniks on tavaline „kellakvarts“ X1.

 

Aqua-1 elektriskeem

Troopikakalad tahavad suhteliselt kõrget veetemperatuuri: 25..28°C, mõni liik rohkemgi. Kui suvel võiks kütte välja lülitada, sest toatemperatuur on piisavalt kõrge, tuleb talvel vett kindlasti soojendada.

Zookauplustes on termoregulaatoriga akvaariumi­soojendeid saadaval piisavalt. Paraku  kipuvad nad olema üsna ebatäpsed: skaala puudub sootuks ja termomeetri ning lüliti funktsioone täitev bimetallplaadike ei ärata usaldust. Oma kogemused räägivad 3-st „kokku jooksnud“ isendist. Kes teab, vahest on mulle lihtsalt  juhtunud aastalõpu toodangu eksemplarid, kuid uhaad oma vee-elukatest keeta ka ei tahaks. Niisiis: jätame vee temperatuuri eest hoolitsemise kontrolleri hooleks.

Soojenduselemendina võiks kasutada sama zookauplusest ostetud kuumutajat. Seame ta temperatuuri umbes 28 kraadile. Kui nüüd kontroller peaks segi minema ja kütte sisse „unustama“, ei luba soojenduselement ise temperatuuril liiga kõrgele tõusta. Topeltkaitse! Tõsi, püüdsin koodi nii kirjutada et soojendi ei saaks peale jääda. Siiamaani ei ole jäänud ka.

Termomeetriks on sama Dallase mikroskeem DS1820. Kivi väljastab infot juba digitaalsel kujul, mis teeb protsessoriga ühendamise mugavaks. Lisaks saab andureid ühele juhtmele ühendada mitu tükki, kuna igaüks neist reageerib vaid oma „nimele“ (aadressile). Peale kõige muu saab DS1820 (-id) toita otse andmesiini pealt. Tõsi, selles skeemis seda omadust ei kasutata.

Akvaariumis võib madalamates ja kõrgemates veekihtides tekkida lausa mitmekraadine temperatuuride erinevus, seega võib mitut andurit tõesti vaja minna. Kirjeldatav kontroller kasutab küll ühte andurit, kuid termomeetrite lisamine on suhteliselt lihtne. Kivi omadustest saab lähemalt lugeda võrguaadressilt: http://pdfserv.maxim-ic.com/en/ds/DS1820-DS1820S.pdf .

Valgusteid ja soojendust kommuteeritakse TIC226 tüüpi sümistoridega. Põhimõtteliselt saaks ka releesid kasutada, kuid nad tarbivad suhteliselt palju voolu. Valgus peab ju päev otsa sees olema. Sümistorlülititega skeemi puhul saab kasutada väiksemat (nii võimsuse, mõõtude kui ka hinna poolest) toitetrafot.

Kuna sümistorid on elektrilises ühenduses 220V vooluvõrguga, tuleb neid kuidagi ülejäänud skeemist eraldada. Selleks sobivad näiteks just sümistoride juhtimiseks kohandatud optronid MOC3020 (skeemil D1, D3).

Automaatsöötja mehhanism on omaehitatud ja sisaldab magnetit, mis avab hetkeks luugi toidunõu ees, lastes heal ja paremal haikalakeste toidulauale langeda. Magnetit lülitab transistorvõti Q4 ning Q3 sobitab pingenivood protsessoriga. Kuna toidujagaja solenoid saab voolu vaid lühikeseks ajaks, võib transistori jätta jahutusradiaatorita. Ka skeemi toitetrafo on seda arvestades aladimensioneeritud. Ei ole mõtet kasutada mitmekümne vatist toiteallikat, kui sellist võimsust tarbitakse 3 korda päevas ühe sekundi vältel.

Vajadusel saab magneti asendada releega, mis lubab juhtida mitmesuguse konstruktsiooniga söötmiseagregaate.

                 Viiest klahvist koosneva klaviatuuri kaudu käib kontrolleri suhtlemine välisilmaga. Vajutus annab protsessori pordile madala pingenivoo (nulli), väljaviigu sikutab +5V peale tagasi kivi sisemine pull-up takisti.

                 LCD juhtimisega tekkisid pisikesed probleemid – kontrolleri väljaviigud olid peaaegu „otsas“. Kui saata andmed protsessorist teele järjestikkujul ja teha nad 4094 tüüpi nihkeregistriga pralleelkoodiks, saab LCD info kätte. Aga juhtotsad RS (register select) ja E (enable).

Nende viikude tüürimiseks kasutan samu viike, mis järjestikinfo saatmisekski. Kui data on registris U3 kohal, võib ju siini kasutada LCD juhtotste lülitamiseks. Viimase „puuduva“ viigu tüürimiseks tuli appi võtta pisike kavalus. Kui järjestikinfot edastada piisava kiirusega, laadub kondensaator C4 andmete pealt läbi takisti R7 täis ja sunnib transistori avanema. LCD saab R/S juhtotsale signaali 1, mis teatab, et tegemist oli käsuga.. Aeglasema kiirusega infot edastades teavitame LCD-d faktist, et nüüd tulid andmed ( kondensaator C4 ei jõua laaduda piisavalt, et transistori avada).

Takistid R5 ja R6 on nn. pull-up takid: protsessori nendel otstel sisemisi takisteid ei ole. See on ka mõistetav, sest just need koivad on kivi  sisemise pingekomparaatori sisenditeks ja lisatakistid segaksid seadme tööd.

Potensiomeetriga VR1 muudame kirjade kontrasti ekraanil. Rohkem „häälestamist“ seade ei nõua.

Konstruktsioon sõltub valitud detailide mõõtmetest ning veel tuhandest ja ühest asjaolust. Seepärast siinkohal montaažiskeemi ei tooks. Kontrolleri prototüüp mahtus 10*10 cm suurusesse nn. kulokarpi ja ei nõudnud jahutusavasid. Monteerisin ta akvaariumi kaane alla, nupud ulatusid läbi kaane, displei kohal on väljalõige.

Üks puudus seadmel siiski on. Nimelt kuna lambid kütavad kalapurgi kaane soojaks, armastavad kassid selle peal tukkuda. Miskipärast meeldib neile eriti just LCD ja nupustiku peal magada. Ja et liigne valgus und ei segaks, keeratakse tuli lihtsalt ära… Koodi tuleks vist täiustada klahvilukuga.

Ilusaid akvaariume ja…ärge siis unustage kontrollida, kas automaatsöötjas ka toitu sees on!

Oskar kaladest und nägemas...

 

Kontrolleri Aqua-1 materjalid sikuta siit [102 kB]

Esileht