[gelöst] Sensorsignal invertieren

Ich habe diesen Sensor.
Ohne Flüssigkeit Signal = +Vcc, Flüssigkeit erkannt Signal = 0
Wie kann ich das Signal invertieren, damit bei "Flüssigkeit erkannt" am Arduino Pin +Vcc anliegt? Im Fehlerfall (Sensor defekt, Kabelbruch o.ä." würde meine Wasserpumpe im Tank trocken laufen, weil Signal == 0 => genug Wasser im Tank.

Hardware:
Transistor mit Basiswiderstand

Software:
bool neuesSignal !=altesSignal;

Ein Schaltbild dazu:

Der Arduino-Eingang wird mit einem internen PullUp-Widerstand konfiguriert. Der Wert von R3 richtet sich nach der Spannung.

@agmue
wie erstellt man so kleine Schaltpläne?

Wenn mein "Arduino" jetzt aber ein ESP32 ist. Wie komme ich auf max 3.3V am µC Pin?

Mein Verständnis der Schaltung:
Basis wird durch Sensor positiv..... dann Kopf kaputt

Ist das eine "Open Kollektor" Schaltung, bei der am Kollektor keine Spannung anliegt, so lange der Transistor gesperrt ist. Steuert der Transistor durch, liegt am Kollektor und somit am µC Pin 0V.

Das ist eine ganz normale Emitterschaltung. Gehört zu den drei grundlegenden Transitorschaltungen:
https://www.elektronik-kompendium.de/sites/slt/0203111.htm

Den ganzen Wechselstromkram kann man hier ignorieren:
https://www.elektronik-kompendium.de/sites/slt/0208031.htm

Dadurch dass der Emitter an Masse liegt wird der Ausgang einfach gegen Masse gezogen wenn der Transitor schaltet.

Dann werde ich das mal mit einem Arduino Nano "Steckbretten" und schauen was passiert.

Den Eingang auf INPUT_PULLUP nicht vergessen.

Gruß Tommy

Das Problem bei dieser einfachen Schaltung is nur, dass sie schon bei sehr kleinen Eingangsspannungen ( unter 1V ) die Collectorspannung auf 0 zieht. Um das ganze unempfindlicher gegen Störungen zu machen sollte man noch einen Widerstand von der Basis nach Gnd einfügen.

Diese Schaltung wurde mit Eagle gezeichnet, es geht aber auch (nicht ganz so schön) mit Fritzing.

Du hast Deine Zeichnung wiedererkannt! Ich hatte die Quelle nicht angegeben, weil mir der Text eher verwirrend erschien.

Eine Möglichkeit ist Redundanz. Ich verwende eine Pumpe mit eingebautem Trockenlaufschutz.

Durch den internen PullUp-Widerstand wird die Spannung auf VCC gehoben.

Ganz automatisch, denn der interne PullUp-Widerstand kann ja keine Spannung über VCC "gemerieren". Genau wegen dieser Flexibilität wird Open Kollektor so gerne verwendet. Allerdings werden die Leitungskapazitäten auch langsamer geladen, aber das spielt hier keine Rolle, eher bei Bussystemen.

War mehr geraten, da Eagle eigentlich unverkennbar ist. :wink:
Das mit der Quelle sehe ich nicht als Problem, zumindest hier im Forum und im Hobbybereich.

µC Pin über 10k Widerstand auf HIGH gezogen.
Sensor Signal über 4.7k an Transistor Basis.
Ergebnis:
Sensor meldet "Wasser da" => µC PIN = LOW
Sensor meldet "Kein Wasser da" oder VCC fehlt => µC Pin != LOW (kein definiertes LOW Signal)
Genau so wollte ich das haben.
Danke euch Allen !!!!!

Ich verwende Deine Schaltungen auch gern :wink:

Gruß Tommy

Ja, ich sehe es ab und zu. Dafür sind die auch gemacht.
Heißt....ich verwende Eagle sehr gerne, :wink:

Ein BJT (Bi Junction Transistor) NPN bzw PNP funktioniert mit Strom nicht mit Spannung. Ok es braucht eine Spannung daß ein Strom fließt aber der Basisstrom steuert den Collektorstrom. Am Emitter fließt die Summe beider Ströme.

Eine Spannung größer als 0,7V (Basis Emitter Diode) zwischen Basiswiderstand und Masse macht einen Basisstrom fließen. Die Größe des Basisstroms wird von der Spannung und dem Basiswiderstand (in der Zeichnung R3) bestimmt. Wir wollen daß der Basisstrom nicht den Collektorstrom begrenzt darum muß der Basisstrom größer als der Collektorstrm geteilt durch die Verstärkung (Hfe). In diesem Fall ist der Collektorstrom klein, weil der interne Pullupwiderstand zwischen 20 und 50 kOhm groß ist. Da die Verstärkung leicht über 100 ist kann in diesem Fall der Basiswiderstand weit über 100kOhm sein.
Der Collektorstrom macht daß am Pullupwiderstand die ganze Spannung abfällt und darum der Kollektor fast auf 0V kommt. genaugesagt sind es in diesem Fall einige Zehntel V.

Grüße Uwe

Die Schaltung funktioniert. Soweit Alles i.o.
Jetzt ist aber der Kollektorstrom über 25 mA.
Wie bekomme ich den Strom runter?
Transistor mit sehr geringer Stromverstärkung?
Widerstände zwischen C und Arduino-Pin bringen nichts.

Wie groß ist der Pullupwiderstand?

Grüße Uwe

10k

Wo fließen den da 25mA?

Mit dem Pullupwiderstand von 10kOhm zwischen Kollektor und +5V können maximal 0,5mA fließen.
Wo mißt Du die 25mA?

Grüße Uwe

"Wo mißt Du"...
Bitte den Unterschied zwischen "ss" und "ß" lernen !!! :grinning:
Wer soll das noch verstehen?
Laut Duden wird "ss" vor "t", vor "ie" oder am Wortende zu "ß".
Also wäre "wo mißt du" orthographisch korrekt. Aber kein Mensch schreibt so.
Ich bin für: "Wo misst Du" oder, um der ganzen Gaudi aus dem Weg zu gehen,
"Wo hast Du gemessen"

In der Leitung zwischen Kollektor und GPIO Pin (ohne INPUT_PULLUP).