Skocz do zawartości
zbyngniew

Podłączenie czujnika temperatury DB18B20 do Arduino

Pomocna odpowiedź

Witam, 

niestety posiadam ten sam błąd co kolega D3binski.

Podłączenia jestem jednak prawie pewien, podsyłam jednak fotkę (proszę bez zbędnych komentarzy na temat lutowania, jest to wersja prototypowa :D) 

U mnie różnica polega na tym, że mój czujnik jest na długim kablu - 3m. 

Aby ułatwić Wam, próbowałem podłączenia na obydwa sposoby - zamiana GND i Vod. Znalazłem w internecie, że kolory to:

1. żółty (DQ)

2. czerwony (Vod)

3. czarny (GND). 

Cały czas wyświetla temp. -127 C :( 

Co robię źle? Może przez długość kabla? albo lutowanie do bani? Proszę o pomoc. Program wzięty najprostszy, pierwszy tut z czujnikiem DB18B20.

Arduino działa, wgrywałem program Blink.

WhatsApp Image 2018-11-12 at 22.16.51.png

WhatsApp Image 2018-11-12 at 22.16.51(1).jpg

Udostępnij ten post


Link to post
Share on other sites

@zbyngniew, witam na forum 😉 Widzę, że to Twoje pierwsze kroki na Forbocie, oto najważniejsze informacje na start:

  • Chcesz przywitać się z innymi członkami naszej społeczności? Skorzystaj z tematu powitania użytkowników.
  • Opis najciekawszych funkcji, które ułatwiają korzystanie z forum znajdziesz w temacie instrukcja korzystania z forum - co warto wiedzieć?
  • Poszczególne posty możesz oceniać (pozytywnie i negatywnie) za pomocą reakcji - ikona serca w prawym dolnym rogu każdej wiadomości.

Dnia 12.11.2018 o 22:22, zbyngniew napisał:

Co robię źle? Może przez długość kabla? albo lutowanie do bani? Proszę o pomoc. Program wzięty najprostszy, pierwszy tut z czujnikiem DB18B20.

Przepraszam za brak odpowiedzi, ale Twoje pytanie zupełnie mi umknęło. Czy problem jest nadal aktualny?

PS temat wydzieliłem z komentarzy do kursu Arduino, ponieważ pytasz o minimalnie inny sprzęt niż tam opisany. To tylko dla utrzymania większego porządku 😉

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
Dnia 20.11.2018 o 15:23, Treker napisał:

Przepraszam za brak odpowiedzi, ale Twoje pytanie zupełnie mi umknęło. Czy problem jest nadal aktualny?

Hej,
dzięki za uwagi, przyda się! Tak, problem aktualny. To moje pierwsze kroki z elektroniką, na co dzień jestem budowniczym jachtowym 🙂 

Problem jest dalej aktualny, potrzebuje takiego układu do komory wygrzewania wyrobów na żywicach epoksydowych. Przy okazji, naszpikuje tym mieszkanie 😄 

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Cześć,

pierwszy tutek na jaki natrafiłem jest na stronie Arduino i tam czujnik jest podpinany do pinu D5 (5), a u Ciebie jest wpięty w A5. (https://create.arduino.cc/projecthub/iotboys/how-to-use-ds18b20-water-proof-temperature-sensor-2adecc)

Odpowiedz w stylu, "nie wiem, ale się wypowiem", gdyż nie podałeś zbyt wielu szczegółów i ciężko wrócić do wątku z którego zostało to wydzielone. Taka moja pierwsza myśl. 

Może podaj źródło z którego korzystasz.

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Hej, pokaż kod, wywal te kabelki, bo wyglądają na dość grube i podłącz czujnik bezpośrednio do płytki stykowej. Ew. ja tak kombinowałem, że jak masz jakieś dziwne przewody do zamiast opornika daj potencjometr 5kOm i próbuj przy różnych ustawieniach czy coś czyta. Ale ja bym te przewody odlutował i wpiął DS18B20 (nie db) prosto do płytki.

Edytowano przez SOYER

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Można się także pokusić o uruchomienie tego programu http://playground.arduino.cc/Learning/OneWire

Wyświetla dużo informacji diagnostycznych. Piszesz o zamianie podłączenia pinów GND i Vod - co to Vod, nie znajduję takiego w tym układzie.

PS. Tu jest też fajny tekst na ten temat - zobacz

Edytowano przez Belferek

Udostępnij ten post


Link to post
Share on other sites

Panowie, doceniam Waszą chęć pomocy, ale pamiętajcie proszę, aby doradzać z rozwagą (szczególnie, jeśli nie jesteście czegoś pewni). Nie piszę tego złośliwe, tylko zwracam uwagę, aby nie zapędzać się w poradach, bo czasami można nakierować kogoś w złą stronę 😉

2 godziny temu, Zero napisał:

pierwszy tutek na jaki natrafiłem jest na stronie Arduino i tam czujnik jest podpinany do pinu D5 (5), a u Ciebie jest wpięty w A5.

Czujniki 1-wire mogą działać na dowolnych pinach, nie ma tu większej różnicy. Skoro w kursie działało na A5 to tutaj również powinno 😉 

29 minut temu, SOYER napisał:

Hej, pokaż kod, wywal te kabelki, bo wyglądają na dość grube i podłącz czujnik bezpośrednio do płytki stykowej.

Byłoby to ciężkie, szczególnie, że ze zdjęcia widać, że autor tematu korzysta z gotowej, wodoodpornej sondy tego typu jak poniżej. Ucinanie przewodów to raczej zły pomysł 😉

sonda-wodoodporna-z-czujnikiem-temperatury-ds18b20-3m.jpg

21 minut temu, Belferek napisał:

Można się także pokusić o uruchomienie tego programu http://playground.arduino.cc/Learning/OneWire

Skoro program z kursu działał, to raczej wymiana na inny program wiele nie zmieni, bo ten czujnik również powinien na nim ruszyć 😉 

Dnia 12.11.2018 o 22:22, zbyngniew napisał:

1. żółty (DQ)

2. czerwony (Vod)

3. czarny (GND). 

Cały czas wyświetla temp. -127 C 😞

Co robię źle? Może przez długość kabla? albo lutowanie do bani?

@zbyngniew, tak, te przypisanie sygnałów do kolorów jest poprawne i ze zdjęcia wynika, że całość jest podłączona raczej poprawnie. Możesz pokazać dokładnie program, który masz wgrany na Arduino? Wklej tutaj cały kod. Czasami przy dłuższych przewodach może być potrzebny mniejszy rezystor podciągający, ale lepiej najpierw sprawdzić Twój program 😉

Jeszcze pytania dodatkowe:

  1. Czy masz dostęp do zwykłego czujnika bez takiej obudowy?
  2. Czy jesteś pewien, że przy różnych próbach nie podłączyłeś błędnie zasilania (co mogłoby doprowadzić do uszkodzenia czujnika)?
  3. Czy sprawdzałeś miernikiem, że wszystkie połączenia na 101% przewodzą? Tak, aby wykluczyć problem z płytką stykową, kablami, lutowaniem itd.?

Udostępnij ten post


Link to post
Share on other sites
11 minut temu, Treker napisał:

Skoro program z kursu działał, to raczej wymiana na inny program wiele nie zmieni

Masz rację wiele nie zmieni, ale program z kursu skupia się na wyświetleniu temperatury, a nie na diagnostyce układu, a chodzi o to, że nie działa jak należy.

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Faktycznie, teraz zauważyłem, że czujnik jest na oryginalnym kablu 3m, mój błąd, przepraszam. Teraz jestem prawie pewny, że problem jest w oporniku podciągającym. Zaczął bym od popróbowania z innymi wartościami rezystora lub potencjometrem. Co oczywiście jest pewnym obejściem problemu, ale u mnie pomagało....

39 minut temu, Treker napisał:

Czy jesteś pewien, że przy różnych próbach nie podłączyłeś błędnie zasilania (co mogłoby doprowadzić do uszkodzenia czujnika)?

Generalnie u mnie były dość odporne:-D Przy złym podłączeniu grzeją się niemiłosiernie, ale nawet kilkuminutowe takie podłączenie, nie spowodowało u mnie (znaczy mojego czujnika) trwałego uszkodzenia.

Edytowano przez SOYER

Udostępnij ten post


Link to post
Share on other sites
7 minut temu, SOYER napisał:

Zaczął bym od popróbowania z innymi wartościami rezystora lub potencjometrem.

Potencjometr to dość ryzykowane rozwiązanie, bo można doprowadzić do "podciągnięcia" przez 0R. Korzystałem z identycznej sondy i wszystko działało u mnie bez zmian opornika. Nie pamiętam tylko jak długi miałem przewód (ale na pewno ponad 1m). Dlatego najpierw wolałbym zobaczyć program użyty przez autora tematu 😉

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Właśnie te 3m to raczej mało i rezystor 4,7 powinien być ok, albo kod albo kabelki:-)) innej opcji nie ma... Kolega się rano obudzi to wklei 😉
Ja siedzę z Arleną i uczę się wymowy 😄

Edytowano przez Treker
Poprawiłem formatowanie.
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Witam Was serdecznie, 

wybaczcie za długi brak odzewu, niestety brak czasu. 

Kod poniżej. 

#include <OneWire.h>
#include <DallasTemperature.h>
 
OneWire oneWire(A5); //Podłączenie do A5
DallasTemperature sensors(&oneWire); //Przekazania informacji do biblioteki
 
void setup(void) {
  Serial.begin(9600);
  sensors.begin(); //Inicjalizacja czujnikow
}
 
void loop(void) { 
  sensors.requestTemperatures(); //Pobranie temperatury czujnika
  Serial.print("Aktualna temperatura: ");
  Serial.println(sensors.getTempCByIndex(0));  //Wyswietlenie informacji
  delay(500);
}

 

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Ze zdjęcia autora tematu wynika że GND jest źle podpięte do arduino (czarny przewód z sondy nie idzie 5V, czerwony idzie chyba do 3,3V, IOREF lub RESET). Niestety dokładnie nie widać bo zdjęcie jest źle wykadrowane.

Proszę o przyjrzenie się temu...

 

Wyprowadzeniami są izolowane przewody: (ze strony botland, opis wyprowadzeń zamieszczony przy produkcie)

zasilanie VCC - czerwony

masa GND - czarny lub zielony

dane 1-wire - biały lub żółty

 

U Ciebie wg zdjęcia jest coś nie tak...

Edytowano przez lukaszd82

Udostępnij ten post


Link to post
Share on other sites

Kup sobie sam nowy czujnik i wepnij do płytki. Jak podłączyłeś odwrotnie GND i VCC (5V) to ten czujnik może już być uszkodzony. Kod jest OK, podpięcia nie widać z fotek, jak byś umiał odczytać schemat i go użyć to możesz pokazać co gdzie podpiąłeś na schemacie, albo wykonaj tak zdjęcia by wszystkie połączenia było widać, raczej jest źle już zauważono.

Udostępnij ten post


Link to post
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »

×