Elektroda.pl
Elektroda.pl
X
IGE-XAO
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Ultradźwiękowy czujnik JSN-SR04T jaki długi może być przewód sensor - moduł?

15 Paź 2016 23:55 2016 16
  • Poziom 10  
    Witam,
    kupiłem z chin moduł JSN-SR04T.
    Działa bez zarzutu z Arduino UNO i biblioteką NewPing.

    Wpakowałem go więc do wodoszczelnej puszki i zamontowałem w szambie, tak, żeby mierzył odległość do lustra "wody" ;-)

    I teraz najważniejsze. Ponieważ to nie mój dom, skorzystałem z przewodu 3x2,5 (linka) żelowany, który służył kiedyś za przewód do pływaka (oczywiście pływak nie działa).
    Niestety odczyty przedstawione na ekranie LCD z Arduino nie dość, że skaczą bez przerwy to mają się nijak do rzeczywistości.

    Czyli mam taki układ:
    [sensor (w szambie)] <--> 4do5m przewodu 3x2,5 <--> [płytka od JSN-SR04T] <---> [arduino Uno (z shieldem LCD)]

    Nie działa.

    Po wyjęciu wszystkiego podłączyłem sensor na krótkim przewodzie 20cm i wyniki są b. stabilne a przede wszystkim zbliżone do rzeczywistości.

    Co ciekawe wynik psuje się natychmiast, jeśli tylko dołączę do pinu na PCB (oznaczonego "+" pod białym gniazdem) długi przewód. Wtedy efekt jest taki sam. Czyli wynik do bani i niestabilny. A przewód nie jest z niczym spięty, po prostu jedną żyłą dotykam tego "+" pinu i czujnik głupieje.

    Mam pytanie czy ktoś próbował z różnymi przewodami i jak długimi?
    Może przewód powinien być koncentryczny z ekranem a nie zwykłe 3x2,5 (z którego używam 2 żył).

    Żeby nie było, że jestem jakąś łajzą podłączyłem Trigger, Echo i wyjście na sensor z "+" do oscyloskopu. I niezależnie czy z długim czy z krótkim kablem impuls z triggera, wykonanie 8 emisji ultradźwięku są identyczne. (załącznik: magenta-"+"sensora, niebieski-trigger, żółty-echo- odwróciłem żeby nie zachodził na niebieski")
    Różnica jest tylko w czasie "trwania" echo. Z krótkim przewodem echo jest dość długie a arduino pokazuje 182cm, natomiast z długim - wynik oscyluje od 45-70 cm i mocno skacze. Oczywiście czujnik jest przykręcony i go nie ruszam a dla testu jedynie przysłaniam go ręką.

    Nie miałem w domu kabla koncentrycznego... sprawdzę to jak go znajdę/kupię.
    Niemniej nie jest to rozwiązanie, bo nie mam zamiaru kopać dołu, żeby dołożyć przewód do studzienki.

    Jeśli ktoś borykał się z podobnymi problemami albo ma wiedzę na temat samego sensora, to proszę o pomoc. (obejrzałbym swój ale zamówiłem tylko jeden).

    A może ktoś ma inny pomysł jaki czujnik można wsadzić do szamba na 3 przewodach?
    Może na dno wrzucić czujnik ciśnienia statycznego - choć jest trochę drogi to ma 3 przewody ;-) np taki.
  • IGE-XAO
  • IGE-XAO
  • Poziom 10  
    olelek napisał:
    Proponuję sprawdzić czy będzie poprawa po podłączeniu kondensatorów filtrujących na pinach zasilania w okolicy czujnika.



    Jeśli chodzi o takie podłączenie:
    [sonda] <---> -||- (kondensator) <---> [długi przewód] <---> [moduł JSN-SR04T] <---> [arduino]
    wydaje mi się, że to nie pomoże, na dodatek kondensator pochłonie część impulsu zwrotnego ładując się, co wpłynie na zmianę czasu odczytu.

    Ale żeby nie było zrobiłem takie podłączenie. Po pojawieniu się kondensatora Arduino pokazuje mierzoną odległość 20cm niezależnie od stanu faktycznego. Czyli może się zdarzyć, że moja teoria jest prawdziwa.

    Oryginalny przewód jest koncentryczny. Znalzałem więc taki sam 75Ω (antenowy) około 5m.
    Niestety efekt podobny. Tym razem po podłączeniu odległość na Arduino spada do 20cm i stoi stabilnie (nie jak w przypadku 3x2,5), czyli impuls "echo" jest tak krótki jak to tylko możliwe.

    Jeszcze jakaś podpowiedź nakierowująca?
  • Poziom 15  
    marek1314 napisał:
    ...
    Jeszcze jakaś podpowiedź nakierowująca?


    Może że kondensator filtrujący miał być włączony równolegle na nie szeregowo?
    Dlaczego nie łączysz 4 przewodami?
  • Poziom 10  
    TAAG napisał:
    Widać tutaj że potrzebne będą Ci 4 przewody...


    Nie żebym się od oburzał... ale czytałeś w ogóle jaki mam problem?
    To powtórzę. TRZYŻYŁOWY przewód 3x2,5 między budynkiem a studzienką szamba.
    Jeśli miałbym to kopać i dokładać 4 żyłę raczej nie odezwałbym się na forum, prawda?


    Mam jeszcze inny pomysł. Żeby puścić tym przewodem zasilanie a do puszki wpakować NRF240L+ z anteną + arduino mini + komplet JSN-SR04T.
    Testował ktoś jak NRF radzi sobie "spod" ziemi, bo to będzie jakieś 20-30 cm pod poziomem gruntu i pod betonowym deklem.

    Co sądzicie o takim rozwiązaniu?

    PS Co nie zmienia faktu, że chciałbym się do końca dowiedzieć dlaczego sonda JSN-SR04T nie działa poprawnie na długim przewodzie.

    Dodano po 7 [minuty]:

    TAAG napisał:

    Może że kondensator filtrujący miał być włączony równolegle na nie szeregowo?
    Dlaczego nie łączysz 4 przewodami?


    Tej, chłopaku... ja wiem, że ten dział to "początkujący elektronicy" a nie nazywa się "żłobek elektroników". Jeśli mnie pamięć nie myli włączenie kondensatora szeregowo po naładowaniu wprowadza w obwodzie przerwę (może dlatego na schemacie są takie 2 kreseczki nie połączone ze sobą) a tego bym nie chciał.
    Więc oczywiście mimo braku wiary w skuteczność testu podłączyłem kondensator tak jak do filtra czyli równolegle.

    Na drugie pytanie już chyba napisałem odpowiedź powyżej ;-)
  • Poziom 15  
    Nie żebym się oburzał, ale czytałeś notę katalogową tego układu (od tego się zwykle zaczyna)?
    Wg. mnie nie da się 3 przewodami podłączyć 5V, GND , TRIG, ECHO, no bo jak?
    Nawet nie opisałeś /narysowałeś swojego schematu połączeń, jak próbowałeś to zrobić.
    Na Elektrodzie zabrakło wróżek na Etacie.
    A czasami jedno (dokładne) zdjęcie więcej pomaga niż długi opis.

    Przy 3 przewodach to raczej taki czujnik:
    https://botland.com.pl/cyfrowe-czujniki-odleg...frowy-czujnik-odleglosci-150cm-waveshare.html

    Albo zasadę działania oprzeć na zwykłym pływaku (+czujnik przechyłowy) zamieszczonym na odpowiedniej wysokości..
  • Poziom 10  
    TAAG napisał:
    ...czytałeś notę katalogową tego układu...

    Oczywiście.

    TAAG napisał:
    Wg. mnie nie da się 3 przewodami podłączyć 5V, GND , TRIG, ECHO, no bo jak?

    Cofnij się proszę do mojego pierwszego posta gdzie napisałem:
    [sensor (w szambie)] <--> 4 do 5m przewodu 3x2,5 <--> [płytka od JSN-SR04T] <---> [arduino Uno (z shieldem LCD)]
    Połączenie między sensorem a płytką PCB JSN-SR04T ma dwie żyły i to o ten przewód pytam od samego początku.
    Nie mogę włożyć całego układu (sensor + PCB) do studzienki, bo mam zakopany tylko 3 żyłowy przewód.

    TAAG napisał:
    Nawet nie opisałeś /narysowałeś swojego schematu połączeń, jak próbowałeś to zrobić.

    OK, narysowałem ;-) jest w załączniku schemat ideowy. Problem stanowi przewód opisany na czerwono. Jeśli jest za długi wynik jest do bani.

    TAAG napisał:


    Znalazłem ten czujnik wcześniej ale obawiam się, że w warunkach syfu i skraplającej się ciągle wody czujnik się nie sprawdzi.

    TAAG napisał:
    Albo zasadę działania oprzeć na zwykłym pływaku...

    Taki był... ale on nie da informacji o stanach pośrednich, tylko 0/1.
    I dodatkowo tu nie chodzi tylko o "zadziałanie" ale o frajdę wymyślania.
    Równie dobrze, mogę sobie co jakiś czas zajrzeć ;-)
  • Poziom 15  
    No właśnie do czujnika też muszą (niestety iść 4 przewody aby ta czujka działała).
    Czujnik posiada cztery wyprowadzenia zgodne z modułem HC-SR04:
    VCC - napięcia zasilania 5 V,
    GND - masa układu
    oraz piny sygnałowe Echo i Trig.

    Może idź w inna stronę w takim razie.
    Weź gotowca z samochodu, spójrz na CZUJNIKI PARKOWANIA 4 Sensory BEZPRZEWODOWY WiFi.

    Centralkę z czujnikiem dasz przy studzience, w wyświetlacz w domu. :)
  • Poziom 10  
    TAAG napisał:
    No właśnie do czujnika też muszą (niestety iść 4 przewody aby ta czujka działała)


    Brak mi słów... pomimo rysunku i wyjaśnień, chyba nie rozumiesz z czym mam problem albo nigdy nie widziałeś JSN-SR04T.
    Więc dołączam obrazek, żebyś nie pisał już więcej głupot całośc wyglada tak:
    sensor <---> 2 żyły <---> JSN-SR04T <---> 4 żyły <---> arduino

    Zobacz sobie obrazek.

    A ja na razie spróbuję wepchnąć do obudowy poza sensorem i płytką PCB, dodatkowo arduino mini i przez kabel puścić RS232 (bo tu 3 żyły będą akurat) do drugiego arduino mini już w domu. Trochę mi ich szkoda ale co zrobić...

    Patrząc na jakość kabla (b.dobra) i prędkości powinno się spokojnie udać 9600, co w zupełności wystarczy...









    Data rate (bps)Distance (m)
    240060
    480030
    960015
    192007.6
    384003.7
    560002.6



    Przy okazji ciągle nie rozkminiłem dlaczego kabel ma wpływ na odczyt.
    Porównując prędkość światła (prądu) i dźwięku, przewód nie powinien mieć znaczenia.
    Może ktoś wskaże rozwiązanie a jeszcze lepiej na co zwrócić uwagę i co sprawdzić dalej?
  • Poziom 10  
    TAAG napisał:
    No teraz jaśniej.
    Z tego co pamiętam do tego typu czujników trzeba ekranowanych kabli.


    Pisałem już, że na długim koncentrycznym przewodzie 75Ω też nie działa...

    Nie wiem też, czy sam nie napisałem głupoty, bo na 3 przewodach trudno jest puścić RS232 chyba, że da się samego TX puścić ze studzienki albo użyć jako wspólnego punktu odniesienia po prostu uziemienia.

    Jak to nie zadziała to pozostały mi jeszcze 2 moduły ESP8266-07 które może na te 4-5m sobie poradzą z komunikacją.
  • Poziom 37  
    Witam,
    marek1314 napisał:
    Przy okazji ciągle nie rozkminiłem dlaczego kabel ma wpływ na odczyt.
    Porównując prędkość światła (prądu) i dźwięku, przewód nie powinien mieć znaczenia.

    to rozumowanie jest, z całym szacunkiem, bez sensu.
    Twoje problemy sugerują, że w połączeniu między czujnikiem a płytką pojawiają się sygnały o relatywnie dużych częstotliwościach. Do takich połączeń potrzebne są odpowiednie kable (dopasowana impedancja, małe pojemności i indukcyjności pasożytnicze, itp.). Długi przewód koncentryczny 75 Ω też nic nie daje, bo prawdopodobnie układ sensor - płytka jest zaprojektowany do połączenia kablem o innej impedancji, różnice tych impedancji powodują pasożytnicze odbicia, powstawanie fali stojącej, itp, generalnie fałszują ten sygnał, możliwe, że kabel jest po prostu zbyt długi. Kabel zakopany w ziemi to jest pewnie "kabel typu kabel" o bliżej nieznanych parametrach.
    Można testowo spróbować połączenia skrętką komputerową albo skrętką CAN, trochę to wróżenie z fusów, nie wiadomo jakie dokładnie parametry powinien mieć ten kabel (impedancja, pojemność, indukcyjność, itp.), to zresztą bez znaczenia, bo nie ma możliwości wymiany tego kabla.
    Najlepiej jednak zrobić układ z lokalną inteligencją, który będzie wyzwalał cały ten czujnik (płytka plus sensor) co pewien czas, odczytywał wynik pomiaru i wysyłał łączem szeregowym do domu. Wystarczą trzy przewody, dwa do zasilania, trzeci jako TX (bez komunikacji w drugą stronę, lokalny układ autonomicznie wyzwala pomiar). Pomiary mogą być wyzwalane na przykład co minutę albo rzadziej, prędkość transmisji dowolnie niska (lepsza odporność na zakłócenia, byle jakie kable, itp.), w sumie szybkość zmian poziomu cieczy w tym zbiorniku będzie wielokrotnie mniejsza.

    Pozdrawiam
  • Poziom 10  
    krzysiek_krm napisał:
    Twoje problemy sugerują, że w połączeniu między czujnikiem a płytką pojawiają się sygnały o relatywnie dużych częstotliwościach.

    Sprawdzę jakie.
    krzysiek_krm napisał:
    Do takich połączeń potrzebne są odpowiednie kable (dopasowana impedancja, małe pojemności i indukcyjności pasożytnicze, itp.)...

    Tak też sądziłem. Kabel oryginalny mogę sobie przemierzyć ale jak piszesz nic to nie da, bo nie będę uskuteczniał robót ziemnych. Zrobię to dla samego sprawdzenia czy jestem w stanie taki pomiar wykonać i przedłużyć przewód.

    krzysiek_krm napisał:
    Najlepiej jednak zrobić układ z lokalną inteligencją, który będzie wyzwalał cały ten czujnik (płytka plus sensor) co pewien czas, odczytywał wynik pomiaru i wysyłał łączem szeregowym do domu...


    Dokładnie taki układ zrobiłem i jest sukces.

    Teraz mam taki system:
    W szambie:
    [sensor, układ od pomiaru JSN-SR04T, arduino mini pro] <---> kabel w ziemi (5V, GND, TX) <---> [arduino uno + LCD]

    Odczyt prawidłowy. Dodatkowy koszt to $1.6 za mini pro ;-)
  • Poziom 10  
    krzysiek_krm napisał:
    Twoje problemy sugerują, że w połączeniu między czujnikiem a płytką pojawiają się sygnały o relatywnie dużych częstotliwościach.


    Okazuje się, że nie są to aż takie duże częstotliwości. ~38kHz - wide załącznik.
    Na dodatek przewód koncentryczny sensora ma 75Ω, tak jak mój długi przewód koncentryczny, czyli impedancja falowa jest taka sama.

    Rozumiem, że problem może dotyczyć pojemności przewodu.
    Jak się dowiem jak ją zmierzyć to napiszę.
  • Poziom 10  
    Marku, kup na allegro ten przewod i bedziesz mial problem z glowy. Ja mialem to samo ze kabel od czujnika byl za krotki. To ze uklad faluje jesli chodzi o wartosci odleglosci i nie trzyma wartosci to ja to zrobilem ze robie 10 pomiarow i wyliczam srednia. Nie wiem ktory masz model: JSN-SR04T czy JSN-SR04T-2.0, te wersje 2.0 wlasnie tak maja, zobacz tu: youtube. Ja wlasnie mam wersje 2.0 bo na alliexpres mi taka przyslali choc zdjecie bylo wersji 1.0, no coz, trzeba bylo sobie jakos radzic. Tez napisalem w arduino, czujnik podlaczony do wemos-d1-mini a wizualizacja na blynk. Wszystko spisuje sie swietnie. Pozdrawiam
  • Poziom 1  
    Trochę późno, ale może ktoś skorzysta. Jeśli moduł JSN-SR04T jest w wersji 2.0, to wystarczy 3 żyłowy kabel do jego podłączenia po rs. Należy jedynie dolutować rezystor R27=47Kohm i podłączyć wyprowadzenia "+", "-", "Tx". W tym trybie moduł sam z siebie co 100ms wykonuje pomiar odległości i wysyła na Tx.