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.

Termometr do temperatury zewnetrznej - DS18S20

Freddy 30 Wrz 2015 15:19 8607 16
  • Termometr do temperatury zewnetrznej - DS18S20

    Przedstawiam zbudowany parę lat temu termometr na bazie kitu AVT2826.
    Termometr jest wykorzystywany do pomiaru temperatury zewnętrznej.
    Zakupiłem w AVT gotową płytkę drukowana za 5zł.
    Wszystkie elementy miałem, więc nie musiałem kupować.

    Może nie jest to super konstrukcja, bo oparta na gotowej płytce drukowanej kitu AVT, ale jest do tego wersja źródłowa oprogramowania, która może się przydać innym.

    Jako tranzystory sterujące wykorzystałem BC556.
    Wyświetlacze zielone 0,56" Kingbright DA56-11GWA.
    Zastosowałem rezonator kwarcowy w dużej obudowie i przeniosłem go na druga stronę płytki.
    Jako czujnik temperatury pracuje DS18S20 umieszczony w gilzie wypełnionej pastą termoprzewodzącą.
    Czujnik DS1820 pracuje w układzie trzyprzewodowym, miałem taki przewód, więc taki został użyty.

    Termometr do temperatury zewnetrznej - DS18S20

    Trochę parametrów termometru:
    - zakres pomiarowy -55 - +125°C
    - dokładność pomiaru 0,5°C
    - odczyt temperatury co około 5 sekund
    - zapamiętywanie najniższej i najwyższej zmierzonej temperatury
    - wyświetlanie wartości min/max/mid po naciśnięciu przycisku


    Oryginalny opis w czasopiśmie był bardzo skąpy, wiec musiałem w zasadzie "zgadywać" co i gdzie.
    Potem udało mi się zdobyć wersje źródłową pliku Bascoma stworzoną przez Pana Witolda Kardysia.
    Z pliku tego dowiedziałem się trochę więcej szczegółów na temat tego termometru.
    Zrezygnowałem z układu sztucznego resetu po awarii, nigdy nie był potrzebny.
    Zmodyfikowałem trochę oprogramowanie na własne potrzeby.
    Udostępniony plik Termometr.rar zawiera oryginalną wersje oprogramowania - pliki: Termometr.bas oraz Termometr.hex.
    Termometr pracował ładnych parę lat w obudowie plastikowej podwieszony pod szafka.
    Teraz cały układ powędruje (na 90%) do małej wnęki w ścianie o wymiarach około 90x50mm. Będzie to zrobione w ciągu 2 tygodni podczas małego remontu i malowania.

    Oto widok zmontowanej płytki drukowanej.
    Termometr do temperatury zewnetrznej - DS18S20 Termometr do temperatury zewnetrznej - DS18S20





    Schemat układu.
    Termometr do temperatury zewnetrznej - DS18S20

    Cały układ zasilany jest za pomocą zasilacza wtyczkowego od którejś starszej Nokii.
    Zasilacz daje napięcie 5V i w związku z tym nie wykorzystywałem wbudowanego na płytkę stabilizatora.
    Widok zasilacza na układzie FSD210.

    Termometr do temperatury zewnetrznej - DS18S20Termometr do temperatury zewnetrznej - DS18S20

    W tej chwili w przygotowaniu jest osłona na otwór będąca równocześnie płytą czołową. Płyta wykonana w programie FrontDesigner.
    Płyta wykonana z ciemnozielonego plexi z prześwitującym okienkiem, a reszta delikatnie zmatowiona.

    Termometr do temperatury zewnetrznej - DS18S20

    Chętnie wysłucham wszystkich sugestii odnośnie wykonania płyty maskującej.


    Fajne!
  • #2 30 Wrz 2015 16:35
    treker
    Poziom 25  

    @Freddy, które funkcje są Twojego autorstwa? Nie wynika to bezpośrednio z opisu, wiec ciężko ocenić wkład własny.

  • #3 30 Wrz 2015 16:38
    Freddy
    Poziom 43  

    treker napisał:
    @Freddy, któe funkcje są Twojego autorstwa? Nie wynika to bezpośrednio z opisu, wiec ciężko ocenić wkład własny.

    Montaż, adaptacja, kompilacja, modyfikacja, instalacja, rozpracowanie :).

  • #5 30 Wrz 2015 16:54
    Freddy
    Poziom 43  

    Zostało zmodyfikowane oprogramowanie, do opisu dołączyłem jednak oryginalną wersję.

  • #6 30 Wrz 2015 18:55
    mamakapcia
    Poziom 17  

    Mi się podoba ten projekt. Mimo, że autor od strony elektronicznej niewiele zrobił, nie ma powodu by pluć na niego jadem. DIY to nie "zaprojektuj (najlepiej by to była niepowtarzalna konstrukcja) i zrób", tylko "zrób to sam". Hipokryci z Was- narzekacie, że projekt nie zrobiony od podstaw, a potem narzekacie, że większość artykułów na portalu to DIY Zagranica...

  • #7 30 Wrz 2015 20:54
    eurotips
    Poziom 35  

    Na psy to wszystko schodzi, teraz to już wystarczy zmontować kit AVT na gotowej płytce i jaki ja wielki konstruktor. Albo wrzucisz tu plik hex ze swojej wersji albo wywal to do kosza i nie ośmieszaj się.

  • #8 01 Paź 2015 00:24
    jega
    Poziom 24  

    Freddy napisał:
    Trochę parametrów termometru:
    - zakres pomiarowy -55 - +125°C
    - dokładność pomiaru 0,1°C

    Czy mógłby kolega zdradzić jak korzystając z czujnika o deklarowanej dokładności 0,5°C i to jedynie dla zakresu -10..+85°C (poza nim błąd rośnie do ±2°C) uzyskał dokładność pomiaru 0,1°C?

  • #9 01 Paź 2015 07:10
    Freddy
    Poziom 43  

    Faktycznie, oczywiście moja pomyłka. poprawiłem, dziękuję za wskazanie błędu.

  • #10 01 Paź 2015 18:00
    Witek_k
    Poziom 1  

    Witam,
    Jako autor oryginalnego opracowania wtrącę swoje trzy grosze (Autor postu poinformował mnie mailowo o tym wpisie).

    Przede wszystkim jestem zaskoczony, że ktoś odgrzebał tego mojego starocia jeszcze z czasów licealnych:) Co ciekawe jakiś czas temu znalazłem oryginalny prototyp tego wynalazku w starym pudle ale niestety puściło jakieś lutowanie na samodzielnie trawionej płytce i wyświetlacz padł.

    Niestety ten projekt ma błąd w kodzie który powoduje nieprawidłowe wyświetlanie temperatur ujemnych.
    Kiedyś nawet AVT nagabywało mnie w tej sprawie (jakieś 3 lata po publikacji artykułu) i żądali żebym to naprawił (!!!). Ciekawe, bo nie przypominam sobie, żeby zapłacili mi za dożywotni support projekciku wysłanego do sławnej Szkoły Konstruktórów w EdW.

    Problem z kodem tkwi w konwersji temperatury z DS1820. W tym układzie bazowa rozdzielczość pomiaru wynosi 0.5°C ale ma on 2 dodatkowe rejestry które pozwalają zwiększyć rozdzielczość do chyba 0.125°C (nie pamiętam dokładnie). To jest opisane w datasheet. Ja to zastosowałem i tam właśnie tkwi błąd. Lepiej zastosować nowszy DS18B20 który ma już konfigurowalną rozdzielczość i nie trzeba się bawić albo poprawić kod. Poprawka kodu wymaga niestety wywalenia jakichś funkcji bo do dzisiaj pamiętam, że po kompilacji kod zajmował praktycznie cały, dostępny flash - zostawały DWA wolne bajty!!!

    Zaciekawiła mnie inna rzecz - Freddy skąd wziąłeś te gilzy do oprawienia termometru? Wyglądają interesująco.

    Pozdrawiam,
    Witek

  • #11 01 Paź 2015 18:14
    Freddy
    Poziom 43  

    Witaj, dziękuję za Twoje trzy grosze. Cieszę się że tu zaglądnąłeś i uzyskałem Twoja publiczną akceptację.

    Bez tego pojawiały się od razu wątpliwej jakości posty odnośnie praw autorskich :(.

    Błąd rzeczywiście jest, ale występuje, o dziwo tylko poniżej -20, czy też -30°C (nie pamiętam dokładnie), więc na początku nie poprawiałem go bo mi się nie chciało.
    Przy rezygnacji z dużej rozdzielczości błąd nie występuje.
    Teraz podczas przeprowadzki termometru w inne miejsce błąd zostanie poprawiony :), ale jest to banalnie prosty błąd.
    Po drobnych zmianach korektach zostało jeszcze kilka bajtów wolnych :).

    Gilzy kupiłem na Allegro, występują w kilku rozmiarach pod nazwą właśnie gilzy i kosztują parę złotych. Wprowadź w szukajce Allegro "gilzy ds18b20". Różnie są sprzedawane, po 1, 3, albo 10 szt.

  • #12 02 Paź 2015 08:45
    michał_bak
    Poziom 15  

    Freddy napisał:
    Przy rezygnacji z dużej dokładności błąd nie występuje

    Dokładności czy rozdzielczości?

  • #14 10 Paź 2015 08:37
    pm.m
    Poziom 7  

    Jak ktoś już odkopał, to dorzucę dawno napisany własny kod na ATiny2313 (nóżkami pasuje) do tego kita. Chyba trzeba też zmienić 18S20 na 18B20. Program powstał jako próba ratowania tego zestawu po spaleniu oryginalnego uC. Nie wiem dlaczego, ale po miesiącu pracy oryginalny po prostu się ugotował i zaczął głupoty robić. Po zamianie działa już pare lat.

    Kod: avrasm
    Zaloguj się, aby zobaczyć kod

  • #15 28 Paź 2015 11:58
    ukixx
    Poziom 19  

    Urządzenie wykonane estetycznie ale chociaż płytkę mógłbyś zrobić samemu. W zasadzie jedyne czym możesz się tu pochwalić to projekt obudowy. Fajnie by było gdybyś trochę zmodyfikował urządzenie, np. używając rejestru HC595 do sterowania katodami (zwalniasz wtedy 5 pinów z procka) i wyposażył układ w dodatkowe przyciski, a nawet drugi czujnik temperatury (miałbyś temperaturę wewnątrz i na zewnątrz budynku).

    Procek ma 2k flasha więc można samemu napisać program i wszystko powinno się zmieścić. Jednak pisanie w Bascomie i innych cudach ładuje tyle śmieci że ledwo wystarcza miejsca na ten projekt.

  • #16 28 Paź 2015 13:01
    Freddy
    Poziom 43  

    ukixx napisał:
    Urządzenie wykonane estetycznie ale chociaż płytkę mógłbyś zrobić samemu.
    Chciałoby Ci się robic płytke za 5zł :)?
    Cytat:
    W zasadzie jedyne czym możesz się tu pochwalić to projekt obudowy. Fajnie by było gdybyś trochę zmodyfikował urządzenie, np. używając rejestru HC595 do sterowania katodami (zwalniasz wtedy 5 pinów z procka) i wyposażył układ w dodatkowe przyciski, a nawet drugi czujnik temperatury (miałbyś temperaturę wewnątrz i na zewnątrz budynku).
    Termometry wewnątrz mam, więc nie był mi potrzebny.
    Cytat:

    Procek ma 2k flasha więc można samemu napisać program i wszystko powinno się zmieścić. Jednak pisanie w Bascomie i innych cudach ładuje tyle śmieci że ledwo wystarcza miejsca na ten projekt.
    Niestety prawie cała pamięć jest w tej chwili zajęta, zostaje kilka bajtów. Języka C nie znam, dopiero jestem w trakcie nauki i treningów.
    Gdy poznam go na tyle, że będę w stanie to napisać, zrobię to na pewno, dodając dodatkowe funkcje.

  • #17 29 Paź 2015 11:41
    ukixx
    Poziom 19  

    Jak chcesz zmieścić dużo w procku to zacznij bawić się w asemblerze, niestety jeśli chodzi o AVR to nic tu nie pomogę bo nie znam ich architektury ani komend.

    Wiadomo w C lepiej się pisze ale jednak czasem włożenie więcej wysiłku przynosi lepsze efekty. A to co się naczytałem o bascomach i innych cudach to szkoda pisać.