Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Termometr low-cost na ATtiny25 i wyświetlacz

tmgofer 04 Jan 2008 14:07 16625 43
e-mierniki
  • Termometr low-cost na ATtiny25 i wyświetlacz
    Witam!
    Przedstawiam mój prosty lecz funkcjonalny termometr "Low-cost" do pomiaru temperatur w dwóch różnych punktach (np. wewnątrz mieszkania i na zewnątrz)

    Sercem układu jest procesor ATtiny25, czujnikami są znane i lubiane DS18B20 przyłączone do jednej lini danych (z powodu małej ilości pinów I/O procesora). Numery seryjne czujników są pamiętane w pamięci EEPROM.
    Wyświetlacz jest sterowany poprzez 4 rejestry SIPO (74HC164) połączone szeregowo, do których procesor wpisuje odpowiedni "obraz". Zmiana polaryzacji ekranu ciekłokrystalicznego następuje ok 70 razy na sekundę.

    Płytka PCB jest dwustronna, wykonana metodą żelazkową.
    Termometr low-cost na ATtiny25 i wyświetlacz

    Termometr low-cost na ATtiny25 i wyświetlacz

    Wolne miejsca - dziurki w które nic nie zostało wlutowane, zostały przygotowane do zamontowania stabilizatora 7805, pinów zasilających oraz kondensatora. Aktualnie jednak układ jest zasilany bezpośrednio z baterii 3,3V

    Po uruchomieniu pojawia się sekwencja powitalna: "CZESC" przejeżdżająca od prawej do lewej przez ekran.
    Urządzenie jest obsługiwane przez jeden przycisk. Rozróżnianie są 2 rodzaje przyciśnięcia:
    -Krótkie - powoduje przełączenie aktualnie wyświetlanej temperatury( Temperatura wewnątrz/ temperatura na zewnątrz)
    Aktualny wybór jest sygnalizowany napisem "in" lub "out"

    -Długie - powoduje przejście do statystyk, gdzie można uzyskać informacje o maksymalnej i minimalnej temperaturze wewnątrz i na zewnątrz od momentu ostatniego resetu.

    HI.i -> max. temp. wewnątrz
    LO.i -> min. temp. wewnątrz
    HI.o -> max. temp. na zewnątrz
    LO.o -> min. temp. na zewnątrz

    Obsługa jest łatwa i do tego dość intuicyjna.

    Dla zmniejszenia zużycia energii, procesor jest przez większość czasu w stanie uśpienia (IDLE) jedynie przerwanie od Timera wywoływane z częstotliwością ok 70Hz budzi go do zmiany polaryzacji wyśwetlacza. Pomiar temperatury jest wykonywany na obu czujnikach co ok 4 sekundy.
    Układ został przeze mnie przetestowany w przedziale temperatur od -30 (zamrażarka) do +100 (czajnik elektryczny) Temperaturom tym zostały poddane oczywiście czujniki, a nie sam układ.

    Pod spodem zamieszczam kilka zdjęć, filmik, schematy połączeń, wzory PCB, wsad IntelHEX.
    Pozdrawiam, Mateusz.

    Termometr low-cost na ATtiny25 i wyświetlacz

    Termometr low-cost na ATtiny25 i wyświetlacz

    Termometr low-cost na ATtiny25 i wyświetlacz

    Tutaj daję poprawiony schemat na którym brakowało rezystora podciągającego:
    Termometr low-cost na ATtiny25 i wyświetlacz


    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    tmgofer
    Level 12  
    Offline 
    Has specialization in: elektrotechnika
    tmgofer wrote 84 posts with rating 1, helped 1 times. Live in city Tarnów/Kraków. Been with us since 2006 year.
  • e-mierniki
  • #2
    User removed account
    User removed account  
  • e-mierniki
  • #3
    karol12b
    Level 16  
    No wpadnie troche sniegu stopnieje i po plytce, to samo z deszczem, obuduj to w jakas odudowe np z pleksy zasilinykuj i bedzie git :D :D

    Post był raportowany.
    Popraw błędy i interpunkcję. Użyj przycisku PISOWNIA -->REGULAMIN pkt 15. [hefid]
  • #4
    zgierzman
    Level 30  
    karol12b wrote:
    No wpadnie troche sniegu stopnieje i po plytce to samo z deszczem oduduj to w jakoms odudowe np z pleksy zasilinykuj i bedzie git :D :D


    A kto by to trzymał na zewnątrz? Za oknem tylko czujnik, elektronika w domu ;-) No, chyba, że u ciebie w chacie śnieg pada ;-P

    Urządzenie bardzo ładne i przydatne. Wykonanie bomba, ale schemat niechlujnie narysowany. "Net"-y się pokrywają, poprzedłużane są bez sensu i końcówki wiszą w powietrzu. Ogólnie kilka klas gorzej niż produkt finalny.

    BTW, gdzie można poczytać o sterowaniu LCD? Niby kiedyś coś wygooglałem o zmianach polaryzacji itp, ale nadal nie potrafiłbym nawet takiego prostego wyświetlacza zapalić ;-(
  • #5
    gruby1
    Level 29  
    Bardzo fajny termometr. Ciekawe jest to, iż nie zastosowałeś procka innego, tylko rozwiązałeś małą ilość ATtiny przy pomocy rejestrów. Jeszcze proponowałbym zmianę programu, aby nie wyświetlało się 00,8 tylko 0,8. Zwyczajnie wygaszenie zbędnego zera. Ale ogólnie projekcik super i nie na ATmedze :D

    Pozdrawiam
  • #6
    lukig
    Level 10  
    hmmm.... żaden śnieg ani deszcz nie wpadnie, ponieważ wydaje mi się że za okno wystawiany będzie tylko sam czujnik temp. a nie cała płytka z LCDkiem.... Gratuluje Projektu!
  • #7
    tmgofer
    Level 12  
    Quote:
    chyba, że jednak czymś ta miedź jest zabezpieczona...

    Na razie jest zabezpieczona tylko kalafionią

    Quote:
    oduduj to w jakoms odudowe np z pleksy zasilinykuj i bedzie git


    Mało rozumiem z tego pytania, ale postaram się odpowiedzieć:
    Płytka stoi w domu na parapecie, więc raczej nic jej nie będzie. Czujniki są w koszulkach termokurczliwych, więc też powinno być ok...
    W sumie to chodziło o to, żeby nie było obudowy (po twojemu: "odudowy")

    Quote:
    gdzie można poczytać o sterowaniu LCD?


    Na elektrodzie trochę o tym pisano. W każdym razie to proste jak drut ;) (oczywiście mówię o tych bez multipleksowania)

    Quote:
    Ciekawe jest to, iż nie zastosowałeś procka innego, tylko rozwiązałeś małą ilość ATtiny przy pomocy rejestrów.


    O ile się nie mylę, to w ATm8 też by nie wystarczyło nóżek. Poza tym mega je więcej prądu...

    Quote:
    Jeszcze proponowałbym zmianę programu, aby nie wyświetlało się 00,8 tylko 0,8.


    Dobra myśl! Jakoś mi to nie przyszło do głowy.
  • #8
    zgierzman
    Level 30  
    tmgofer wrote:

    Quote:
    gdzie można poczytać o sterowaniu LCD?


    Na elektrodzie trochę o tym pisano. W każdym razie to proste jak drut ;) (oczywiście mówię o tych bez multipleksowania)


    Fakt, trochę motywacji mi było trzeba. Rzeczywiście wygląda bardzo prosto. W wolnej chwili się pobawię ;-D
  • #9
    ssaku
    Level 11  
    Podoba mi sie , ale takie pytanie czy nie dało sie zrobić trochę szybszego odczytu temperatury ? Wiem ze do domowego użytku wystarczy tak "szybki" odczyt ale gdyby użyć szybszego czujnika ... chyba ze to wynika z prędkości układu. Mimo to przyjemne dla oka
  • #10
    tmgofer
    Level 12  
    Oczywiście, że się da. DS18B20 przy pomiarze z rozdzielczoscią 12-bit potrzebuje o ile dobrze pamiętam ok. 750ms, czyli da się zrobić powiedzmy pomiar na sekundę... pytanie czy jest sens? Skoro zmienność temperatury otoczenia to max. parę stopni na godzinę. Dzięki rzadkim odczytom, użytkownika nie denerwują szybkie zmiany wyświetlanej temperatury na miejscu po przecinku.
  • #11
    ssaku
    Level 11  
    no tak zgadza sie ale taki termometr można wykorzystać przy badaniu różnego rodzaju elementów pod względem temperatury. Tylko dlatego pytałem o szybkość . Lepiej mieć szybszy termometr z możliwością przełączenia na domowa wersje Nie mam racji ?
  • #12
    krystian08
    Level 16  
    Gratuluje udanego projektu, proponuję wzbogacić urządzenie w obudowę :)
  • #13
    Karol966
    Level 30  
    Super termometr, projekt dać do porządnej firmy i kasę robić :D, zazdroszczę autorowi takich zdolności, ja miałem problemy z napisaniem procedur obsługi modułu lcd 1x16 znaków w asm'ie pod 51 a tutaj to , to dopiero kosmos
  • #14
    pidpawel
    Level 26  
    Fajne fajne ;) Właśnie tworzę podobny zegarek ;) Megę 8 zatrudniam, bo chcę mieć wyświetlacz lcd i LED ;) Do tego pamięć na i2c - zapis temperatur z kilkudziesięciu ostatnich godzin. Obudowa u mnie będzie to "puszka" (kwadratowa, naścienna) od anteny tv i radio. Myślę, że u Ciebie również by się to sprawdziło.
  • #15
    m3
    Level 11  
    tmgofer wrote:

    O ile się nie mylę, to w ATm8 też by nie wystarczyło nóżek. Poza tym mega je więcej prądu...

    Wystarczyłoby spokojnie:
    Attiny25 - 6 pinów wejścia/wyjścia
    Atmega8 - 23 piny wejścia/wyjścia ;)

    Jeśli chodzi o projekt to muszę przyznać, że pierwsza klasa, ładnie wytrawiona płytka, itd. Dodaj jeszcze obudowę i będzie daje 10/10. :)
    Właśnie uczę się programować avr-y i mam nadzieje, że dogonię Cię kiedyś w umiejętnościach.
  • #16
    kamilgrodz
    Level 11  
    Bardzo fajny projekt, elegancko wykonany. Podoba mi się to, że zastosowałeś oszczędny wyświetlacz LCD no i procek. Dzięki temu można zasilić układ akumulatorkiem lub bateryjka i nie ma zbędnych kabli czy zasilaczy. W ten sposób można postawić termometr gdzieś na półce czy parapecie, prawie zero kabli - no tylko czujnik :D

    Brawo daje 6/6, jeszcze tylko ładna obudowa :)
  • #17
    Krater28
    Level 18  
    Witam
    Projekt tak jak napisałeś prosty - ale praktyczny i dobrze wykonany. Podobają mi się płytki wykonane przez Ciebie - też staram się wypełniać na laminacie (czyli nie wytrawiać) wolne miejsca miedzią i staram się to wszystko połączyć z masą. Takie działanie ma co najmniej dwie zalety - podłączone do masy chroni przed zakłóceniami (tak się robi też przy układach w.cz) a druga zaleta bardziej praktyczna - zużywam mniej wytrawiacza bo nie trzeba wyżerać tyle miedzi.
    Dołóż gaszenie niepotrzebnego zera i podmień wsad do procesora który zamieściłeś - wtedy będzie już dopieszczone wszystko.
    Pozdrawiam.
  • #18
    DamianG
    Level 20  
    Witam
    Naprawdę udany i przydatny projekt. Bardzo ładnie wykonane płytki. Daje 10-/10 (za tą nie zabezpieczoną płytkę)
    Pozdrawiam
    P.S. Dopisz wygaszanie pierwszego zera.
  • #19
    tmgofer
    Level 12  
    m3 wrote:
    Atmega8 - 23 piny wejścia/wyjścia

    hmm biorąc pod uwagę, że 3 cyfry * 7 = 21 plus znak minus, plus kropka dziesiętna = 23 plus jeszcze przycisk i onewire. Nie wspomnę o tym, że wyświetlacz jest 3,5 cyfry, czyli że temperatura powyżej 100 st. C. też będzie wyświetlona. Czyli razem wychodzi 26 pinów + jeszcze wspólny COMMON dając ostatecznie 27.
    Dlatego zastosowałem rejestry przesuwne :) Dzięki nim jestem w stanie obsłużyć cały wyświetlacz przy pomocy 3 pinów ;)

    W najbliższym czasie postaram się dopisać wygaszanie pierwszego zera, skoro uważacie to za stosowne :)
  • #20
    datch
    Level 12  
    Można przecież zrobić to spokojnie, na 4+8 pinach na atmedze8 te sterowanie wyświetlaczem LED, wiec raczej by starczyło. A dokładniej 4 masy do każdej cyferki no i 7 na cyferki no 1 to kropeczka i minus jednak ma to swoją wadę, bo atmega ciągle musi pracować żeby załanczać kolejne masy i zmieniać napięcia na tych 8 pinach, co zarazem idzie większy pobór prądu.
    BTW w jakim języku pisałeś softa, bo jak w "c" to bym chciał zobaczyć.
    A projekcik to jest super, ja jeszcze nie robiłem nic na bramkach wiec, po prostu jest to inne rozwiązanie problemu wyświetlania. Pełen podziw, no i ładne PCB. [10/10]
  • #21
    Jarema
    User under supervision
    Siema,
    Mam pytanie do autora projektu dlaczego nie wygasza zer nieznaczących i przy okazji nie przesuwa minusa ?
  • #22
    tmgofer
    Level 12  
    W związku z tym, ze to nie jest wyświetlacz LED tylko LCD i sterowanie nim jest nieco inne niż trzema oddzielnymi siedmiosegmentowymi ze wspólną katodą, podtrzymuję więc to, co napisałem posta wyżej.

    Wyjaśnienie:
    Można zastosować w tym projekcie ATmega8, ale ma ona za mało pinów I/O żeby pominąć rejestry przesuwne...
    Można zastosować ATmega8 z rejestrami przesuwnymi, ale wtedy, moim zdaniem jest to straszne marnotrawienie miejsca i potencjału procesora oraz energii.
    Mam nadzieję, że już jasno wytłumaczyłem mój wybór :)
  • #23
    m3
    Level 11  
    Heh, zwracam honor... teraz już rozumiem dlaczego tak rozwiązałeś problem.
    A zamieściłbyś kod programu? W jakim języku piszesz?
  • #24
    tmgofer
    Level 12  
    m3 wrote:
    A zamieściłbyś kod programu? W jakim języku piszesz?


    Program jest napisany w C, do użytku publicznego chciałbym umieścić tylko gotowy wsad. Jeżeli masz jakieś konkretne pytanie co do działania urządzenia, chętnie odpowiem ;)
  • #25
    datch
    Level 12  
    Acha dzieki za wytłumaczenie, do kodu chciał bym tak po prostu zobaczyć cało kształt bo chciał bym sie w to głębić w programowanie w "c" (kiedys sie bawiłem troszki na atmedze). Ale tez mam szegółowsze pytanie jak sie obsługuje ten czujnik DS18B20. Z góry dzieki.
  • #26
    netMaster
    Level 13  
    Swietny projekt :) 10/10, chcialem zapytac co to za wyświetlacz i gdzie można kupic :) ??
    pozdrawaim
  • #27
    satanistik
    Level 27  
    Co do zabezpieczenia czujników rurką termo kurczliwą to radze poczekać na kwaśne deszcze i zobaczyć czy elektroliza nie pozbędzie się wyprowadzeń czujnika. No i ten wyświetlacz mógł by mieć podstawkę (w razie czego łatwiej wyjąć niż rozlutować). Daję 9/10 szczególnie za to że autor nie zniechęca się tym że w markecie można kupić 2 razy taniej.
  • #28
    roobert
    Level 14  
    Witam.
    Też tak kiedyś myślałem i po zakupieniu termometru w markecie sprawdziłem jaki jest dokładny. Pewnie miałem pecha ale różnice przekraczały 2C ( poniżej -5C i powyżej 40C . Żenada i to przy dokładności odczytu 0.1C. To raczej wskaźnik temperatury a nie termometr.
  • #29
    att
    Level 14  
    datch wrote:
    Ale tez mam szegółowsze pytanie jak sie obsługuje ten czujnik DS18B20.


    Wystarczy przejrzeć dokumentację techniczą:
    http://www.solidchip.eu/download/DS18B20.pdf

    a nie liczyć na "gotowce", chociaż na pewno coś się znajdzie w sieci, tzreba tylko poszukać