Jak podłączyć DS18B20 do Arduino i ESP32 bez błędów

Marcel Zieliński .

8 listopada 2026

Schemat podłączenia czujnika temperatury DS18B20 do ESP32. Widoczny moduł Wi-Fi, płytka stykowa i rezystor.

Jedno źle rozpoznane wyprowadzenie albo brak rezystora podciągającego wystarczy, żeby DS18B20 zwracał błędne odczyty lub nie został wykryty wcale. Pokażę sprawdzony schemat podłączenia czujnika, różnice między zasilaniem klasycznym i pasożytniczym, zasady dla Arduino oraz ESP32, a także sposób diagnozowania typowych problemów.

Trzy przewody i jeden rezystor wystarczą do pewnego odczytu

  • VDD podłącz do napięcia zasilania, GND do masy, a DQ do wybranego wejścia cyfrowego.
  • Między linię danych DQ a VDD dodaj rezystor podciągający 4,7 kΩ.
  • W przypadku ESP32 i ESP8266 użyj zasilania oraz podciągania do 3,3 V.
  • Do długich przewodów lepiej wybrać zasilanie trzyprzewodowe niż tryb pasożytniczy.
  • Kolory przewodów w wodoodpornych sondach nie są całkowicie uniwersalne, dlatego trzeba sprawdzić je z dokumentacją lub miernikiem.

Najpierw rozpoznaj wyprowadzenia DS18B20

DS18B20 korzysta z magistrali 1-Wire, czyli do komunikacji wykorzystuje jedną linię danych. Sam czujnik potrzebuje jednak jeszcze masy i zasilania, dlatego najstabilniejsze połączenie ma trzy przewody.

W obudowie TO-92, przy patrzeniu na płaską stronę elementu, wyprowadzenia zwykle znajdują się od lewej w kolejności GND, DQ, VDD. Dotyczy to popularnego układu w obudowie tranzystorowej, ale przed podłączeniem zawsze sprawdzam oznaczenie konkretnej wersji. Pomylenie VDD z GND może uszkodzić czujnik.

Wyprowadzenie Funkcja Połączenie z mikrokontrolerem
GND Masa układu GND
DQ Dane magistrali 1-Wire Wybrany pin GPIO
VDD Zasilanie czujnika 3,3 V albo 5 V, zależnie od platformy

Wodoodporne sondy często mają czerwony przewód zasilania, czarny przewód masy oraz żółty albo biały przewód danych. To popularny układ, ale nie należy traktować kolorów jako pewnego standardu. Przy nieznanej sondzie lepiej sprawdzić ciągłość przewodu i oznaczenia płytki lub producenta.

Najpewniejsze podłączenie z zewnętrznym zasilaniem

W praktyce najczęściej wybieram klasyczny wariant trzyprzewodowy. VDD otrzymuje stałe zasilanie, GND trafia do masy, a DQ łączy się z wejściem cyfrowym. Między DQ i VDD trzeba dodać rezystor podciągający 4,7 kΩ.

Rezystor nie jest dodatkiem poprawiającym jakość odczytu, lecz elementem wymaganym przez sposób działania magistrali. Linia 1-Wire jest typu otwarty dren, więc urządzenia potrafią aktywnie zwierać ją do masy, ale nie wystawiają samodzielnie stanu wysokiego.

Element DS18B20 Arduino Uno ESP32 lub ESP8266
GND GND GND
DQ Wybrany pin cyfrowy, na przykład D2 Wybrany GPIO, na przykład GPIO 4
VDD 5 V 3,3 V
Rezystor 4,7 kΩ między DQ i 5 V 4,7 kΩ między DQ i 3,3 V

W przypadku Arduino Uno zasilanie 5 V jest naturalnym wyborem. Dla ESP32 i ESP8266 podciąganie powinno trafiać do 3,3 V, ponieważ ich wejścia GPIO nie są przeznaczone do pracy z poziomem 5 V. Sam czujnik może pracować przy niższym napięciu, więc nie ma potrzeby podawać mu 5 V tylko dlatego, że moduł Arduino ma takie wyjście.

Moduł z gotowym rezystorem

Niektóre płytki z DS18B20 mają już zamontowany rezystor 4,7 kΩ. Jeśli dołożę drugi bez sprawdzenia schematu, rezystancja zastępcza może spaść do około 2,35 kΩ. Przy krótkich przewodach zwykle nie powoduje to katastrofy, ale nie ma sensu obciążać magistrali bez wyraźnej potrzeby.

Najłatwiej sprawdzić płytkę wzrokowo albo zmierzyć rezystancję między DQ i VDD przy odłączonym zasilaniu. Dla gołego czujnika pomiar powinien pokazać brak takiego rezystora, a dla gotowego modułu często będzie widoczna wartość bliska 4,7 kΩ.

Zasilanie pasożytnicze ma zalety, ale wymaga dyscypliny

DS18B20 może działać w trybie parasite power, czyli bez osobnego przewodu zasilającego. W takim układzie VDD łączy się z GND, a układ pobiera energię z linii DQ przez rezystor podciągający.

To rozwiązanie ma sens tam, gdzie doprowadzenie trzeciego przewodu jest trudne. Sam stosuję je raczej przy krótkich połączeniach i prostych układach testowych, ponieważ podczas konwersji temperatury czujnik może potrzebować chwilowo do około 1,5 mA. Słaba linia danych albo długi przewód mogą wtedy powodować reset i losowe wyniki.

Wariant Zalety Ograniczenia
Zasilanie trzyprzewodowe Największa stabilność i prostsza diagnostyka Potrzebny dodatkowy przewód VDD
Zasilanie pasożytnicze Tylko dwa przewody do sondy Większa wrażliwość na długość przewodu i timing programu

W trybie pasożytniczym VDD musi być połączone z masą, a program sterujący powinien zapewnić odpowiednio silne podciąganie podczas konwersji. Jeśli dopiero uruchamiasz czujnik, nie zaczynałbym od tego wariantu. Klasyczne trzy przewody pozwalają szybciej odróżnić problem sprzętowy od błędu w kodzie.

Połączenie z Arduino i ESP32 w praktyce

Sam wybór pinu cyfrowego nie jest krytyczny, ale musi zgadzać się z konfiguracją programu. Jeśli przewód DQ trafi do GPIO 4, biblioteka 1-Wire również musi korzystać z GPIO 4. Częsty błąd polega na poprawnym zmontowaniu układu i pozostawieniu w kodzie innego numeru pinu.

Do pierwszego testu podłączam jeden czujnik, przewody możliwie krótko i bez płytki stykowej o luźnych stykach. Dopiero gdy odczyt jest stabilny, dokładam dłuższą sondę, kolejne urządzenia albo prowadzę przewody poza obudowę.

Przeczytaj również: Sonar - co to jest i jak działa? Przewodnik po technologii

Jeden przewód danych, wiele czujników

Każdy DS18B20 ma własny, unikalny 64-bitowy identyfikator. Dzięki temu kilka czujników może pracować na jednej magistrali, pod warunkiem że wszystkie mają wspólne GND, wspólną linię DQ i odpowiednio dobrane zasilanie.

Przy kilku sondach nie tworzę rozbudowanej topologii gwiazdy. Krótkie odgałęzienia zwykle działają, ale długie rozgałęzienia zwiększają pojemność przewodów i pogarszają kształt sygnału. Układ liniowy z krótkimi odczepami jest zazwyczaj bardziej przewidywalny.

Najczęstsze błędy i szybka diagnostyka

Jeżeli biblioteka nie wykrywa czujnika, nie zaczynam od wymiany kodu. Najpierw sprawdzam zasilanie, kolejność wyprowadzeń i rezystor. W większości prostych projektów problem leży właśnie w jednym z tych trzech miejsc.

Objaw Prawdopodobna przyczyna Co sprawdzić
Brak wykrytych urządzeń Pomyłka pinów lub brak rezystora Napięcie VDD, masę, DQ i rezystor 4,7 kΩ
Odczyt 85°C Wartość domyślna przed zakończeniem konwersji Czy program czeka na konwersję temperatury
Odczyty losowo znikają Za długi przewód, słabe styki lub zakłócenia Połączenia, prowadzenie przewodu i zasilanie trzyprzewodowe
Ujemne lub absurdalne wartości Błąd komunikacji albo uszkodzona sonda Inny czujnik, krótszy przewód i poprawny pin GPIO

Przewód danych i masa powinny biec blisko siebie, szczególnie przy dłuższej sondzie. Dobrze sprawdza się para skręcona, a przy przewodach prowadzonych obok silników, przekaźników lub przewodów zasilających warto ograniczyć długość równoległego odcinka.

Nie zakładam też, że wodoodporna obudowa oznacza pełną odporność całego połączenia. Sama sonda może być zabezpieczona, lecz złącze i miejsce łączenia przewodów nadal wymagają ochrony przed wilgocią.

Mały test przed zabudowaniem czujnika oszczędza najwięcej czasu

Przed zamknięciem układu sprawdzam napięcie między VDD i GND, a potem upewniam się, że linia DQ ma stan wysoki dzięki rezystorowi podciągającemu. Następnie uruchamiam odczyt z jednym czujnikiem i obserwuję kilka kolejnych pomiarów, zamiast uznawać pojedynczy wynik za dowód poprawnego działania.

Najrozsądniejszy zestaw startowy to zasilanie trzyprzewodowe, rezystor 4,7 kΩ, krótki przewód i jeden DS18B20. Taki układ jest prosty, tani i łatwy do sprawdzenia. Dopiero po uzyskaniu stabilnych odczytów warto przejść do długiej instalacji, wielu czujników albo trybu pasożytniczego.

FAQ - Najczęstsze pytania

W obudowie TO-92, patrząc na płaską stronę, wyprowadzenia zwykle są ułożone od lewej jako GND, DQ i VDD. W wodoodpornych sondach kolory przewodów nie są całkowicie uniwersalne, dlatego warto sprawdzić dokumentację, oznaczenia lub ciągłość przewodów miernikiem.
Między linię danych DQ a zasilanie VDD należy podłączyć rezystor podciągający 4,7 kΩ. Dla Arduino Uno rezystor podłącza się do 5 V, a dla ESP32 i ESP8266 do 3,3 V. Jeśli używasz gotowego modułu, sprawdź, czy rezystor 4,7 kΩ jest już na płytce.
Zasilanie trzyprzewodowe zapewnia większą stabilność i ułatwia diagnostykę, szczególnie przy długich przewodach. Tryb pasożytniczy wymaga połączenia VDD z GND i odpowiednio silnego podciągania podczas konwersji, dlatego lepiej stosować go przy krótkich przewodach i prostych testach.
Najpierw sprawdź napięcie VDD, masę, kolejność wyprowadzeń, rezystor 4,7 kΩ oraz zgodność pinu DQ z konfiguracją programu. Odczyt 85°C zwykle oznacza, że program odczytał wartość domyślną przed zakończeniem konwersji, więc trzeba zapewnić oczekiwanie na jej zakończenie.
Oceń artykuł

Średnia: 0.0 / 5 · 0 ocen

Tagi

ds18b20 arduino esp32 1-wire zasilanie pasożytnicze
Autor Marcel Zieliński
Marcel Zieliński
Nazywam się Marcel Zieliński i od trzech lat zajmuję się tematyką elektroniki, robotyki i programowania. Moje zainteresowanie tymi dziedzinami zaczęło się w dzieciństwie, kiedy to pierwszy raz zbudowałem prosty robot. Od tego momentu pasjonuję się odkrywaniem, jak technologia może ułatwiać życie i rozwiązywać codzienne problemy. W moich tekstach staram się w przystępny sposób tłumaczyć złożone zagadnienia, porównując różne źródła i śledząc aktualne trendy w branży. Zależy mi na tym, aby dostarczać czytelnikom rzetelne, zrozumiałe i użyteczne informacje, które pomogą im lepiej zrozumieć świat elektroniki i robotyki.
Komentarze (0)
Dodaj komentarz