DS18B20 - Podłącz czujnik temperatury bez błędów!

Miłosz Szymczak .

21 lutego 2026

Schemat podłączenia czujnika temperatury DS18B20 do ESP32 na płytce stykowej.

Podłączenie czujnika DS18B20 wygląda prosto, ale w praktyce o powodzeniu decydują trzy rzeczy: kolejność wyprowadzeń, rezystor podciągający i właściwy sposób zasilania. Poniżej pokazuję, jak zrobić to poprawnie za pierwszym razem, jak dołożyć kilka czujników do jednej magistrali i kiedy tryb pasożytniczy bardziej przeszkadza niż pomaga. Dorzucam też zestaw typowych błędów, bo to właśnie one najczęściej psują odczyty temperatury.

Najważniejsze zasady, które od razu działają w praktyce

  • Najbezpieczniej zacząć od zasilania trójprzewodowego z rezystorem 4,7 kΩ między DQ i VDD.
  • W wersji TO-92 patrząc na płaską stronę obudowy kolejność pinów to GND, DQ, VDD.
  • Na jednej linii można mieć kilka DS18B20, bo każdy ma własny 64-bitowy identyfikator.
  • Tryb pasożytniczy oszczędza przewód, ale wymaga mocnego podciągnięcia i jest mniej odporny na zakłócenia.
  • Przy 12 bitach konwersja trwa do 750 ms, więc natychmiastowy odczyt po starcie często jeszcze nic nie mówi.

Schemat podłączenia czujnika DS18B20 do Arduino Uno przez adapter.

Jak rozpoznać piny i nie pomylić strony czujnika

Najpierw trzeba odróżnić sam układ w obudowie TO-92 od gotowej sondy na kablu, bo to dwie różne sytuacje montażowe. W klasycznej obudowie TO-92, patrząc na płaską stronę i trzymając nóżki w dół, kolejność wyprowadzeń jest prosta: GND, DQ, VDD. To drobiazg, który oszczędza sporo nerwów, bo zamiana zasilania z linią danych zwykle kończy się ciszą na magistrali, a nie eleganckim komunikatem o błędzie.

W gotowych sondach przewodowych kolory bywają najczęściej takie: czerwony to zasilanie, czarny masa, a żółty albo biały to sygnał. Ja mimo wszystko zawsze sprawdzam opis konkretnego produktu, bo producenci potrafią zmieniać kolorystykę bez większej logiki. W praktyce ważniejsze od koloru jest to, by GND był wspólny z mikrokontrolerem, a DQ trafił do właściwego pinu GPIO.

DQ pracuje jak linia open-drain, czyli urządzenia nie wymuszają na niej stanu wysokiego samodzielnie. Stan „1” pojawia się dzięki rezystorowi podciągającemu, dlatego w 1-Wire nie wystarcza zwykłe „podłączam przewód do pinu i działa”. Skoro piny są już jasne, czas przejść do schematu, który faktycznie działa w praktyce.

Najpewniejszy schemat połączeń z jednym mikrokontrolerem

Jeżeli mam doradzić jeden wariant na start, wybieram normalne zasilanie, a nie tryb pasożytniczy. DS18B20 pracuje z napięciem VDD od 3,0 do 5,5 V, więc podłączasz czujnik do tej samej szyny zasilania, z której korzysta mikrokontroler, łączysz masę wspólną, a linię DQ podciągasz do VDD przez rezystor 4,7 kΩ. To właśnie ten rezystor robi największą różnicę w stabilności odczytów.

Wariant Jak wygląda Kiedy ma sens Co ogranicza
Normalne zasilanie GND, DQ, VDD + 4,7 kΩ między DQ i VDD Prawie zawsze, zwłaszcza na starcie i przy dłuższym przewodzie Wymaga jednej żyły więcej
Tryb pasożytniczy GND i DQ, a VDD do GND Gdy liczba przewodów jest naprawdę ograniczona Wymaga mocnego podciągnięcia i jest mniej odporna na zakłócenia

Przy układach 3,3 V, takich jak ESP32 czy Raspberry Pi, najprościej zasilać czujnik z 3,3 V i do tej samej szyny podciągnąć DQ. Przy klasycznym Arduino 5 V zasada jest identyczna, tylko rezystor idzie do 5 V. Ja zwykle zaczynam właśnie od tego wariantu, bo eliminuje najwięcej niepotrzebnych zmiennych.

  1. Połącz GND czujnika z masą mikrokontrolera.
  2. Połącz VDD z zasilaniem 3,3 V albo 5 V, zgodnym z logiką układu.
  3. Połącz DQ z dowolnym pinem cyfrowym, który będzie obsługiwany przez bibliotekę 1-Wire.
  4. Wstaw rezystor 4,7 kΩ między DQ i VDD.
  5. Sprawdź, czy przewody są krótkie i dobrze dociśnięte, zanim zaczniesz szukać problemu w programie.

Gdy ten układ działa, można spokojnie rozbudowywać magistralę o kolejne czujniki bez zmiany podstawowego schematu.

Jak podłączyć kilka czujników do jednej magistrali

Jedna z najlepszych cech DS18B20 jest taka, że kilka sztuk może wisieć na tej samej linii danych. Każdy egzemplarz ma własny 64-bitowy identyfikator, więc mikrokontroler rozróżnia je programowo, a nie po osobnych przewodach sygnałowych. W praktyce oznacza to proste okablowanie: wszystkie GND razem, wszystkie DQ razem i jeden wspólny rezystor podciągający.

Tu pojawia się jednak ważny detal mechaniczny. Przy dłuższych przewodach najlepiej prowadzić magistralę liniowo, a odgałęzienia zostawiać możliwie krótkie. Układ w formie gwiazdy często działa na biurku, ale potem zaczyna gubić odczyty po zamknięciu obudowy albo po dołożeniu trzeciego sensora. To nie jest drobiazg estetyczny, tylko realny problem sygnałowy.

  • Magistrala liniowa zwykle daje stabilniejszą pracę niż rozgałęzienia w gwiazdę.
  • Jeden rezystor 4,7 kΩ wystarcza dla całej wspólnej linii DQ w typowym układzie.
  • Dłuższe przewody warto prowadzić skrętką albo przewodem o lepszej odporności na zakłócenia.
  • Adresowanie programowe pozwala rozpoznać, który czujnik jest który, bez przepinania kabli.

Jeśli planujesz trzy, pięć albo więcej czujników, to właśnie topologia okablowania często decyduje o sukcesie. Właśnie dlatego warto świadomie ocenić, czy w ogóle potrzebujesz trybu pasożytniczego.

Tryb pasożytniczy ma sens tylko w konkretnych sytuacjach

Tryb pasożytniczy kusi tym, że ogranicza liczbę żył, ale ja traktuję go jako wyjątek, nie domyślne rozwiązanie. W tym wariancie VDD łączy się z masą, a czujnik pobiera energię z linii DQ. Z dokumentacji układu wynika, że podczas konwersji temperatury master musi bardzo szybko zapewnić mocne podciągnięcie magistrali i utrzymać je przez cały czas pomiaru. W tym czasie nie powinno się wykonywać innych operacji na 1-Wire.

To rozwiązanie ma sens głównie wtedy, gdy naprawdę brakuje przewodów i instalacja jest krótka. Przy dłuższych kablach, kilku czujnikach albo pracy w trudniejszych warunkach zwykle lepiej wybrać normalne zasilanie. Producent nie zaleca też trybu pasożytniczego przy temperaturach powyżej +100°C, bo układ może mieć problem z utrzymaniem komunikacji.

Kryterium Normalne zasilanie Tryb pasożytniczy
Stabilność Wysoka Niższa
Liczba przewodów Większa Mniejsza
Obsługa wielu czujników Wygodna Trudniejsza
Przydatność przy długim kablu Lepsza Gorsza

Jeśli zależy Ci na układzie, który ma po prostu działać, to tryb pasożytniczy zostawiłbym na koniec, a nie na pierwszy prototyp. Żeby nie zgadywać, dobrze jest znać objawy typowych błędów i ich przyczyny.

Najczęstsze błędy, które psują odczyt temperatury

W praktyce większość problemów z DS18B20 nie wynika z uszkodzonego czujnika, tylko z okablowania albo zbyt optymistycznych założeń co do magistrali. Najbardziej charakterystyczny objaw to wartość 85°C zaraz po starcie. To nie musi oznaczać realnej temperatury, tylko stan domyślny po włączeniu zasilania albo odczyt wykonany przed zakończeniem konwersji.

Objaw Najczęstsza przyczyna Co sprawdzam najpierw
Brak odpowiedzi z czujnika Zła kolejność pinów albo brak wspólnej masy Pinout, połączenie GND i rezystor podciągający
Stałe 85°C Odczyt za wcześnie po starcie lub po resecie zasilania Czy czekam wystarczająco długo na konwersję
Skaczące wyniki Za długi przewód, gwiazda zamiast magistrali, zbyt słabe podciągnięcie Topologię kabla i obecność 4,7 kΩ
Błędy CRC w bibliotece Zakłócenia lub słabe styki Połączenia, przewody, długość linii i jakość zasilania
Pomiar trwa „wieczność” Wysoka rozdzielczość lub niecierpliwe odpytywanie układu Ustawienie 9/10/11/12 bitów i czas konwersji

Jeśli problem pojawia się dopiero po zamknięciu obudowy albo po wydłużeniu kabla, podejrzewam najpierw warstwę fizyczną, nie bibliotekę. Na końcu zostaje kilka ustawień, które robią największą różnicę przy dłuższych przewodach i codziennym użytkowaniu.

Jak ustawić czujnik, żeby działał bez niespodzianek

Gdy buduję taki układ od zera, trzymam się trzech zasad: normalne zasilanie, rezystor 4,7 kΩ i możliwie krótka, liniowa magistrala. Dopiero kiedy wszystko działa stabilnie, kombinuję z oszczędzaniem żył albo z wyższą rozdzielczością. To ważne, bo wyższa rozdzielczość nie poprawia samej dokładności układu, tylko zmienia krok pomiaru i czas oczekiwania.

DS18B20 pozwala ustawić rozdzielczość od 9 do 12 bitów. Przy 9 bitach konwersja trwa około 93,75 ms, przy 10 bitach 187,5 ms, przy 11 bitach 375 ms, a przy 12 bitach aż 750 ms. W wielu projektach 10 albo 11 bitów wystarcza z zapasem, bo zysk z 12 bitów bywa mniejszy niż dodatkowe czekanie na wynik.

Na pierwszy start nie irytuje mnie też odczyt 85°C. Sprawdzam wtedy, czy konwersja już się zakończyła, czy magistrala ma poprawne podciągnięcie i czy przewody nie robią niepotrzebnych problemów. Jeśli układ ma działać w szafie sterowniczej, na zewnątrz albo przy kilku czujnikach naraz, zwykle bardziej opłaca się dopracować okablowanie niż szukać skrótów w zasilaniu.

W praktyce najkrótsza droga do stabilnego działania wygląda tak: wspólna masa, poprawny pinout, 4,7 kΩ na DQ, sensowna topologia kabla i cierpliwość przy pierwszej konwersji. Gdy trzymasz się tych zasad, DS18B20 jest wdzięcznym czujnikiem i bardzo dobrze znosi zarówno proste projekty amatorskie, jak i bardziej rozbudowane instalacje.

FAQ - Najczęstsze pytania

Najbezpieczniej jest użyć rezystora 4,7 kΩ. Podłącz go między linię DQ a VDD. Ten rezystor jest kluczowy dla stabilności odczytów, szczególnie przy zasilaniu trójprzewodowym i dłuższych przewodach. Zapewnia prawidłowe działanie magistrali 1-Wire.
Patrząc na płaską stronę obudowy TO-92, trzymając nóżki w dół, kolejność pinów to: GND (masa), DQ (linia danych), VDD (zasilanie). Prawidłowe podłączenie pinów jest kluczowe, aby uniknąć problemów z komunikacją i błędnych odczytów.
Tak, możesz podłączyć wiele czujników DS18B20 do tej samej linii danych (DQ). Każdy czujnik ma unikalny 64-bitowy identyfikator, co pozwala mikrokontrolerowi rozróżniać je programowo. Pamiętaj o liniowej topologii magistrali i jednym rezystorze podciągającym dla całej linii.
Tryb pasożytniczy ma sens, gdy liczba przewodów jest bardzo ograniczona, a instalacja krótka. VDD jest wtedy połączone z masą, a czujnik pobiera energię z linii DQ. Jest to jednak mniej stabilne rozwiązanie, wymagające mocnego podciągnięcia i wrażliwe na zakłócenia, zwłaszcza przy dłuższych kablach czy wysokich temperaturach.
Odczyt 85°C często wskazuje na problem, a nie rzeczywistą temperaturę. Może to być domyślna wartość po włączeniu zasilania lub sygnał, że odczyt nastąpił zbyt wcześnie, zanim czujnik zakończył konwersję temperatury. Sprawdź czas oczekiwania na konwersję i poprawne podłączenie.
Oceń artykuł

Średnia: 0.0 / 5 · 0 ocen

Tagi

ds18b20 podłączenie podłączenie czujnika ds18b20 do arduino schemat podłączenia ds18b20 ds18b20 tryb pasożytniczy błędy ds18b20
Autor Miłosz Szymczak
Miłosz Szymczak
Nazywam się Miłosz Szymczak i od ponad pięciu lat zajmuję się analizą i tworzeniem treści związanych z elektroniką, robotyką oraz programowaniem. Moje doświadczenie obejmuje zarówno badania rynkowe, jak i praktyczne aspekty tych dziedzin, co pozwala mi na głębokie zrozumienie najnowszych trendów oraz technologii. Specjalizuję się w prostym przedstawianiu złożonych zagadnień technicznych, co sprawia, że moje artykuły są dostępne zarówno dla ekspertów, jak i dla osób dopiero zaczynających swoją przygodę z tymi tematami. Dążę do zapewnienia rzetelnych i aktualnych informacji, które pomogą moim czytelnikom lepiej orientować się w dynamicznie rozwijającym się świecie elektroniki i robotyki. Moim celem jest promowanie wiedzy oraz inspirowanie innych do odkrywania możliwości, jakie te technologie oferują. Dzięki mojemu zaangażowaniu w tworzenie wartościowych treści, mam nadzieję, że przyczyniam się do budowania społeczności pasjonatów i profesjonalistów w tych fascynujących dziedzinach.
Komentarze (0)
Dodaj komentarz