SOYER Napisano Maj 15, 2019 Udostępnij Napisano Maj 15, 2019 (edytowany) Hejka, podłączyłem 3 szt ww. czujników temperatury (https://botland.com.pl/pl/czujniki-temperatury/2558-czujnik-temperatury-tmp36gt9z-analogowy-tht.html)do arduino. Każdy czujnik podłaczony skrętką UTP o długości ok. 1-2m do puszki instalacyjnej(gwiazda), a następnie pojedynczą skrętką UTP (przewodzącą też zasilanie czujników) o długości ok 6m podłączone do arduino. Problemem jest niestabilny odczyt temperatury, odchylenia rzędu nawet 5 stopni. Pytanie, gdzie leży problem? Rodzaj przewodów, ich dlugość? Może jakieś kondensatory? Edytowano Maj 15, 2019 przez SOYER Link do komentarza Share on other sites More sharing options...
Belferek Maj 15, 2019 Udostępnij Maj 15, 2019 (edytowany) A datasheet tego układu czytałeś? Są tam fragmenty zatytułowane "USING TMP3x SENSORS IN REMOTE LOCATIONS" i "DRIVING LONG CABLES OR HEAVY CAPACITIVE LOADS" - mogą się przydać Edytowano Maj 15, 2019 przez Belferek 1 Link do komentarza Share on other sites More sharing options...
SOYER Maj 15, 2019 Autor tematu Udostępnij Maj 15, 2019 (edytowany) Czyli 750 Om na wyjściu i 1uF między plusem i minusem....? Edytowano Maj 16, 2019 przez SOYER Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Maj 16, 2019 Udostępnij Maj 16, 2019 Ogólnie taka sugestia na przyszłość, że jak coś jest "analogowe" to podłączanie tego na długich przewodach to proszenie się o kłopoty 😉 Tutaj małe zakłócenie przekłamuje całkiem odczyt temperatury, a Ty masz podłączony 2 metrowy przewód, który jak antena zbiera wszelkie śmieci z powietrza. Pewnie nawet jak ktoś podejdzie w okolice tego przewodu to już zmienią się wskazania. Tutaj lepiej sprawdziłoby się coś cyfrowego. 7 godzin temu, SOYER napisał: Czyli 750 Om na wyjściu i 1uF między plusem i minusem....? Spróbuj 750R i 0,1uF (tak jak w nocie), powinno pomóc. Tylko umieść kondensator blisko czujnika, a nie po drugiej stronie obwodu. 1 1 Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
SOYER Maj 16, 2019 Autor tematu Udostępnij Maj 16, 2019 Faktycznie, 0.1, a ja napisałem 1uF. To jakie polecacie czujniki temperatury do długich przewodów. DS18B20 cyfrowe też odpadają z powodu pojemności długich przewodów.... Link do komentarza Share on other sites More sharing options...
ethanak Maj 16, 2019 Udostępnij Maj 16, 2019 34 minuty temu, SOYER napisał: DS18B20 cyfrowe też odpadają z powodu pojemności długich przewodów.... A ile Ty masz tego przewodziku... osiem metrów raptem 🙂 Powinno działać bez problemu (oczywiście na trzech przewodach, a nie na pasożytniczym). Jeśli nie - zawsze możesz w tę puszkę wrzucić jakiegoś klona Pro Mini za dychę (taniej wyjdzie niż ATmega), niech zbiera sobie dane z termometrów i pcha serialem do następnego. 1 Link do komentarza Share on other sites More sharing options...
marek1707 Maj 16, 2019 Udostępnij Maj 16, 2019 Rozdział dokumentacji pt. "..remote locations" dotyczy naprawdę dużych odległości, gdzie zamieniamy sygnał napięciowy na prąd w pętli - aż takiej armaty nie trzeba w tym przypadku używać. Za to informacje o sterowaniu dużych obciążeń pojemnościowych mogą się przydać, bo właśnie filtra tu brakuje. SOYER zrób tak: Przy samym czujniczku dajesz kondensator 100nF-1uF między zasilaniem a masą scalaka. Wielkość pojemności zupełnie nie jest krytyczna. Może lepiej żeby było to coś ceramicznego niż wiekowy elektrolit wyciągnięty z czeluści szuflady, choć oczywiście nowo kupiony 1uF będzie OK. Po drugiej stronie masz wejście przetwornika ADC i to tutaj musisz odfiltrować śmiecie jakie weszły na kabel i które widzisz jako przypadkowe zmiany temeperatury. Do kabla prowadzącego sygnał dajesz zatem opornik szeregowo (to może być 100R-1k) i od wejścia analogowego kondensator do masy. Tutaj musisz poeksperymentować, bo wcale nie jest oczywiste jakiego typu zakłócenia widzi Twój ADC. Jeżeli są to częstotliwości radiowe (komórka, WiFi itp źródła) prostowane na którymś złączu p-n i dodające się do sygnału temperatury, to para 100R/10nF w zupełności wystarczy. Natomiast jeśli jest to raczej 50/100Hz z sieci AC, to wtedy filtr powinien być raczej spory, np. 1k/10uF. Tutaj uważaj, bo opornik szeregowy może zacząć dawać błąd gdy przez niego płynie prąd. Normalnie taka sytaucja nie zachodzi, bo wejścia ADC są bardzo wysokoomowe i prądu nie biorą, ale spory elektrolit - jeśli taki zapakujesz do filtra może swoje uA brać z upływności. A 20uA na 1k robi już 20mV co zaczyna być widać. Także - rozsądnie. Przy długich przewodach także na linii zasilania robi się niefajnie i niestety działa to w dwie strony, tj. śmiecie łapane przez kabel mogą wpływać nie tylko na czujnik, ale także przedostają się do zasilania Arduino. Bo zakładam, że po "pierwotnej" stronie masz jakiś tego typu komputerek. Tak więc tuż przy złączu przez, które wysyłasz 5V do czujnika daj jakiś nieduży opornik szeregowy, np. 33-100R. Odseparuje on paskudny kabel od Twojego Vcc a ostatnią rzeczą jaką byś chciał to zasyfienie sobie tej szyny (z której korzysta cały systemna płytce) przez coś z powietrza. Może dla pewności narysuj i wrzuć tu schemat tego co masz zrobić z rozróżnieniem miejsc włączenia poszczególnych elementów 🙂 1 1 Link do komentarza Share on other sites More sharing options...
SOYER Maj 16, 2019 Autor tematu Udostępnij Maj 16, 2019 Dziękuję za odpowiedzi. Postaram się wieczorem to rozrysować. Jeszcze jedno, czy będzie błędem danie tych kondensatorów 100nF-1uF, zamiast przy samym czujniki, to w tej puszce o której pisałem pierwszym poście? Nie musiałbym wyciągać wszystkich czujników, rozlutowywać... Link do komentarza Share on other sites More sharing options...
marek1707 Maj 16, 2019 Udostępnij Maj 16, 2019 No wiesz, ktoś kto ma milion jest bogatszy od tego co ma pół miliona a zero metrów kabla jest lepsze niż jeden metr. Kondensator przy samym czujniku jest oczywiście dużo lepszy niż taki oddalony w puszce. Wstaw i oceń po wynikach. Nie wiemy ani jak te kable idą, w pobliżu czego ani co je zakłóca a fusy (takie z kawy) też nic nie mówią o Twojej instalacji. Na drugi raz zanim cokolwiek..., sam już wiesz, prawda? Link do komentarza Share on other sites More sharing options...
SOYER Maj 16, 2019 Autor tematu Udostępnij Maj 16, 2019 Najlepsze, że czujniki kupiłem za Twoją namową;). Kiedyś gadaliśmy o DS i pojemności przewodów, mówiłeś po co komplikować życie cyfrówką, lepsze analogi. Kupiłem analogi choć w szufladzie leżały DSy, a tu jeszcze większy problem:))). Ale co się nauczę to moje... Link do komentarza Share on other sites More sharing options...
marek1707 Maj 16, 2019 Udostępnij Maj 16, 2019 OK, no to teraz wyobraź sobie co musiałbyś zrobić gdyby się okazało, że protokół czujników cyfrowych nie działa na tak długim kablu i w tych konkretnych warunkach. Tutaj dajesz po prostu głupi kondensator i opornik, które filtrują szumy poza pasmem. Wciąż są zakłócenia? To albo dajesz mocniejszy filtr analogowy albo mierzysz 100 razy co 1ms, uśredniasz i masz poprawne wyniki - zrobiłeś filtr cyfrowy. Interesuje Cię sygnał grubo poniżej 1Hz a to na pewno przejdzie po każdym kablu i jest trywialne do odseparowania od dużo szybszych zakłóceń. Protokół cyfrowy, nawet gdybyś mierzył temperaturę raz na minutę, to pasmo 1MHz lub więcej i nie mówię tu o prędkości transmisji, ale o koniecznej szybkości zboczy i składowych w.cz. takiego sygnału. Po jednym drucie masz tylko 1-wire albo jakieś egzotyki typu DHT2x i jeżeli miałbyś coś takiego przepychać przez długi kabel i nie zadziałałoby od razu, jesteś w czarnej.. dziurze. Tam impulsy muszą mieć określoną długość i odpowiednio szybko narastające zbocza i nie są to sekundy. Jakieś wzmacniacze, konwertery, dopasowanie do linii przesyłowej a wszystko w dwóch kierunkach.. i musiałbyś strzelać z armaty do wróbla. Więc nie narzekaj. Gdybyś taką nonszalancję (tu był oryginalnie inny wyraz - doceń to) jak zrobiłeś (bez urazy) popełnił instalując swoje kino domowe i puścił sygnały audio gołymi drutami z jednego końca pokoju na drugi to po pierwszym odsłuchaniu sieci 50Hz w swoich wypasionych głośnikach wiedziałbyś co jest źle i że może warto było dać przewody ekranowane albo chociaż skrętkę. Tutaj puszczasz sygnał analogowy w którym interesują Cię miliwolty przez metry gołego kabla i dziwisz się, że dochodzi na końcu coś śmieciowego? Wyjścia analogowe nie są lepsze w ogólnym sensie, ale nie są też gorsze.Każde rozwiązanie ma wady i zalety i każde trzeba umieć zastosować, bo w obu można popełnić błędy i wtedy po prostu ono nie zadziała.Tutaj nauczyłeś się czegoś i tę lekcję na pewno zapamiętasz - to jest właśnie to bezcenne doświadczenie, którego troszkę Ci zabrakło :) 2 Link do komentarza Share on other sites More sharing options...
SOYER Maj 16, 2019 Autor tematu Udostępnij Maj 16, 2019 Nie denerwuję się :). Dla mnie ta cała elektronika to jedna wielka przygoda. A naszą rozmowę wspomniałem jako anegdotę;). Link do komentarza Share on other sites More sharing options...
marek1707 Maj 16, 2019 Udostępnij Maj 16, 2019 Ależ ja nawet z Twojego zdjęcia widzę, że się nie denerwujesz (przynajmniej z byle powodu). Wyczułem tylko, że trochę marudzisz i chciałem pocieszyć pokazując, że jakiś opornik to jeszcze nie tragedia. 1 Link do komentarza Share on other sites More sharing options...
SOYER Maj 18, 2019 Autor tematu Udostępnij Maj 18, 2019 Niestety w tym tygodniu nie dam rady założyć tych kondensatorów by zobaczyć różnicę... Wklejam informacyjnie wykresy z tych trzech czujników, drugi bardziej dokładny z automatycznym zakresem. Link do komentarza Share on other sites More sharing options...
marek1707 Maj 18, 2019 Udostępnij Maj 18, 2019 To jeszcze kilka uwag: 1. Sprawdź, czy problemem są rzeczywiście długie kable i zakłócenia z nich pochodzące. Weź taki sam czujnik, albo nawet zrób dzielnik rezystorowy np. 2k/10k, podłącz to wprost do Arduino (Vcc, któryś pin AnalogInput, GND) i obejrzyj wyniki. Być może problem leży np. w jakości zasilania samego komputerka. Jeżeli tak to musisz raczej na tym się skupić. Albo inaczej: czy ten sam ADC, ale na innym wejściu mierzy jeszcze coś innego, np. poziom zasilania czy coś i tam wyniki są bardziej stabilne? 2. Filtr na wejściu analogowym (zamontowany tuż przy płytce Aduino) jest dużo ważniejszy niż kondensator na zasilaniu czujnika - od tego zacznij. 3. Z wykresów widać, że wyniki jakoś jednak oscylują wokół sensownej wartości, odchylenia nie są kosmiczne a trendy temperatury są widoczne i wyglądają OK. Może spróbuj zaimplementować filtrowanie cyfrowe? To wydaje się w ogóle inwestycją bezkosztową i ciekawą próbą. Masz jeszcze miejsce w pamięci procka? To zacznij od zastąpienia jednego strzału AnalogRead() np. serią np. 100 pomiarów robionych co 10ms. Wynik będzie oczywiście sumą tych próbek podzieloną przez 100. Zajmie to sekundę, ale powinno wyciąć mnóstwo śmiecia. Jeżeli podejrzewasz zakłócenia 50Hz to możesz proces skrócić do 20ms: np. 20 pomiarów co 1ms. Spróbuj i daj znać jak poszło. 1 1 Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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ę »