Forum: Mikrocontroller und Digitale Elektronik XKC-Y25-V Wasserstandssensor an 3.3V Arduino/ESP32


von Markus R. (marom)


Angehängte Dateien:

Lesenswert?

Guten Morgen,
ich möchte dem oben genannten Sensor (z.b. hier mit Daten und Bildern) 
https://alexnld.com/product/xkc-y25-t12v-non-contact-liquid-level-switch-stick-type-durable-level-sensor/ 
) ein einem ESP32 mit 3.3V GPIOs nutzen. Dazu angehängt der Schaltplan.
Mit PIN 21 "high" schalte ich über den BC547 die Sensoren an. Dann 
bekomme ich an PIN 18 je nach Wasserstand 0V bzw 3 V. Soweit also wie 
gewünscht.
Ist PIN 21 "LOW" reagiert zwar der Sensor nicht, aber ich habe an Pin 18 
ca. +5V.
Das Verhalten verstehe ich nicht und weiß nun auch nicht wie ich die 
Schaltung korrigieren soll.
An anderer Stelle im Netz wurde der interne Widerstand zw. VCC und out 
mit 20k angegeben. damit habe ich den Spannungsteiler für das 
Ausgangssignal hergestellt.

Ich bin für jeden Tipp dankbar!

Viele Grüße Markus

von Markus R. (marom)


Lesenswert?

was noch fehlt: der von mir verwendete Transistor ist ein BC547C

von Jens M. (schuchkleisser)


Lesenswert?

Wenn du die Masse trennst ist das ja auch kein Wunder.
Du musst + schalten. Dazu fehlt jetzt noch ein PNP-Transistor und 2 
Widerstände.

von Markus R. (marom)


Angehängte Dateien:

Lesenswert?

hallo Jens,
vielen Dank für deine Antwort. Da hätte ich ja eigentlich auch selber 
drauf kommen können. Aber manchmal....
Wie dem auch sei, anbei die geänderte Schaltung (nicht getestet).
viele Grüße Markus

von Elektrofurz (Gast)


Lesenswert?

Deine ursprüngliche Schaltung mit dem BC547 muss aber noch zusätzlich an 
Pin 21 angeschlossen werden, sonst bleibt der BC557 immer eingeschaltet, 
weil du nur 3,3 Volt zur Verfügung hast. Pullup Widerstand nicht 
vergessen!

Markus R. schrieb:
> einem ESP32 mit 3.3V GPIOs nutzen.

von Jens M. (schuchkleisser)


Lesenswert?

Markus R. schrieb:
> Wie dem auch sei, anbei die geänderte Schaltung (nicht getestet).

Brauchste nicht testen, geht auch nicht, da der Ausgang des ESP maximal 
3,3V erreicht und der Transistor an 5V hängt, bekommt er mindestens 1,7V 
ab wenn er aus sein soll und 5 wenn er an sein soll. Was ihm egal ist, 
in beiden Fällen wird er an sein, einmal etwas mehr, einmal etwas 
weniger.

Du brauchst zusätzlich zum NPN in deiner ersten Schaltung einen PNP, 
damit du sauber + schalten kannst.
Der eine macht den anderen auf, dann können beide sauber aus ihrem 
Bezugspotential schalten und alles wird gut.

von Markus R. (marom)


Lesenswert?


: Bearbeitet durch User
von Jens M. (schuchkleisser)


Lesenswert?

Das vom Rpi, ja.

von Richard M. (thebluebrain)


Lesenswert?

Warum eigentlich so kompliziert?
Es braucht doch gar keine Transistoren.

Einfach einen Spannungsteiler zw. 5V und GND, der ~3V ergibt, und zum 
GPIO geht.
Dann noch den Ausgang vom Wassersensor drauf, welcher dann bei Erkennung 
den GPIO auf Masse zieht.
Fertig.

von Wolfgang (Gast)


Lesenswert?

Richard M. schrieb:
> Einfach einen Spannungsteiler zw. 5V und GND, der ~3V ergibt, und zum
> GPIO geht.
> Dann noch den Ausgang vom Wassersensor drauf, welcher dann bei Erkennung
> den GPIO auf Masse zieht.

Warum so kompliziert?
Ein Widerstand zwischen Out und Gnd dürfte reichen. Dieser Widerstand 
bildet mit dem internen Pullup des Sensors bereits den Spannungsteiler.

Beitrag #6992810 wurde von einem Moderator gelöscht.
von Richard M. (thebluebrain)


Lesenswert?

Wolfgang schrieb:
> mit dem internen Pullup des Sensors

Theoretisch hast du Recht. Ich habe auf den "Datenblättern" die man im 
Netz und auf Ali so findet auch diesen 20k Pullup gesehen.
Ich kann einen solchen aber nicht messen. Multimeter sagt 45 MOhm(!).

Leerlaufspannung am Ausgang passt auch nicht dazu.
Bei meinen beiden YKC-Y25-NPN beträgt diese nur 1V und das, egal ob ich 
ihn mit 5V oder 12V betreibe.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.