
Jakiś czas temu rozbił mi się pokojowy termometr, taki klasyczny z kapilarą (na szczęście nie był rtęciowy, zatem wizyta straży pożarnej nie była konieczna

Nowy termometr został zbudowany na jednostronnej płytce drukowanej w technologii smd z części z tzw. "przydasiów". Czujnikiem temperatury jest powszechnie znany DS 18B20 w wersji przewlekanej - tylko taki miałem (drugim przewlekanym elementem jest kwarc), mikrokontroler to poczciwy Atmel ATtiny2313. Ciekawostkę stanowi wyświetlacz wykonany z 36 diod LED, wskazujących temperaturę od 0-35 stC. Diody zostały rozmieszczone tak, aby pasowały do oryginalnej skali. Z uwagi na gabaryty tych diod zdecydowałem się na rozmieszczenie ich w dwu słupkach - lewy dla temperatur parzystych i prawy dla nieparzystych. Jak łatwo policzyć ilość portów mikrokontrolera jest niewystarczająca dla wysterowania takiej ilości diod, nie chcąc jednak niepotrzebnie komplikować układu (bufory, rejestry przesuwne itp.) zastosowałem tzw. charliplexing. W skrócie polega to na tym iż w danym ułamku sekundy jedno z wyprowadzeń mikrokontrolera jest podciągane do plusa zasilania, drugie do minusa; podczas gdy pozostałe "wiszą" w stanie wysokiej impedancji. Zatem n wyprowadzeń procesora wystarcza do wysterowania (n^2-n) diod. Zatem aby niezależnie obsługiwać 36 diod ( a nawet 42) wystarczyłoby zatem tylko 7 pinów. W praktyce, aby nie osłabiać ich jasności zbyt krótkimi oknami czasowymi zastosowałem 3 niezależne kanały po 12 diod i 4 piny procesora każdy.
Termometr zasilany jest napięciem 3V z dwóch baterii typu AAA umieszczonych w koszyczku, chociaż do zasilania wystarczyłaby nawet bateryjka CR2032. Procesor bowiem większość czasu pozostaje uśpiony, pobierając mikroampery prądu. Wybudzenie następuje po naciśnięciu monostabilnego przycisku, po czym następuje pomiar temperatury, wyświetlenie jej na ok. 5 sekund i ponowne uśpienie. W zależności od zmierzonej wartości temperatury - parzysta czy nieparzysta - zapala się tylko właściwy słupek - lewy lub prawy - z odpowiednią ilością diod.

Płytka drukowana oraz koszyczek są przykręcone do drewnianej skali termometru od spodu. Na wierzch wystaje tylko przycisk wyzwalający pomiar. Diody świecą przez wywiercone w deseczce otworki o średnicy 2mm. Deseczka skali jest dość gruba - ok 1 cm, bezpośredni odczyt przez te otwory byłby zatem dość utrudniony. Dlatego w każdy z otworków został wsunięty krótki odcinek światłowodu. Dzięki temu wskazanie temperatury tworzy na powierzchni deseczki ciąg świecących punkcików - taka guasi-analogowa skala.




[EDIT 2017-12-20]
Dzięki zawartym w tym wątku uwagom trochę przebudowałem termometr. Zrezygnowałem z kwarcu oraz zastosowałem zasilanie pasożytnicze czujnika DS18B20. Dzięki temu w trybie uśpienia układ pobiera zaledwie 3uA pradu. (W trakcie wyświetlania termperatury - ok. 7-10mA). Przy tak niskim zużyciu prądu koszyczek baterii 2xAAA zastapiłem klipsem na CR2032. Poniżej zdjecia ukłdu po przeróbkach oraz zaktualizowany schemat, a w załączniku obiecane materiały (pliki eagle = schemat + płytka oraz program = kod źródłowy c + wsad - Uwaga: należy wyłączyć FUSE DIV8)



Cool? Ranking DIY