Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Cyfrowy termometr z quasi-analogową skalą by bsw

bsw 08 Gru 2017 23:56 4935 11
  • Cyfrowy termometr z quasi-analogową skalą by bsw
    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 ;-) ). Pozostała po nim drewniana deseczka-skala, której żal mi było wyrzucać. Postanowiłem tchnąć w nią nowe, cyfrowe życie.
    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.
    Cyfrowy termometr z quasi-analogową skalą by bsw




    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.
    Cyfrowy termometr z quasi-analogową skalą by bswCyfrowy termometr z quasi-analogową skalą by bswCyfrowy termometr z quasi-analogową skalą by bswCyfrowy termometr z quasi-analogową skalą by bsw
    [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)
    Cyfrowy termometr z quasi-analogową skalą by bswCyfrowy termometr z quasi-analogową skalą by bswCyfrowy termometr z quasi-analogową skalą by bsw


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz pendrive 32GB.
  • #2 09 Gru 2017 00:08
    22053
    Użytkownik usunął konto  
  • #4 09 Gru 2017 00:34
    22053
    Użytkownik usunął konto  
  • #5 09 Gru 2017 13:06
    ArturekAbdulek
    Poziom 11  

    Oj tam.. Proszę tak nie krytykować. Projekt jak najbardziej pomyslowy i za to chwalić trzeba. Kwarc nie potrzebny jeśli zasilanie bateryjne-na wewnętrznym taktowaniu bateria by dluzej trzymała ale i tak w większości czasu termometr uśpiony to nie ma co sie czepiać.

  • #6 09 Gru 2017 13:19
    22053
    Użytkownik usunął konto  
  • #7 09 Gru 2017 15:36
    simw
    Poziom 19  

    R-MIK napisał:
    Jak się odłączy DS18B20 to co pokazuje termometr?

    Po co ma odłączać ten czujnik, przecież jest zintegrowany z całym modułem?
    Gdybyś zapytał: co pokaże moduł gdy czujnik się zepsuje, to by miało jeszcze jakiś sens, a tak to Twoje pytanie kwalifikuje się do szukania dziury w całym :)

    Co do projektu, to fajny, pomysłowy sposób wykorzystania starego termometru. Do tego schludnie wykonany i nawet pożyteczny.

  • #9 10 Gru 2017 21:53
    bsw
    Poziom 15  

    Dziękuję wszystkim za komentarze. Przepraszam że wcześniej nie odpisałem, ale byłem bez komputera.

    Projekt był przeze mnie robiony na "wariackich papierach" w trzy wieczory. Chciałem zdążyć przed końcem terminu końca konkursu - opublikowałem go dosłownie rzutem na taśmę. Kwarc istotnie nie jest potrzebny wmontowałem go na zapas a teraz wymontowałem - po przestawieniu FUSEów wszystko działa bez zarzutu.

    Co do samego działania. Po naciśnięciu przycisku natychmiast zapala się dioda wskazująca "0", a dopiero później właściwe wskazanie (przez kilka sekund). Jeśli będzie problem z czujnikiem to pozostanie wskazanie "0". To ma jest termometr pokojowy czyli użyteczny zakres temperatur jest od kilkunastu do kilkudziesięciu stopni Celsjusza . (Skala jest od zera aby słupek się lepiej prezentował). Zatem łatwo się zorientować że coś jest nie tak z termometrem jeśli cały czas wskazuje 0 stC. Zresztą wskazanie 0 stC będzie również dla temperatur niższych od zera, a podobny problem będzie dla temperatur większych od 35stC :-)

    Wartość pobieranego prądu przy uśpieniu jest praktycznie niemierzalna.

    Jeszcze co do ewentualnych pytań dot. samego procesu wykonania:
    Płytka zaprojektowana w Eagle, przygotowana metodą "żelazkową", program napisany w C (AVR GCC) - pady do wlutowania programatora są obecne na płytce. Jak się "ogarnę" dołączę pełną dokumentację.

  • #10 11 Gru 2017 20:58
    mkpl
    Poziom 37  

    100uA będzie gdzieś tyle pobierał procesor w stanie uśpienia. Trzeba też pamiętać, że dallas też swoje bierze bo zasilany jest 3 przewodowo.

    Ba nawet stosując BC547 lub podobny jako klucz zasilania będzie pobierał prąd. BC bodaj ma przeciek między C i E na poziomie 15 czy 25uA. Mały prąd ale jednak prąd i w skali roku znaczący.

    Kwarc może być z sensem wymieniając go na 1MHz albo nawet zegarkowy będzie pobierał mniej prądu niż generator RC w procesorze.

  • #12 20 Gru 2017 11:54
    bsw
    Poziom 15  

    Dziękuję wszystkim za uwagi.

    Zmodyfikowałem nieco układ termometru:
    - zrezygnowałem z kwarcu
    - zmodyfikowałem zasilanie czujnika na pasożytnicze
    Zmierzone zużycie prądu w trakcie uśpienia to 3uA - zdecydowałem zatem przyciężki koszyczek 2xAAA zastąpić klipsem CR2032.

    Dodałem też załącznik z obiecanymi materiałami źródłowymi.