Per naujų metų sveikinimą panaudojau šią iliustraciją:
Tai vieno nixio laikrodis. Visos detalės tipinės, hardwarėje nieko specifinio. Vienintelė naujovė- viskas valdoma vienu mygtuku. Kadangi reikia daugiau funkcijų, tai mygtukas atskiria “trumpą” ir “ilgą” paspaudimą.
Dar vienas skirtumas- RTC panaudotas iš kažkokio DVRo. Tai Dallas Semiconductors/Maxim čipas DS1338. Jis turi “tick” išėjimą kuris užprogramuotas 1s impulsams ir aktyviai naudojamas programos. Dar naudojama IPS511G mikroschema- smart switch, kuri tik reikiamu metu įjungia aukštos įtampos šaltinį. Lempa didoka, o ir keitiklis nėra labai ekonomiškas. Todėl kai nenaudojama lempa, iš ~7V maitblokio srebia apie 14mA srovės, tačiau kai užsikuria lemputė, srovė užkyla iki maždaug 290mA. Jei neišjunginėti maitinimo, tai raktinis FETas kiek kaista ir jaučiasi šiluma per korpusą. Naudojant atjungimą viskas spėja ataušti.
Laikrodis kokias 7 sekundes nieko nerodo, poto parodo valandas ir minutes nuosekliai. Kiekvienas skaičius rodomas vieną sekundę.Daromos nedidelės pauzelės, kad matytusi kaip keičiasi skaičiai net tada, kai laikrodis turi rodyti tą patį skaitmenį.
Norint iš karto pažiūrėti laiką, reikia nuspausti trumpam mygtuką, tada laikrodis pradeda skaičių rodymo ciklą. Jei niekas neliečiama, skaičiai atsiranda savaime.
Norint nustatyti laiką, reikia spausti ir palaikyti mygtuką. Tada laikrodis rodo visus skaičius iš eilės ir nesiblaško tarp jų. Tada trumpu nuspausdimu galima padidinti skaičius. Penktas ilgas nuspaudimas išjungia nustatymo režimą. Tai indikuojama “vaiduoklišku” švytėjimu (ne visos nixies tai padaro)- visa lempa truputi švyti, bet konkrečių skaičių nerodo. Tai gaunama paduodant aukštą įtampą, bet nejungiant jokio segmento. Per parazitines talpas ir rezistorius yra įtampos nutekėjimas ir lempa švyti.
Kiek apie softą: naudojami trys darbiniai algoritmai vienu metu:
Pirmas- sekundinis “tick” iš RTC mikroschemos per INT0 koją. Čia beveik viskas ir atliekama: nuskaitomas RTC, pagal mygtuko reikšmę atliekamos funkcijos, rodomas laikas.
Antras- taimeris. Čia, neatsimenu kokiu intervalu dirba, bet čia pagal mygtuko rezultatą persijungia režimai. Taip pat generuojama “kintama” įtampa nixio uždegimui per kondensatorių. Taip uždegiamas indikatorius, nes išjungiant aukštos įtampos šaltinį įtampa “pasibaigia” ne iškarto, o poto, kai išsikrauna kondensatorius. O dar, čia galima reguliuoti nixio švietimo ryškumą.
Trečias- pagrindinis ciklas. Čia tikriausiai reikėtu irgi panaudoti kitą taimerį, bet šioje softo versijoje daromas sisteminis mygtukų būklės apklausimas kas 10ms.
Ir aišku:
Single nixie RTC clock with single button control. Source code and hex.