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

DS18B20 na Arduino Mega - błędy odczytu z termometrami na długich przewodach

24 Sty 2019 18:54 4056 55
Najlepsze odpowiedzi

Dlaczego DS18B20 na Arduino Mega zaczynają błędnie odczytywać temperaturę na długim przewodzie i jak poprawić niezawodność magistrali 1‑Wire?

Problemem jest najpewniej duża pojemność długiej magistrali 1‑Wire i zbyt wolne zbocza albo złe timingi w implementacji, a nie sama rezystancja przewodu [#17733366][#17734608] Zmniejsz rezystor podciągający z 4,7 kΩ do ok. 2 kΩ, a nawet około 1,2 kΩ; w testach na 18 m skrętki przy 1,2 kΩ uzyskano 0% błędów dla kilku czujników [#17729068][#17729861] Do większych odległości lepiej użyć skrętki/UTP o znanych parametrach niż „zwykłego” kabla telefonicznego [#17733719] Warto też nie zgadywać, tylko logować reset, presence, search ROM, match ROM, odczyt scratchpada i sprawdzać CRC, bo część błędów to pojedyncze przekłamania bitów [#17734426] Jeśli nadal będzie niestabilnie, rozważ gotowy master 1‑Wire typu DS248x albo rozwiązanie oparte o UART zamiast bit-bangingu na GPIO [#17733366]
Wygenerowane przez model językowy.
REKLAMA

Podsumowanie tematu

✨ Użytkownik buduje stację pogodową z wykorzystaniem Arduino Mega 2560 i termometrów DS18B20, które są podłączone na długich przewodach. Napotyka problemy z błędnymi odczytami temperatury, szczególnie przy długości przewodów do 30 m. Po zastosowaniu rezystora podciągającego 150 Ohm, liczba błędów spadła do 1-2%. Użytkownik eksperymentuje z różnymi rezystorami, co przynosi poprawę, a także zmienia przewody na skrętkę, co również wpływa na jakość odczytów. W miarę upływu czasu, liczba błędnych odczytów maleje, co sugeruje, że przewody mogą "kondycjonować się" podczas pracy. Użytkownik planuje dalsze testy oraz rozważa użycie układów DS2482 do poprawy stabilności systemu.
Wygenerowane przez model językowy.
REKLAMA