ARM43: Parduoto gyvenimo laikrodis

Bevaikščiojant po …lobyną, pamačiau nerusišką matuoklį. Kodėl jis “nerusiškas”? Ogi todėl, kad jis elegantiškas, gražus, matuoja velniai žino ką ir yra ne rūsiškas. 🙂

Skalė matuoja kažką nuo nulio iki dėvynių. Benešant iš sandėlio kilo mintis. Besidalinant mintimis su žmonėm vienas netgi iškarto pasakė- padarai, perku už 100€. Bet ir pačiam mintis patiko.
9h laikrodis
Tai parduoto gyvenimo laikrodis. Kiekvieną rytą, darbo metu jis rodo nuo 9 ir po truputi mažėja iki nulio. Lygiai penktą valandą po pietų, matuoklio rodyklė priartėja prie nulio ir daugiau nekruta iki kito ryto. Nuotraukoje jis toks nučiupinėtas, nes ką tik pagamintas ir nenuvalytas.

O ir kita pusė dar neišbaigta:
9h laikrodis
Čia jau biški daugiau nedadaryta. Tiesa, bus čia panelė, kuri beveik viską uždengs. Nes dabar beklijuojant susigadimo USB lizdelis ir reikės kažkaip perdaryti. Tikrai bus gražiau ir nesimatys laidų kušelyno.

Laikrodžio galimybės- aišku RTC su baterėja. Galima maitinti iš USB arba iš beveik bet kokio išorinio maitinimo šaltinio. Yra trys mygtukai laiko nustatymui ir darbo pradžios surašymui. Nedidelis OLED ekraniukas nustatymo metu rodo laiką ir režimą. Po minutės kitos, OLED ekranas išjungiamas.
Nuotraukoje nelabai matosi, bet skalė vos vos pašviečiama žaliais šviesos diodais.
Galima visus nustatymus sukrauti su kompiuteriu per USB, ypač taip patogu sinchronizuoti laiką. Deja, nėra hardwarinio kalendoriaus, todėl nėra vasaros – žiemos laiko ir šventinių dienų. Programinį kalendorių patingėjau rašyti dėl STM32F103 kvailumo.

Apie softą- standartinis STM32CubeMX kratinys. RTC, PWM, keli GPIO, I2C. Iš hardwarės- mano “white pill” plokštė su STM32F103RET6, LM7805 stabilizatorius jei kils noras maitinti iš kokių nors 12V. Ar buvo galima padaryti su baterija? Nu nelabai, rodyklė nori iki 20mA srovės.

Softas (STM32F103 šeimai) yra GitHube. Tai mano pirmas viešas GitHubas. Prašom gailėti mano jautrią sielą.

5 replies on “ARM43: Parduoto gyvenimo laikrodis”

  1. Geras 🙂 Skalei, kad matytųsi ir esant sunkiom darbo sąlygomis (o tokios ir būna darbo valandos – mašinų skyrius, tamsus ofisas, dingstanti elektra etc.) galima panaudoti tamsoj švytinčius “fosforinius” dažus (būna aerozolis kad ir senukuose), jie beveik kaip lakas – juodi ciferblato užrašai lieka matomi, asiranda tik vos gelsvas atspalvis. Tiuningavau kelis senus matuoklius rekvizitui. Išėjo puikiai – kaip seni laivo prietaisai. O tada dar galima pašviesti UV…

  2. apie schemą:

    schema
    Schemoje nėra mažųjų kondensatorių, diodo prie batareikos. Rezistorių prie USB. Ir dar elektrolito prie 7805.

    Srovė generuojama su PWM, ir prie esamo dažnio, empiriškai formulė tokia:

    pwm=(32400+starttime-nowseconds); //9h+starttime-now. Reziuose gaunasi 32400-0
    pwm=(pwm*214)/1000+1520;

    Kalibravosi taip- per USB siunčiama PWM komanda ir surandam per visus skaičius reikiamas PWM vertes, toliau su Excel/LibreOffice susiskaičiuojam tiesinę priklausomybę. Nedidelės paklaidos ir INTEGER matematika nedaro didelės įtakos parodymams.
    Maždaug 70 omų rezistorius prie miliampermetro skirtas tik išplėsti PWM skaičiams, ir net dabar PWM kinta nuo 1520 iki ~8502, t.y. žymiai mažiau nei galima išspausti iš 16 bitų.
    Tik dabar pagalvojau, kad reikėjo skaičiuoti dalybą iš 1024, o ne iš 1000. Nors prie esamų procesoriaus galingumų tai nieko nereiškia.

    Schema kiek paprastesnė nei pas Dainių, nes visą derinimą perkėliau į “digital domain”. Beja, irgi buvo mintis daryti autokalibraciją su ADC/DAC variantais, bet nusprendžiau, kad gerai bus ir empirinė skaitmena. Užtenka LT1117 stabilizatoriaus tikslumo.

  3. Projektas įdomus, reiks gal irgi pasidaryt. Kitas klausimas – tarp lobyno daiktų nebuvo kartais 1KW ultragarso šaltinio? 🙂 Beveik 2 mėnesius nebuvau darbe, tai kolegos “sutvarkė”, šiek tiek panašių indikatorių ir visokių kitokių daigtų. Neturiu kur jo panaudot, bet gal bent į geras rankas papuolė?

Leave a Reply

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