Bitte um Unterstützung bei Signal Drucksensor 4-20 mA 24 V DC an Raspberry 3B+

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Liebe Forumsmitglieder,

    ich versuche seit 2 Wochen vergeblich, eine Lösung für meinen Drucksensor am Raspi zu finden, komme trotz gelegentlicher Hilfe von Nachbarn aber nicht weiter. Auch in diesem Forum habe ich leider keinen Beitrag finden können, der mir als Laie weiterhilft. Daher bitte ich hier als Neuling um Hilfe.

    Ich würde gern den analogen Drucksensor 4-20 mA 24 V DC (Modell: TL231) an meinen Raspberry 3B+ anschließen. Da der Raspi keinen Analogeingang hat, habe ich einen Analog-Digital-Converter („ADC“, Modell ADS1115) besorgt.

    Mittlerweile habe ich es geschafft, sowohl ioBroker als auch Python 3.6 und Adafruit_CircuitPython_ADS1x15 für den ADS1115 zu installieren.

    Der nächste Schritt wäre nun, ein passendes Signal an den ADC zu bekommen. Da weder der Raspi, noch der ADC mehr als 5 V DC vertragen, plane ich, ein „0-20mA zu 0-5V Strom“ Spannungswandler Modul vorzuschalten. Dieses kann mit 24 V DC arbeiten und müsste mir ein einstellbares 0-5 V Spannungssignal für den ADC ausspucken.

    Meine Frage wäre nun, wie ich die 24 V DC (Drucksensor + Spannungswandler Modul) und 5 V bzw. 3,3 V Stromkreise (Raspi + ADC) miteinander verschalten kann. Kann ich Ground und das Spannungssignal vom Spannungswandler Modul mit dem ADC, der ja eigentlich auf 3,3 V läuft, verschalten? Oder reicht es sogar, nur das Spannungssignal vom Spannungswandler Modul an A0, A1, A2 oder A3 des ADC zu legen? Dann wären die 24 V- und 5 V-Stromkreise komplett getrennt.

    Ein Foto des aktuellen Aufbaus ist angefügt. Sensor und Spannungswandler Modul sind noch nicht angeschlossen. Letzteres ist noch nicht gekauft. Den Druck-Sensor habe ich bereits in der Zisterne verbaut.

    Wenn jemand noch eine bessere/einfachere Alternative (ein spezielles Modul?) nennen kann, mit dem ich die 4-20 mA 24 V DC vom Drucksensor mit dem Raspberry auslesen kann, würde ich mich über Hinweise freuen. Wie ich ein Skript in ioBroker oder auch Node Red einbinde, weiß ich ebenfalls noch nicht. Wenn also bereits fertige Lösungen existieren, folge ich diesen gern.


    Ich würde mich über Tipps von Euch sehr freuen!


    Viele Grüße und schon einmal danke für Eure Mühe

    Oliver

  • Bitte um Unterstützung bei Signal Drucksensor 4-20 mA 24 V DC an Raspberry 3B+? Schau mal ob du hier fündig wirst!

  • Wenn ich es richtig verstehe, erzeugt oder erlaubt der Sensor eine Spannung, die je nach Widerstand der Leitung einen Strom von 0-20 mA fließen lässt. Die maximale Spannung ist 24 Volt. Der maximale Widerstand, mit dem noch 20 mA fließen können, wäre also eine Leitung mit einem Widerstand von 24 V / 0,02 A = 1200 Ohm.

    Wenn man einen Messbereich von 5 Volt haben möchte gilt demanch: R = U/I = 5/0,02 = 250 Ohm. Wenn der Sensorausgang einfach über einen 250 Ohm Widerstand gegen GND geschaltet wird, müssten da bei 20 mA gerade 5 V abfallen, bei 0 mA natürlich 0 Volt. Die Spannung könnte man doch leicht mit dem ADC messen. Der Sensor wird die Spannung immer je nach Messwert zwischen 0 und 5 Volt halten, damit eben 0-20 mA fließen.

    Kann man das machen oder hab ich da einen Denkfehler?

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

    Einmal editiert, zuletzt von Gnom (8. August 2020 um 19:29)

  • Nach meinem Verstaendnis ist ein solcher Sensor eine Konstantstromquelle. Der Strom bei Druck 0 (was immer das ist) also genau 4mA. Bei Vollausschlag ist er 20mA.

    Um das zu verifizieren wie folgt vorgehen (OHNE Verbindung zum Raspi!)

    * Einen Widerstand von 165 Ohm nehmen (gibt es nicht, muss man zum Beispiel aus 150 und 15 zusammensetzen)

    * diesen Widerstand zwischen die Anschluesse des Sensors klemmen

    * beim minimalen Druck muesste jetzt 0.66V ueber dem Widerstand zu messen sein

    * beim maximalen Druck sollten es 3.3V sein

    Wenn das so passt, gehen wir weiter.

    Wenn's nicht passt: Resultate des Versuchs dokumentieren

  • Lieber Gnom, lieber Tell,

    herzlichen Dank für die schnelle Antwort und die Mühe mit meinem Beitrag!

    Der Sensor wird tatsächlich an eine 24 VDC Konstanststromquelle angeschlossen und gibt mit 24 VDC je nach Wasserdruck 4 bis maximal 20 mA Stromstärke aus.

    Ich komme rechnerisch auch auf 165 Ohm, um bei 0,02 A auf 3,3 V zu erhalten.

    Gern besorge ich die Widerstände schnellst möglich und verifiziere dies. Da ich Laie bin, habe ich die Bausteine noch nicht bei mir verfügbar.

    Ich dachte bisher, dass der Spannungswandler eine maximale Ausgangsspannung von 3,3 oder 5 V einregeln lässt (wenn eben die 20mA anliegen)? Dann müsste ich mir doch die Widerstände sparen können, oder irre ich hier?

    Oder sparen mir die Widerstände den Spannungswandler und ich benötige nur den Analog-Digitalwandler (ADS1115), um dem Raspi ein passendes Signal geben zu können?

    Ich habe gerade noch einen Vorschlag für ein Anschlussschema eingestellt (siehe erster Beitrag). Wenn dies Unsinn ist, bitte einfach schreiben!

    Viele Grüße

    Oli-T

  • Ich dachte bisher, dass der Spannungswandler eine maximale Ausgangsspannung von 3,3 oder 5 V einregeln lässt (wenn eben die 20mA anliegen)? Dann müsste ich mir doch die Widerstände sparen können, oder irre ich hier?

    Oder sparen mir die Widerstände den Spannungswandler und ich benötige nur den Analog-Digitalwandler (ADS1115), um dem Raspi ein passendes Signal geben zu können?

    Ich habe gerade noch einen Vorschlag für ein Anschlussschema eingestellt (siehe erster Beitrag). Wenn dies Unsinn ist, bitte einfach schreiben!

    Erstres kann ich nicht sagen - kann sein, dass das geht. Es ist aber wohl nicht nötig, so einen Aufwand zu betreiben.
    Zweiteres trifft meiner Meinung nach zu. Das Netzteil liefert 24 Volt, der Sensor nimmt sich davon so viel, wie nötig sind, um den gewünschten Strom fließen zu lassen - egal, wie hoch der Widerstand der Leitung bis zum Pi ist... Hängst du einen Widerstand in die Leitung, kannst du den Spannungsabfall dort mit einem ADC messen. Bei 165 Ohm sind das eben 3,3 V.
    Allerdings musst du auch GND des 24-V-Netzteils noch mit GND des Pi verbinden.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Einen Widerstand von 165 Ohm nehmen

    der viel bessere Vorschlag!

    Warum sollte man am PI auf 5V gehen, komischer Gedanke

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Der Wandler auf dem Bild scheint 0-20 mA bzw. 4-20 mA Signale in 0-10V Signale umzuwandeln.

    Um Klarheit zu schaffen, sag uns was das für ein Spannungswandler ist.

    6.8k und 3.3k Widerstände können als Spannungsteiler dienen, um den Wandler mit z.B. nur ~1mA maximal zu belasten.

    Am 6.8k Widerstand hätte man dann maximal ~ 3.27V gegen Masse. Das aber nur, wenn der Wandler mit 0-10V arbeitet.

    Wenn man auf Amazon nach dem Sensor sucht, bekommt man direkt den passenden Wandler vorgeschlagen: Link [Anzeige]

    Über die Jumper kann man die entsprechenden Bereiche einstellen. Einen Vorwiderstand benötigt man dann nicht und den ADC würde ich mit 3.3V vom Raspberry Pi aus versorgen. Den Wandler mit 5V, da VCC immer größer, als die Ausgangsspannung sein muss.

    Die 4 mA kommen aus der Prozessleittechnik. Die 4 mA Strom bei 0 % Messwert dienen dazu um einen Drahtbruch detektieren zu können.

    Wäre der Pegel bei 0 mA, könnte man das nicht mehr.

    Wenn man die passenden Baugruppen für die SPS hat, wird der Sensor direkt über die Baugruppe versorgt und ein Drahtbruch löst dann z.B. einen Alarm aus oder einen Interrupt, der dann z.B. eine Meldung am HMI ausgibt, dass der Sensor kaputt ist.

  • Lieber Gnom, lieber DeaD_EyE,

    herzlichen Dank für Eure Hinweise!

    Erstres kann ich nicht sagen - kann sein, dass das geht. Es ist aber wohl nicht nötig, so einen Aufwand zu betreiben.
    Zweiteres trifft meiner Meinung nach zu. Das Netzteil liefert 24 Volt, der Sensor nimmt sich davon so viel, wie nötig sind, um den gewünschten Strom fließen zu lassen - egal, wie hoch der Widerstand der Leitung bis zum Pi ist... Hängst du einen Widerstand in die Leitung, kannst du den Spannungsabfall dort mit einem ADC messen. Bei 165 Ohm sind das eben 3,3 V.
    Allerdings musst du auch GND des 24-V-Netzteils noch mit GND des Pi verbinden.

    Genau die Info zum GND fehlte mir. Ich dachte bisher, dass ich ADC und PI und damit auch beide Spannungsquellen bzgl. GND trennen müsste.

    Dazu müsste ich also zwei beliebige GND-GPIOs vom PI verwenden können, oder?

    Den Raspi würde ich gern über ein Hutschienennetzteil im Schaltschrank versorgen, weil ich dieses ohnehin dort für eine Homematic IP Platine einsetze.

    Ich schätze, dass hier jeder GND-GPIO verwendet werden kann. Im Internet finde ich allerdings unterschiedliche Angaben zum GPIO für die 5 V vom Netzteil.

    Kann ich dafür GPIO 4 verwenden?

    Mein Schema habe ich entsprechend aktualisiert und angehängt.

    Der bestellte Spannungswandler ist ein Walfront150mfyave6 (Amazon Link [Anzeige]), weil dieser kurzfristig lieferbar ist. Der verlinkte Wandler von Bllinli käme leider erst nächsten Monat an. Ersterer (mein bestellter) hat einen Eingangsstrom von 0-20mA und liefert eine Ausgangspannung von 0-5V.


    Ich probiere zunächst (ich hoffe Mittwoch oder Donnerstag) Gnoms Variante mit dem 165 Ohm Widerstand. Sollte ja funktionieren.

    Über die Jumper kann man die entsprechenden Bereiche einstellen. Einen Vorwiderstand benötigt man dann nicht und den ADC würde ich mit 3.3V vom Raspberry Pi aus versorgen. Den Wandler mit 5V, da VCC immer größer, als die Ausgangsspannung sein muss.

    Die 4 mA kommen aus der Prozessleittechnik. Die 4 mA Strom bei 0 % Messwert dienen dazu um einen Drahtbruch detektieren zu können.

    Wäre der Pegel bei 0 mA, könnte man das nicht mehr.

    Wenn man die passenden Baugruppen für die SPS hat, wird der Sensor direkt über die Baugruppe versorgt und ein Drahtbruch löst dann z.B. einen Alarm aus oder einen Interrupt, der dann z.B. eine Meldung am HMI ausgibt, dass der Sensor kaputt ist.

    Danke auch für die obigen Tipps und Hintergrundinfos! Ich bin tatsächlich hier völliger Laie, finde dies aber verständlich.

    Melde mich also gern am Mittwoch oder Donnerstag, wenn ich den nächsten Versuch starten konnte. Eher kommen die Widerstände nicht an.

    Danke für die Unterstützung und einen schönen Restsonntag

    Oliver

  • Der maximale Strom bei dem 5 V Ausgang beträgt laut Beschreibung 15 mA.

    Wenn du den Ausgang z.B. mit maximal 1 mA belasten willst, brauchst du einen Gesamtwiderstand von 5 kΩ.

    Über das Verhältnis kann man den erwünschten Spannungsfall berechnen.

    Wenn man Widerstände aus der E24-Reihe nimmt, wäre R1 = 1,8kΩ und R2 = 3,6kΩ.

    Am Mittelabgriff hat man dann 3,33 V, etwas mehr als 3,3 V.

    Wenn ich die Ausgangsspannung auf 3.0 V festlege, wären R1 = 2,2kΩ und R2 = 3,3kΩ und vout= exakt 3.0 V.

    Durch Toleranzen der Widerstände hat man auch noch Abweichungen.

    Hatte aus Spaß eine Funktion für Python geschrieben: https://pastebin.com/7bFKX6ra

    Vielleicht kann es irgendjemand gebrauchen.

    Übrigens, alle meine Angaben sind ohne Gewähr. Bevor du irgendwas machst, miss bitte die Spannungen.

  • Lieber Gnom, lieber DeaD_Eye,

    vielen Dank für die konstruktiven Vorschläge!

    Ich habe entsprechend Eurer unterschiedlichen Herangehensweisen zwei Schemata erstellt, siehe Anhang.

    Zur Variante mit 165 Ohm-Widerstand wüsste ich gern, lieber Gnom, ob ich dies korrekt anschließen würde, wenn ich vor und nach dem Widerstand jeweils ein Kabel mit Verbindung zum ADC anschließen würde. Über die Differenz könnte der ADC dann die Spannung ausgeben. Dann müsste ich nur herausfinden, wie ich die Differenzmessung im ADC einstelle.

    Zur Variante mit Spannungswandler wüsste ich, lieber DeaD_Eye, gern, warum ich überhaupt zwei Widerstände mit 1,8kΩ und 3,6kΩ einfügen sollte? Wo sollte ich diese ggf. einbauen? Der Spannungswandler gibt mir doch in Abhängigkeit vom Strom, der theoretisch 4-20 mA betragen kann, 0-5 V raus. Der Sensor kann bis 5 bar und damit 5 m Wassersäule messen.

    Faktisch habe ich nur einen Druck von 1,5 m Wassersäule maximal, sodass der Sensor bei 5 m Messbereich/1,5 m --> 20 mA/3,33 = 6 mA maximal rausschicken wird. Damit würde ich den ADC doch nicht überfordern, oder?

    Ich würde dann nur 1 Leitung zum Eingang A0 des ADC anschließen müssen?

    Ich schätze, dass ich bei 45 m Kabellänge vom Druck-Sensor zum Schaltschrank ohnehin genügend Widerstand über das Kabel habe.

    Wenn Ihr nun keine Fehler in meinem Anschlussschemata findet, würde ich es morgen oder übermorgen Abend mal so ausprobieren.

    Herzlichen Dank auch für die Mühe mit der Programmierung!

    Viele Grüße

    Oli-T

  • Der 165-Ohm-Widerstand hängt ja an der einen Seite an GND. An der anderen Seite schließt du den ADC an - somit misst du die Spannung über den Widerstand. Eine zweite Leitung vom Widerstand zum ADC brauchst du nicht, denn der "Gegenwert" der Spannungsmessung ist "0 Volt", also GND.
    Auf deiner Zeichnung hängt alles an N und L des Netzteils - das ist offenbar ein Fehler. N und L müssen an die 230-V-Stromleitung. 24 V ist V+ und GND ist V-. V- (GND) musst du mit FND des Pi verbinden, damit alle das gleiche Nullpotenzial haben.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Lieber Thomas, lieber Gnom,

    danke Euch noch einmal! Gern prüfe ich (aufgrund eigener Recherchen im Netz) die korrekte Polung des Netzteils. N und L waren natürlich falsch eingezeichnet. Hätte ich auch nicht falsch angeschlossen. :)

    Dürfte ich Dich, lieber Gnom, noch einmal bitten, mir ein kurzes Feedback zum aktualisierten Schema zu geben?

    Ist angehängt und wenn ich Dich richtig verstehe, meinst Du mit "Der 165-Ohm-Widerstand hängt ja an der einen Seite an GND" die schwarze Leitung vom Sensor, sodass der Widerstand zwischen Sensor (Minus-Pol, GND) und dem ADC an Port A0 hängt, sodass er die Spannung von 24 V auf maximal 3,3 V reduziert, sodass der ADC nicht zerschossen wird. Der hängt ja dann auch im Stromkreis.

    Stimmt dies? Dann würde ich dies morgen Nachmittag direkt ausprobieren.

    Habe zwei Dateiformate angehängt.

    Danke für die Hilfe!

    Oli

  • sehr merkwürdig

    es wird sich bedankt bei dem User der den Vorschlag mit

    250 Ohm

    und 5V am Ausgang bringt,

    der bessere Vorschlag mit

    Einen Widerstand von 165 Ohm

    kam anderswo her aber kein Danke, egal, ich habe einen User mehr auf ignore!, wie sagte Theo Lingen? ..traurig, traurig, traurig

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Lieber jar,

    bitte entschuldige das Missverständnis. Natürlich hatte ich mich am Samstag auch bei Tell für den Vorschlag mit den 165 Ohm bedankt und ihm auch inhaltlich geantwortet. Deinen Beitrag habe ich als Bestätigung interpretiert. Wenn ich ehrlich bin, habe ich Deinen Kommentar mit 5 V leider nicht verstanden. Ich weiß, dass der PI mit 5 V gespeist wird und fand dies plausibel.

    Tells Vorschlag probiere ich aus, sobald die Installation steht - ich hoffe, morgen Nachmittag/Abend.

    Ich wollte keinesfalls unhöflich sein und danke auch Dir fürs Mitdenken und die Bestätigung von Tells gutem Vorschlag, in den sich Gnom dankenswerter Weise eingedacht hat.

    Ich freue mich also über Tipps auf den letzten Metern und wünsche allen einen stressfreien Abend

    Oli-T

  • Der Strom des Sensors fließt von v+ durch den Sensor durch den Widerstand zurück zu V-.
    V- und GND des Pi müssen verbunden werden.
    Die Spannung, die du mit dem AD-Wandler messen willst, nimmst du vor dem Widerstand ab.

    Der Widerstand sollte in der Nähe des Pi und ADC sein, damit nicht noch lange Leitungen das Messergebniss beeinflussen.

  • Lieber Gnom,

    herzlichen Dank für den abschließenden Hinweis!!

    Ich bin nach 2,5 h Erklärvideos schauen gerade auf die gleiche Lösung gekommen (Spannungsmessung über Widerstand parallel zum Stromkreis, Messung vor Widerstand über ADC und nach Widerstand über GND) und freue mich, dass ich dies anscheinend richtig verstanden habe.

    Den Widerstand baue ich in der Nähe des Pi, ca. 45 m vom Sensor in der Zisterne entfernt, ein.

    Gern probiere ich dies morgen so aus und berichte allen.

    Allen danke für die bisherige Unterstützung und einen entspannten Abend!

    Oli-T

  • danke auch Dir fürs Mitdenken und die Bestätigung von Tells gutem Vorschlag

    mir musst du nicht danken, aber es ist schon länger ein guter Rat sich von "Gurus" fernzuhalten, ich erinnere mich an keine Guten die öffentlich bekannt wurden.

    Um Verleiher des Wissens zu sein sollte man auch Wissen haben, so z.B. das eine Wandlung zu 5V zur Messung am PI eine doofe Idee ist, aber ich predige das ja öfter hier, wie Don Quijote und trotzdem wird falschen Gurus gefolgt!:conf:

    PS. selbsternante Gurus sind oft die Schlimmsten.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (14. August 2020 um 00:53)

    • Offizieller Beitrag

    Hallo jar!

    selbsternante Gurus sind oft die Schlimmsten.

    Das macht die Forensoftware. Siehe hier: RE: Gibt es eine Liste der Default Benutzertitel und ab wann man welchen Titel erhaelt?

    Da kann er nix für... ;)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!