Arduino Nano ESP32 mit Ultraschallsensor JSN-SR04T (v2)

Hallo zusammen, ich habe ein sehr seltsames Phänomen, welches ich mir mit meinen mittelprächtigen Elektronik-Kenntnissen nicht erklären kann.
Ich habe mit Hilfe eines Arduino Nano ESP 32 eines LCD-Displays, 2er Taster und einer Ultraschallsensors (JSN-SR04T) einen Zisternen-Sensor gebaut, der die Daten regelmäßig ausliest und via WIFI und MQTT an HomeAssistant sendet. Zunächst habe ich das ganze auf einem Breadboard aufgebaut und dann, nachdem alles funktionierte fliegend verkabelt (verlötet). Alles funktioniert prima. Dann habe ich (der Ordnung halber) eine Platine entworfen, welche das Chaos der fliegenden Verkabelung beseitigen sollte. Auf die Platine habe ich Buchsenleisten gelötet, so dass ich den Arduino und die kleine Sensorplatine des Ultraschallsensors aufstecken kann.
Nach dem Aufstecken der Komponenten funktionierte das Ganze leider nicht mehr. Nach langer Fehlersuche habe ich die Sensorplatine mal abgezogen und die Pins (GND, Trigger, Echo und 5V) mit Breadboardkabeln mit der Platine verbunden (1:1, also unvertauscht einfach nur verlängert)... und plötzlich funktioniert es o.O.

Bei aufgesteckter Sensorplatine kommt scheinbar über den Echo-Pin kein Signal zurück. Lese ich den EchoPin mit pulseIn() aus, kommt als Dauer immer 0 zurück.

Zur Erklärung: der Sensor funktioniert normaler Weise so: Über den Echo Pin wird für ein paar Millisekunden ein HIGH-Signal an den Sensor geschickt. Das Zurückfallen auf LOW startet einen kurzen 40 kHz Impuls über den Sensorkopf und der Echo Pin sollte in diesem Moment auf HIGH gehen. Wenn das Echo-Signal vom Lesekopf aufgefangen wird, geht der ECHO Pin auf Low und über pulseIn() kann die Dauer ausgelesen werden, woraus sich der Abstand mit Hilfe der Schallgeschwindigkeit errechnen lässt.

Ich dachte mir, dass es vielleicht die Pins in der Steckverbindung beim direkten Aufstecken keinen Kontakt haben. Wenn ich die Sensorplatine aber aufstecke und durchmesse, haben alle Pins Kontakt und es gibt auch keinen Kurzschluss. Zur Info: der Trigger ist an GPIO21 und der Echo Pin an GPIO18 des Arduino angeschlossen.

Da das Signal, welches an die Sensorplatine geschickt wird und am anderen Pin von Ihr zurückkommt einfach nur ein HIGH/LOW ohne Frequenz ist, würde ich mal Impedanzprobleme ausschließen.

Eine weitere Beobachtung, die ich gemacht habe: Wenn ich das Sensorboard mit den "Verlängerungskabeln" anschließe, so dass es funktioniert und ich mit der einen Seite des Messgeräts den GPIO21 oder den GPIO18 berühre, wird auch keine Messung durchgeführt (Erdungsproblem?).
Als Stromquelle habe ich den USB-Port meines Rechners, eine Powerbank und verschiedene Netzteile ausprobiert.

Ich bin mit meinen bescheidenen Elektronikkenntnissen am Ende. Hat von Euch evtl. jemand eine Idee?

Lieben Dank im Voraus.


Hello everyone, I have a very strange phenomenon which I cannot explain with my mediocre knowledge of electronics.
With the help of an Arduino Nano ESP 32, an LCD display, 2 buttons and an ultrasonic sensor (JSN-SR04T), I have built a cistern sensor that regularly reads out the data and sends it to HomeAssistant via WIFI and MQTT. First I built the whole thing on a breadboard and then, after everything worked, I wired it up (soldered) on the fly. Everything works fine. Then I designed a circuit board (for the sake of order) to eliminate the chaos of the flying wiring. I soldered female connectors to the board so that I could plug in the Arduino and the small sensor board of the ultrasonic sensor.
Unfortunately, after plugging in the components, the whole thing stopped working. After a lot of troubleshooting, I unplugged the sensor board and connected the pins (GND, trigger, echo and 5V) to the board with breadboard cables (1:1, i.e. simply extended without swapping them)... and suddenly it worked OK.

With the sensor board plugged in, apparently no signal comes back via the echo pin. If I read the echo pin with pulseIn(), the duration returned is always 0.

To explain: the sensor normally works like this: A HIGH signal is sent to the sensor via the echo pin for a few milliseconds. Falling back to LOW starts a short 40 kHz pulse via the sensor head and the echo pin should go HIGH at this moment. When the echo signal is picked up by the read head and ends, the ECHO pin goes low and the duration can be read out via pulseIn(), from which the distance can be calculated using the speed of sound.

I thought that perhaps the pins in the plug connection were not making contact when plugged in directly. However, when the sensor board is plugged in and measured, all pins make contact and there is no short circuit. For your information: the trigger is connected to GPIO21 and the echo pin to GPIO18 of the Arduino.

Since the signal that is sent to the sensor board and comes back from it on the other pin is simply a HIGH/LOW without frequency, I would rule out impedance problems.

Another observation I have made: If I connect the sensor board with the "extension cables" so that it works and I touch the GPIO21 or GPIO18 with one side of the meter, no measurement is taken either (grounding problem?).
I have tried the USB port of my computer, a power bank and various power supplies as a power source.

I am at the end of my rope with my modest knowledge of electronics. Do any of you have any ideas?

Many thanks in advance.

Meine Vermutung an deinem Problem:
Der JSN-SR04T arbeitet bei dir mit 5Volt, der ESP32 darf auf den Pins nur 3,3 Volt bekommen. Das kann kritisch für den ESP32 werden. Betreibe den US-Sensor mal mit 3,3 Volt.

Uh.. ein guter Hinweis. Das werde ich gleich testen. Danke Dir!

Update: Problem gelöst. Die Spannung war des Rätsels Lösung. Danke nochmal.

Der Fehler ist in einer falschen Annahme.
Welche die Falsceh Annakme ist kann ich Dir nicht sagen da ich nicht die hardware zur Kontrolle habe.
Grüße Uwe

Dann kannst du diesen Beitrag als gelöst markieren.

aber benötigt der JSN-SR04T nicht 5V für den Betrieb??

Es gibt da tatsächlich welche, die schon mit 3Volt spezifiziert sind. Und die laufen auch tatsächlich damit. Und das übrigens auch bei der Version 2.0

ich hab gerade meinen mal testweise auch mit 3.3V betrieben und hat auch funktioniert. ist ein günstiger von Amazon der mit 5V deklariert ist..dann ist ja gut :slight_smile:

Genau...prima, das es auch bei dir funktioniert.

1 Like

kurzer Nachtrag: ich habe mehrere von Amazon bestellt und es scheint nur eine gewisse Art von Ultraschallsensoren bei 3.3v zu funktionieren. Bei denen, die funktionieren, ist dieses Teil NICHT Grün sondern schwarz.
grafik

schwarz (funktioniert)
grafik

Das von dir markierte Bauteil ist ein Elko, der in diesem Fall aber keinen direkten Einfluß auf die minimale Betriebsspannung haben kann.
Da spielt die Toleranz anderer Bauteile ein Rolle. Meist liegt es an einer schlechteren Qualität von den aktiven (ICs oder andere Halbleiter) Bauteilen.

ok, danke für den Hinweis..ich habe mir 3 verschiedene Sensoren gekauft, 9 € und 11€ (schwarzer ELKO) -->funktionieren.
4erPack für 24€ (grüner ELKO) --> funktioniert nicht..

da stehen ja auch unterschiedliche Werte drauf..aber da kenn ich mich nicht mit aus :smiley:

Dann hast du ja richtig was ins Geschäft gesteckt. :wink:
Die Werte auf den Elkos zeigen die die Kapazität in yF und die Spannungsfestigkeit in Volt an. Je nach Elkotype können noch andere Infos drauf stehen, die hier aber keine Rolle spielen.

Bei welschem Händler den 4Pack geholt wenn bei AZ dan zurück damit, und den in der zukunft meiden.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.