logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Termometr wewnętrzny z wyświetlaczem LED

piotrek662 12 Kwi 2007 17:45 14649 23
REKLAMA
  • Termometr wewnętrzny z wyświetlaczem LED
    Jest to moja pierwsza konstrukcja oparta na µC. Termometr został wykonany w oparciu o mikroprocesor ATmega 8 oraz czujnik DS18B20. Zastosowałem też 3 układy 4543 (dekodery BCD). Kod programu sterującego napisałem w BASCOM'ie. Napisy z przodu obudowy zostały wydrukowane na papierze kredowym, a ten został przyklejony butaprenem. Płytka drukowana została wykonana w EAGLE, a następnie przeniesiona za pomocą papieru kredowego.

    Zakres termometru to 0 - 99,9 °C

    Zasilanie z zasilacza 5V.

    Termometr wewnętrzny z wyświetlaczem LED
    Termometr wewnętrzny z wyświetlaczem LED
    Termometr wewnętrzny z wyświetlaczem LED
    Termometr wewnętrzny z wyświetlaczem LED

    Fajne? Ranking DIY
    O autorze
    piotrek662
    Poziom 14  
    Offline 
    Specjalizuje się w: komputery, mikrokontrolery
    piotrek662 napisał 165 postów o ocenie 322, pomógł 10 razy. Mieszka w mieście Rybnik. Jest z nami od 2005 roku.
  • REKLAMA
  • #2 3780964
    ciapciok
    Poziom 20  
    Posty: 503
    Pomógł: 3
    Ocena: 109
    Możesz umieścić kod źródłowy ?

    Pozdrawiam
  • #3 3780972
    piotrek662
    Poziom 14  
    Posty: 165
    Pomógł: 10
    Ocena: 322
    Oto kod źródłowy (plik BAS i HEX)
    Załączniki:
    • Kod.rar (2.27 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #4 3781300
    joboo
    Poziom 12  
    Posty: 95
    Ocena: 4
    A czy nie lepiej byłoby zamiast trzech 4543 użyć jednego i zastosować multipleksowanie ( to tylko moja sugestia)?
    Projekt schludnie wykonany.
    Pozdrawiam!!!
  • REKLAMA
  • #5 3781357
    memphis_2007
    Poziom 12  
    Posty: 75
    Proponuje dac na wyświetlacz led czerwony filtr . Zwiększy to czytelnośc wyświetlacza . Dołączam się do przedmówcy . Po co tyle układów do wyświetlania . Multipleksowanie nie jest trudne w zastosowaniu , a bardzo ułatwia płytkę . Moja ocena 3+/5

    P.S. Powiedz mi po co w termometrze pokojowym zakres do prawie 100 stopni ?
  • #6 3781544
    HSWG
    Poziom 21  
    Posty: 337
    Pomógł: 44
    Ocena: 353
    memphis_2007 napisał:
    P.S. Powiedz mi po co w termometrze pokojowym zakres do prawie 100 stopni ?

    A w czym to przeszkadza?

    Projekt wykonany starannie, jednak można sie przyczepić do schematu i programu. Ten pierwszy zbyt skomplikowany jak na taki układ, ten drugi zbyt prosty. Można zrezygnować z dekoderów BCD, a wyświetlacze sterować multipleksowo bezpośrednio z procesora. Popracuj również nad prowadzeniem ścieżek na płytce - są jakieś nienaturalnie "kanciaste". Nadmiar kalafonii można zmyć denaturatem przy pomocy np. szczoteczki do zębów. Rozumiem, że to dopiero twoje początki w elektronice - życzę dalszych sukcesów :).
  • #7 3781652
    dir3ctor
    Poziom 27  
    Posty: 1150
    Pomógł: 71
    Ocena: 50
    Tak jak przedmowcy mowia - lepsza opcja to zastosowac wyswietlanie multiplexowe. Moze teraz wystarczylo ci portow w uC, ale w przyszlosci moze braknac. Poza tym mozna by dodac kilka czujnikow temperatury + przycisk do rotacji wyswietlania. Poza tym brakuje mi obslugi temperatur ujemnych. No, skoro lapie +100, to dlaczego ma nie lapac tych -55 ;-)
  • REKLAMA
  • #8 3782278
    Wally50
    Poziom 13  
    Posty: 59
    Jak na pierwszy raz, to płytka OK. Ja też robię na EAGLE'u i nie przejmuję się kształtem ścieżek
    ( poprawiam tylko "krytyczne" ścieżki ). Natomiast jestem "cały chory" jak do procka muszę dokładać jakieś logiczne scalaki. Przecież do dekodowania i multipleksowania wystarczyły by Ci te 3 porty. Nie znam ATmega, bo wykorzystuję PIC'e, ale dodałbym, co najwyżej, tranzystory bo przy multipleksowaniu prądy chwilowe mogą być spore. Zakres temperatur OK (nie mieszkasz chyba w iglo :D ? )
    Sugestia o paru czujnikach obsługiwanych równocześnie to jeszcze nie dzisiaj. Mnie przybyło parę siwych włosów zanim "rozgryzłem" programowo i czasowo temat paru DS18S20 na jednym drucie (1-wire).

    P.S. Oczywiście życzę sukcesów. Początki masz dobre ! Jak tak dalej pójdzie to za rok Ty będziesz krytykował i oceniał. Moja ocena: 7/10.
  • #9 3782460
    tomgart
    Poziom 25  
    Posty: 864
    Pomógł: 49
    Ocena: 63
    Wally50 : co takiego jest nie tak w EAGLE z kształtem ścieżeki??? Chyba że używasz autodruta, to rozumiem :)
    Trzeba jednak przyznać że konstruktor poprowadził je dośc "fantazyjnie".
    Poza tym termometr bardzo fajny - przydałyby się jeszcze jednak wg mnie temeperatury ujemne.
    Pozdrawiam
  • #10 3782631
    jajony
    Poziom 12  
    Posty: 21
    Konstrukcja ogólnie spoko... ale:
    - moim zdaniem niepotrzebne układy logiczne, tak wielki uC spokojnie poradzi sobie z większą ilością wyświetlaczy (multipleksowanie niezbędne). Poza tym zastosowanie dekoderów niepotrzebnie zwiększa pobór prądu, a bateryjka nie z gumy :)
    - projekt PCB delikatnie mówiąc rozbawił mnie. Szczególnie interesujący jest przebieg ścieżki masy. Nie wiedziałem też ze w Eaglu można wykonać taki projekt powyginanych fantazyjnie ścieżek (no ale nie używam Eagla więc nie wiedziałem).
    - jeżeli chodzi o zasilanie bateryjne układów z wyświetlaczem LED to można tu polemizować nad sensem takiego rozwiązania i kosztami eksploatacji.

    Poza tym to OK.
    Pozdrawiam.
  • #11 3784113
    memphis_2007
    Poziom 12  
    Posty: 75
    Brak ujemnych temperatur wynika chyba z zastosowanego czujnika . Mylę się ?
  • #12 3784180
    dir3ctor
    Poziom 27  
    Posty: 1150
    Pomógł: 71
    Ocena: 50
    Mylisz sie. DS18B20 ma zakres bodajze od -55 do +125 czy jakos podobnie.
  • #13 3784201
    riodoro1
    Poziom 22  
    Posty: 591
    Pomógł: 20
    Ocena: 70
    dobra ja nie bede szpanował bo jeszcze nie bawie się w mikroprocki tylko skomentuje budowę no obudowa jest bardzo elegancka jak na termometr własnej roboty osobiście zatosował bym iny kolor wyświetlacz ale nie będę nic sugerował
  • #14 3784315
    Konto nie istnieje
    Konto nie istnieje  
  • #15 3784322
    ciapciok
    Poziom 20  
    Posty: 503
    Pomógł: 3
    Ocena: 109
    Dajcie spojój z pomiarem temperatury ujemnej, Autor nie mieszka na Syberii, więc to mu się nie przyda. Przecież to termometr pokojowy.

    Z drugiej strony, jakby autor zastosował pomiar temp. ujemnej, to by się wszyscy pytali, po co, skoro to termometr pokojowy. Gdyby zastosował multipleksowanie, to wszyscy mówliby, po co atmega8, skoro wystarczyło by attiny26 itp. Jestem częstym bywalcem DIY, wiem jak jest.

    Pozdrawiam
  • #16 3784462
    gregoorr
    Poziom 18  
    Posty: 229
    Pomógł: 19
    Ocena: 34
    Weź pod uwagę wszystkie sugestie. Nie jest to krytyka, tylko trafne uwagi kolegów, którzy coś więcej wiedzą na ten temat i jak widać chętnie pomagają i podpowiadają. Najważniejsze według mnie jest to, że układ działa. Znaczy to, że coś wiesz i potrafisz tą wiedzę wykorzystać, a poprawić można wszystko. Co do temperatur ujemnych i zakresie do 99 stopni to należałoby się zastanowić czy chce się mieć termometr pokojowy, czy termometr uniwersalny. Na dzień dzisiejszy nie wiadomo jak go wykorzystasz w przyszłości. Czy będzie to termometr w akwarium, czy w lodówce z alarmem rozmrożenia. Jestem przeciwnikiem pakowania na siłę wszystkiego w układ. Przy możliwościach, jakie dają mikroprocesory przebudowanie to kwestia kilkudziesięciu minut, a zmiana programu to jeszcze mniej. Początek napewno dobry i jak widać masz jeszcze dużo do zrobienia, więc życzę powodzenia.
  • #17 3784493
    neono
    Poziom 17  
    Posty: 244
    Pomógł: 8
    Ocena: 1
    Bardzo ładna konstrukcja, ja też bym chcial taką zrobić lecz nie umiem.
    Narazie zrobiłem samochodzik na baterie ale on taki prosty do zrobienia.
    :cry:
  • #18 3785800
    olinek2
    Poziom 23  
    Posty: 764
    Pomógł: 11
    Ocena: 52
    Spoko konstrukcja, ale jak dobrze widzę ścieżki na płytce prowadzone są bez sensu, 2 takie same sygnałowe obok siebie, zamiast razem. Czyżbyś korzystał z autorunera ??
    Dobrze, że chociaż Ci się chciało płytkę robić :P
  • REKLAMA
  • #19 3786366
    Wally50
    Poziom 13  
    Posty: 59
    tomgart napisał:
    Wally50 : co takiego jest nie tak w EAGLE z kształtem ścieżeki??? Chyba że używasz autodruta, to rozumiem :)

    EAGLE jest OK. Ma tylko olbrzymią ilość parametrów, nad którymi trzeba zapanować. Na początku nie jest to łatwe i czasem daje nieoczekiwane wyniki. ( patrz płytka powyżej ). Można by otworzyć nowy temat dotyczący samego EAGLE'a. Na pewno jeszcze dużo byśmy się nauczyli.
  • #20 3793111
    danio_ac
    Poziom 11  
    Posty: 45
    Konstrukcja OK.

    Przerób to na wyświetlanie multipleksowane i ujemne temperatury i będzie termometr uniwersalny, taki jakiego szukam.
  • #21 4198574
    macio8888
    Poziom 22  
    Posty: 701
    Pomógł: 12
    Ocena: 18
    Co trzeba rzerobic w programi zeby obsługiwało temperatury ujemne??
  • #22 4198985
    Wally50
    Poziom 13  
    Posty: 59
    macio8888 napisał:
    Co trzeba rzerobic w programi zeby obsługiwało temperatury ujemne??

    Sprawdź czy bity 11-15 (bity 3-7 starszego bajtu) są równe 1. Jeżeli tak, to oznacza liczbę ujemną.
    Dokonaj wtedy konwersji : zaneguj wszystkie bity (z obu rejestrów) i dodaj 1 (pamiętaj o ewentualnym przeniesieniu). Dalsza interpretacja liczby jest taka sama jak dla temperatur dodatnich, ale na wyświetlaczu wyświetl znak "minus".

    P.S. Oczywiście, cały czas mówię o bajtach 0 i 1, wczytanych z DS'a.
    Wally
  • #23 5914150
    UlfgaR
    Poziom 23  
    Posty: 744
    Pomógł: 39
    Ocena: 62
    Ogólnie fajny projekt.
    Czy byłby ktoś w stanie przerobić kod pod jeszcze jeden wyświetlacz, żeby termometr pokazywał temp pow. 99st C?
  • #24 7039157
    karollo19
    Poziom 15  
    Posty: 198
    Pomógł: 1
    Ocena: 14
    A jak przerobić kod, aby móc mierzyć również i ujemne temperatury?

Podsumowanie tematu

✨ Przedstawiono konstrukcję termometru wewnętrznego opartego na mikrokontrolerze ATmega8 i czujniku temperatury DS18B20, z wyświetlaczem LED sterowanym przez trzy układy 4543 (dekodery BCD). Zakres pomiarowy wynosi od 0 do 99,9 °C, zasilanie realizowane jest z 5V. Dyskusja koncentruje się na optymalizacji projektu, w szczególności na sugestiach zastąpienia trzech układów 4543 jednym multipleksowanym sterowaniem wyświetlaczy, co zmniejszyłoby zużycie prądu i uprościło płytkę PCB. Poruszono również temat obsługi temperatur ujemnych, które są możliwe do zmierzenia przez DS18B20 (zakres od -55 do +125 °C), jednak w obecnej wersji projektu nie zostały zaimplementowane. Wskazano na potrzebę modyfikacji oprogramowania w BASCOM, aby rozpoznawać i wyświetlać temperatury ujemne, poprzez analizę bitów starszego bajtu danych z czujnika i odpowiednią konwersję dwójkowego uzupełnienia do jedności. Zwrócono uwagę na estetykę i prowadzenie ścieżek na płytce PCB wykonanej w EAGLE, które mogą wymagać poprawy. Dyskutowano także o potencjalnym rozszerzeniu funkcjonalności o obsługę wielu czujników i przycisków do zmiany wyświetlanych wartości. Projekt oceniono jako dobry dla początkującego, z możliwością dalszej rozbudowy i optymalizacji.
Wygenerowane przez model językowy.
REKLAMA