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 2-kanałowy na 8051: AT89C51 i OM5232 z czujnikami DS18B20

Tytus Kosiarski 17 Maj 2026 12:47 291 5

TL;DR

  • Dwie wersje termometru dwukanałowego na 8051: AT89C51 w Z60-ABS i OM5232 z zewnętrzną pamięcią programu w KM-50, z czujnikami DS18B20.
  • Górny wyświetlacz pokazuje temperaturę pokoju z wbudowanego DS18B20, a dolny temperaturę zewnętrzną z czujnika na przewodzie pod parapetem.
  • Program w Keil C51 obsługuje dwa czujniki 1-Wire, wykrywa ich odłączenie i pokazuje temperaturę z rozdzielczością 0,5°C oraz symbol „C”.
  • Zasilanie zapewniają przerobione ładowarki Nokia AC-3E około 4 V, a największym problemem okazały się ceny PCB: od 122 zł do ok. 350 zł.
Wygenerowane przez model językowy.
REKLAMA
📢 Słuchaj (AI):
  • Termometr 2-kanałowy na 8051: AT89C51 i OM5232 z czujnikami DS18B20


    Termometr 2-kanałowy na 8051: AT89C51 i OM5232 z czujnikami DS18B20

    Na prośbę kolegi @acctr zakładam nowy temat.

    Witam wszystkich.

    Tym razem chciałbym zaprezentować kolejne dwie wersje termometru dwukanałowego, obie zbudowane w oparciu o mikrokontrolery z serii 8051. Te konstrukcje mogą być jakimś sposobem na zagospodarowanie już niepotrzebnych, jednak sprawnych podzespołów.

    Inspiracją do budowy tych wersji termometrów była moja chęć zagospodarowania podzespołów "wieloletnich leżaków", których przydatność stawała się coraz bardziej problematyczna z każdym upływającym dniem, a jednak szkoda mi było je wyrzucać, tym bardziej że były sprawne. Stąd m.in. taki, a nie inny sposób konstrukcji wyświetlaczy.

    Jedna wersja, zbudowana w oparciu o mikrokontroler AT89C51, umieszczona jest w obudowie Z60-ABS, druga zaś, wykorzystująca mikrokontroler OM5232
    ( https://www.alldatasheet.com/datasheet-pdf/view/18002/PHILIPS/OM5232.html ) współpracujący z zewnętrzną pamięcią programu, umieszczona jest w obudowie KM-50.
    Z racji wymiarów wyświetlaczy, umieszczone są one jeden pod drugim, stąd przyjąłem, że górny wyświetlacz będzie wskazywał temperaturę w pokoju (odczytywaną z wbudowanego czujnika DS18B20), natomiast dolny wyświetlacz wskaże temperaturę na dworze (odczytywaną z czujnika z przewodem, umieszczonym pod parapetem zewnętrznym).

    Jako górny wyświetlacz temperatury pokojowej termometru z 89C51 zastosowany jest LTC-3808 (Lite-on, karta katalogowa w dokumentacji) - pozyskany z resztek elektroniki od jakiegoś radioodbiornika samochodowego z lat 90. (w tamtych czasach dość popularny sposób wyświetlania częstotliwości odbieranej stacji). Jest obecnie nie do kupienia (nie wiem, czy kiedykolwiek był dostępny w handlu detalicznym). Można go zastąpić np. trzema pojedynczymi wyświetlaczami: LSD030BAG-10A lub OSL10303-IG (TME) i odpowiednio przeprojektować PCB wyświetlacza.

    Zasilanie obu termometrów zrealizowane jest z zalegających u mnie ładowarek do starych telefonów Nokia (z cienkim wtykiem, oznaczenie: Nokia AC-3E, www: https://cardsplitter.pl/ladowarka-do-nokia-ac-3e-oryginalna-p-703.html). Przy czym zdecydowałem się usunąć w ogóle stabilizator impulsowy z układu termometru na 89C51, by jeszcze bardziej ograniczyć nagrzewanie się wnętrza obudowy i wpływ tego na wskazania temperatury w pokoju. Zamiast tego odpowiednio dostosowałem ładowarkę, by wystawiała napięcie ok. 4 V (poprzez odpowiedni dobór rezystorów w układzie sprzężenia zwrotnego). Oraz zwarłem piny IN OUT w gnieździe stabilizatora na PCB.

    Sposób pracy termometrów jest taki sam jak prezentowanego już przeze mnie termometru na ATTiny84 - program sprawdza obecność dwóch czujników, odczytuje z nich temperatury i prezentuje wyniki na wyświetlaczach. W przypadku odłączenia zewnętrznego lub wbudowanego (tu poprzez wylutowanie go) czujnika, wyświetla info o tym na odpowiednim wyświetlaczu. Ponieważ w tym wątku rozgorzała dyskusja nt. celowości wyświetlania symbolu "C" jako jednostki temperatury, a miałem wystarczająco wyświetlaczy jednocyfrowych, to zdecydowałem się wykorzystać je wszystkie, stąd dodatkowo wyświetlanie "C" oraz 0,5 st C rozdzielczość pomiaru temperatury w pokoju i na dworze termometru w wersji z mikrokontrolerem 8051.

    Ciekawostką może być fakt napisania programów na te wersje termometrów w języku C w IDE Keil C51 z uwagi, że nie chciało mi się przepisywać funkcji obsługi magistrali 1-Wire w asemblerze '51. Na początek próbowałem napisać ten kod w dostępnej, próbnej wersji Keil'a z ograniczeniem kodu wynikowego do 2 kB, jednakże kod ten dość mocno rozrósł się ponad te 2 kB. Stąd trochę poszukałem w Internecie i trafiłem na starą, aczkolwiek pełną wersję Keil'a dostępną pod adresem: https://en.eeworld.com.cn/download/detail/tyw/263131 (jest to wersja 2.38a; trzeba się zalogować, by ściągnąć archiwum; po jego rozpakowaniu jest "dziwny" plik *.TXT z "dziwną zawartością" i numerem seryjnym wewnątrz, który trzeba wpisać przy instalacji, by mieć pełną wersję).


    Koszty:
    podzespołów 24 zł (2 szt. przetwornicy https://kamami.pl/step-down/580920-modul-przetwornicy-dc-dc-step-down-5v1a-5906623458653.html z przesyłką). Resztę miałem.

    obudów: ok. 50 zł.

    PCB: 122 zł (dwie PCB do wersji z 89C51 z Satlandu); ok. 350 zł (dwie PCB do wersji z 8051 z Unidruku).

    Tu trochę chciałbym rozwinąć temat próby zamówienia PCB do wersji termometru z 8051 w Satlandzie. Otóż złożyłem zamówienie, jak dotychczas, przez ich kalkulator kosztów PCB. Kalkulator wyliczył mi koszty obu PCB na ok. 174 zł i zamówiłem. Za dwa dni dostałem od nich oficjalnego e-maila, cytuję:
    "Dzień dobry,
    z powodu likwidacji linii prototypowej wszystkie obwody wykonujemy na linii zaawansowanej,
    nowa cena dla owodu 69 ( wyswietlacz_ver 3): 179.33 zł netto/szt,
    oraz dla obwodu 70 ( plytka_glowna_ver3): 274.12 zł netto/szt.
    Proszę o informację czy akceptują Państwo nową cenę.
    "

    Aż oczy wytrzeszczyłem... Całkowity koszt z kalkulatora do zapłaty 174 zł vs 453,45 zł netto plus oczywiście do tego jeszcze przesyłka. Nie miało oczywiście sensu zamawianie u nich wykonania tych PCB. Na czas pisania tego opisu (czyli po jakimś 1,5 miesiąca po próbie zamówienia u nich PCB) sprawdziłem ponownie wyliczenia w kalkulatorze Satlandu - wyliczane ceny nadal bez zmian. Jedynie pojawiły się uwagi:
    "Linia prototypowa została zawieszona, wszytkie zamówienia są realizowane na linii zaawansowanej.
    Ceny wszytkich zamówień będą przeliczane po weryfikacji plików.
    Terminy realizacji poniżej 5 dni roboczych są zawieszone i nie będą realizowane.
    "

    Czy zamierzają jakoś obniżyć ceny produkcji prototypów, czy będą już mieli prototypy "w poważaniu"? - pożyjemy, zobaczymy.

    Pierwsze kroki skierowałem zatem na poszukiwania innych polskich producentów PCB, którzy mieli kalkulator kosztów PCB. Na początku zwróciłem uwagę na firmę TSPCB. Koszt wykonania tych dwóch PCB u nich jakieś 313 zł brutto według ich kalkulatora ( https://tspcb.pl/zamow-wycen/ ).
    Niestety, współpracują tylko z firmami/instytucjami.

    Następnym był sklep Zatro.Net, mają kalkulator: https://zatro.net/KalkulatorPCB/KalkulatorPCB.html. Po wymianie e-maili dowiedziałem się, że minimalna ilość PCB z każdego rodzaju to 5 szt. Koszt za 5 szt. to 100 zł, czyli całość wyszłaby niby 200 zł plus przesyłka. Lepiej, ale co zrobię z czterema pozostałymi kompletami PCB? (stąd też nie brałem pod uwagę producentów pokroju PCBWay, JLCPCB czy NCAB Group).

    Następnym był Margol Electronics, mają również kalkulator: https://www.fabrykapcb.pl/kalkulator.html. Niestety, po wymianie e-maili dowiedziałem się, że nie mają możliwości zrealizowania zamówienia ze względu na wysoką gęstość ścieżek... xD

    Podczas poszukiwań trafiłem też na dyskusję: https://www.reddit.com/r/AskElectronics/comments/1jwktio/european_pcb_manufacturer/?tl=pl.
    Ten aisler.net z powyższej dyskusji - trudno mi powiedzieć.
    Ten multi-circuit-boards.eu - obsługują tylko firmy/instytucje.
    Ten eurocircuits.com - wygląda zachęcająco, nawet mogą zrobić 1 szt. PCB.

    Ale, że chciałem w Polsce, to rozpocząłem poszukiwania firm już bez kalkulatorów PCB. Po odsianiu firm został mi Unidruk. Trzeba było wysłać do nich Gerbery i odesłali mi ofertę z wyceną wynoszącą ok. 239 zł brutto z transportem za 1 komplet PCB. Zamówiłem. Za jakiś czas przysłali mi info, że już mają gotowe zamówienie, ale cytuję:
    "W wyniku nadwyżki produkcyjnej, które wykonujemy czasem asekuracyjnie, zamiast po 1 sztuce mamy po 2 sztuki. Czy zechce Pan przyjąć wszystkie czy pozostajemy
    przy 1 sztuce każdego projektu?

    Do nadprogramowych mogę zaproponować -50%.
    "

    Zgodziłem się na ten nadprogramowy komplet, więc przysłali mi fakturę do dopłaty 104 zł, stąd całość kosztów w Unidruku wyszła ok. 350 zł, jak na wstępie kosztorysu.

    Także, podsumowując, obecnie ciężko jest z wykonaniem PCB prototypowych w Polsce... Natomiast Satland chyba mocno już przesadził z tymi kosztami.

    W dokumentacji są również schematy ideowe prezentowanych termometrów w plikach *.DOC.

    Pozdrawiam, KT

    PS: Teraz, przeglądając temat, trafiłem na post @zgierzman, gdzie on zamawiał PCB: >>21102112


    Termometr 2-kanałowy na 8051: AT89C51 i OM5232 z czujnikami DS18B20
    Termometr 2-kanałowy na 8051: AT89C51 i OM5232 z czujnikami DS18B20
    Termometr 2-kanałowy na 8051: AT89C51 i OM5232 z czujnikami DS18B20

    Termometr 2-kanałowy na 8051: AT89C51 i OM5232 z czujnikami DS18B20
    Termometr 2-kanałowy na 8051: AT89C51 i OM5232 z czujnikami DS18B20
    Termometr 2-kanałowy na 8051: AT89C51 i OM5232 z czujnikami DS18B20
    Termometr 2-kanałowy na 8051: AT89C51 i OM5232 z czujnikami DS18B20
    Termometr 2-kanałowy na 8051: AT89C51 i OM5232 z czujnikami DS18B20
    Płytka PCB z układami scalonymi i taśmą, pod nią dwa białe wyświetlacze 7‑segmentowe
    Wnętrze czarnej obudowy z małą płytką PCB i białą taśmą przewodów
    Załączniki:
    • dok_ver2.zip (1.06 MB) Musisz być zalogowany, aby pobrać ten załącznik.
    • dok_ver3.zip (553.15 KB) Musisz być zalogowany, aby pobrać ten załącznik.

    Fajne? Ranking DIY
    O autorze
    Tytus Kosiarski
    Poziom 16  
    Offline 
  • REKLAMA
  • #2 21904784
    TechEkspert
    Redaktor
    Posty: 7094
    Pomógł: 16
    Ocena: 5477
    Podoba mi się wykonanie, nie znałem tej wersji '51 jaką jest OM5232. Wiem że DS18B20 są genialne w zakresie możliwości w stosunku do ceny ale jakoś nie lubię magistrali 1WIRE :) wolę np. I2C na małe odległości. Z 1-WIRE trzeba bardzo dbać o zależności czasowe, na dłuższej linii dochodzą pojemności lub odbicia jeżeli jest kilka czujników. Mieszane mam udczucia co do 1-WIRE mimo, że jest użyteczna. A może się mylę, co w 1-WIRE jest lepszego od I2C/SPI poza możliwością pracy na większe odległości i zasilaniu pasożytniczym?
  • REKLAMA
  • #3 21904792
    Tytus Kosiarski
    Poziom 16  
    Posty: 288
    Pomógł: 10
    Ocena: 519
    >>21904784 W samej magistrali chyba nic ;) Ale czujniki są w fajniejszej obudowie TO-92, łatwiejszej do zastosowania w aplikacjach wymagających zewnętrznego pomiaru temperatury :)
  • REKLAMA
  • #4 21904810
    efi222
    Poziom 21  
    Posty: 701
    Pomógł: 12
    Ocena: 1174
    O ile dobrze zrozumiałem jeden z czujników umieszczony jest w obudowie termometru. I tutaj mam trochę wątpliwości. (z praktyki). Elektronika z wyświetlaczami LED jednak się trochę grzeje i to jednak ma wpływ na pomiar. Moim zdaniem czujnik powinien być poza obudową.
    Pomiary temperatury na DS18B20 to klasyka.
    Przerabiałem to kiedyś. W końcu jednak zrobiłem moduły bezprzewodowe i święty spokój z kablami.
    Tutaj plus za wykorzystanie podzespołów z szuflady.
  • REKLAMA
  • #5 21904818
    Tytus Kosiarski
    Poziom 16  
    Posty: 288
    Pomógł: 10
    Ocena: 519
    Tak, jeden z czujników jest w obudowie. I fakt, w tej małej obudowie miałem problemy z podgrzewaniem wnętrza tej obudowy, stąd obniżenie napięcia zasilania, realizacja programowego PWM do zasilania wyświetlaczy oraz usunięcie stabilizatora z wnętrza tej obudowy.

    W tej większej nie było w ogóle takich problemów podczas uruchamiania i widziałem podczas użytkowania w tym samym pokoju z termometrem na ATTiny84, że wskazania temperatury w pokoju są porównywalne. Być może zasługą tego (oprócz większej obudowy) jest fakt posadzenia wbudowanego czujnika na osobnej małej PCB z gniazdami.
  • #6 21905011
    Simon79
    Poziom 21  
    Posty: 423
    Pomógł: 29
    Ocena: 389
    Fajnie, że w dzisiejszych czasach są osoby, które wykonują swoje projekty od podstaw, nie tylko na chińskich modułach, i nie koniecznie na STM'ach. Ja mam jeszcze do użycia Intel 8048 😁. Cenowo jednak taka zabawa nie ma sensu, ale hobby nie musi być opłacalne.
📢 Słuchaj (AI):
REKLAMA