Go Down

Topic: Drucksensor 4-20ma auslesen (+ NodeMCU Base V1.0) (Read 264 times) previous topic - next topic

rusher

Hallo zusammen,

ich bin schon viele Jahre stiller Mitleser und habe etliche NodeMCUs zu Hause im Einsatz (z.B. für Temperaturüberwachung, Ultraschall Distanzmessungen (Wasserlevel Zisternen) etc).

Das Thema Softwareentwicklung habe ich studiert, das verstehe ich. Aber wenn es etwas komplizierter in der Elektronik wird, brauche ich jetzt mal etwas Nachhilfe von euch. Da ich heute meinen ersten NodeMCU im wahrsten Sinne des Wortes "verheizt" habe, wird es jetzt mal Zeit, sich etwas Hilfe einzuholen:

Ein wenig Vorgeschichte:

In der einen Zisterne sind die Gegebenheiten für eine Wasserlevel Überwachung mittels Ultraschall nicht gut genug, daher muss ich jetzt das erste mal auf einen Drucksensor setzen.

Ich habe jetzt einen Drucksensor von Amazon hier liegen (darf man Amazon Links posten?) und habe mich auch Grundsätzlich damit befasst, wie man die 4-20ma in V mittels Widerstand umwandelt.

Kurze Fakten vom Drucksensor:
  • 12-36V Input DC
  • 4-20ma Output
  • 0-5m Druckmessung


Auf dem Breadboard hat das auch erstmal wunderbar funktioniert:
16V+ -----> Druck-Sensor ----> 50ohm R ----> 16V -

  • Ich konnte nachvollziehen, dass beginnend bei 4ma die Stromstärke steigt, je tiefer der Sensor im Wasser ist (->wenn der Druck steigt).
  • Links und rechts vom R konnte ich perfekt die 0,2-1V messen. Genau das, was mein A0 vom NodeMCU verkraften würde.


Soweit so gut.

Nun zum PROBLEM:

Entwickler sind ja generell faule Wesen. Also wollte ich meine Schaltung möglichst einfach halten und habe zur NodeMCU Base V1.0 gegriffen. Die Idee dahinter war, dass ich nur ein Netzteil brauche, sodass ich 16V auf die Base gebe und damit sowohl den Sensor als auch den NodeMCU versorgen kann. Meine Annahme war, dass der NodeMCU automatisch mit der richtigen Spannung von der Base versorgt wird.

Ein Trockentest mit 16V auf der Base verliefen auch positiv. Der NodeMCU lief wunderbar.
Auch ein zweiter Test (nur mit der Base, ohne NodeMCU) zeigte, dass ich mit der Base (Anschluss auf U1 und GND) wunderbar den Sensor versorgen kann.

Aber als ich mit aufgesteckter NodeMCU mir für den Sensor den Strom von der Base holen wollte, ging auf einmal der NodeMCU in einer Stichflamme auf. (CE1 auf schwarz und verkohlt. Google half mir aber nicht weiter, was CE1 genau ist. Eine Diode?) A0 war zu diesem Zeitpunkt noch nicht angebunden.

Ich habe auch noch ein Bild angehangen, was den Aufbau nochmals verdeutlicht.

Hätte der Parallelbetrieb von NodeMCU und Sensor via der Base funktioniert, hätte ich im nächsten Schritt A0 an die Sensorverkabelung (vor den R) angeschlossen.

Jetzt stellt sich mir die generelle Frage: habe ich die Funktionsweise der NodeMCU Base überschätzt? Einen Denkfehler?

irminsul

Hallo rusher ... blöder Frage, was für ein Sensor ist das?
wir stellen zufällig sowas her :) ... 4-20mA als Stromschleife ist eigentlich recht einfach einzulesen.

siehe Bildchen ... hierbei kann die Versorung des Sensors auch 16V sein - der Lastwiderstand ist anzupassen und dann der Spannungsabfall über diesen Widerstand messen.
ich arbeite zwar nur mit UNO weiß also nicht ob das für den NodeMCUs auch zutrifft, denke aber dass die E-Technik grundsätzlich identisch sein sollte.

den Sensor also direkt mit den 16V speisen und dann GND / AnlogIn vom Node entsprechend um den Widerstand anschließen

würde denken das sollte gehen :)

PS: ich habe das selbe "Problem" und habe es allerdings mit einem Sensor mit Spannungsausgang gelöst.

rusher

#2
Jun 10, 2020, 10:15 am Last Edit: Jun 10, 2020, 10:17 am by rusher
Hi irminsul,

vielen Dank für deine Antwort!

Der Sensor wurde auf jeden Fall Übersee hergestellt, für deutsche Wertarbeit ist mein Hobbybudget dann doch nicht groß genug ;) Ich habe dir mal ein Bild vom Sensor angehangen.

Nach dem kleinen Unfall gestern werde ich auf jeden Fall lieber wieder auf 2 getrennte Netzteile setzen:
  • irgendetwas zwischen 12-36V für den Sensor
  • 5V USB für den Arduino

Ich habe mal eine Schaltung angehangen, so wie ich es verstehen würde. Die Nomenklatur ist sicher nicht konform - seht es mir nach, ich bin ITler ;)
Aber passt das rein prinzipiell so?

Bei einem Punkt habe ich etwas Bauchschmerzen: ich gebe dem Arduino die -16V auf den GND Anschluss. Kommt es da nicht zu Problemen, wenn ich ihn schon mit 5V via USB betreibe?

Ich möchte dieses Mal nur wirklich sicher gehen, dass nicht wieder etwas abraucht :D

Viele Grüße
rusher

Rentner

Hallo,

eigentlich kann bei gemeinsamer Versorgung nichts passieren, wenn allerdings der Shunt Widerstand fehlt, oder keinen richtigen Kontakt hat liegen auf dem 20mA Ausgang mit Sicherheit die 16V. Damit wird der analoge Eingang sterben.

Ich traue aber Deinem Base Modul auch nicht so richtig. Das Node Modul wird dann sicher über den Pin vin versorgt , mit was ? 16 V .  Wenn Du dann zusätzlich mit USB versorgst wir es auf jeden Fall qualmen.

Siche ist eine getrennte Versorgung, zwei Netzteile , die beiden Minus musst Du verbinden, da kann aber nichts passieren. Eventuell baust Du noch eine z-Diode 3,3V mit zu dem Shunt damit die Spannung nicht zu hoch werden kann. 3V kann der analog Eingang ja ab.

Also den Shunt ganz sicher , Wackelkontakt frei anschliessen.

Heinz

rusher

#4
Jun 10, 2020, 04:08 pm Last Edit: Jun 10, 2020, 04:14 pm by rusher
Hallo Heinz,

danke für deine Tipps!

Könnt ihr bitte nochmal über meine Schaltung drüber schauen ob die Diode an der richtigen Stelle sitzt? Habe bisher noch nichts mit Dioden gemacht.

Diese Diode wäre die richtige?
https://www.conrad.de/de/p/tru-components-z-diode-tc-zpd3-3-gehaeuseart-halbleiter-do-35-zener-spannung-3-3-v-leistung-max-p-tot-502-1581887.html

Woran erkenne ich beim Löten in welche Richtung ich sie einbauen muss? Gibt es irgendwelche Markierungen auf der Diode? +EDIT: ok, es gibt in Richtung Minus eine Markierung. Perfekt.

Viele Grüße
rusher

Tommy56

Die musst Du aber in Sperrichtung einbauen.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

rusher

#6
Jun 10, 2020, 04:48 pm Last Edit: Jun 10, 2020, 04:49 pm by rusher
Ahhh, ok. Danke!

D.h. die Diode lässt Spannungen bis 3,3v ungehindert durch und alles drüber wird erst gesperrt.
Macht Sinn. Danke!

Das würde beim einlöten bedeuten, dass die farbliche Markierung der z-Diode zum Widerstand zeigt und nicht zum Arduino. Richtig? (wenn man jetzt mal meine letzte Schaltung als Grundlage für die Aussage nimmt)

Danke!
rusher

Tommy56

#7
Jun 10, 2020, 04:56 pm Last Edit: Jun 10, 2020, 04:57 pm by Tommy56
Umgekehrt: Sie sperrt bis ca.3,3V ond läßt dann durch.
Im Normalbetrieb ist sie also mimmer gesperrt, da Du über Deinen Spannungsteiler nur bis 1,1V anliegen hast. Mehr kann der ESP8266 nicht messen.

Die farbliche Markierung (Kathode) an den analogen Eingang, die Anode nach GND.

Gruß Tommy

Edit: zum Nachlesen
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

combie

Quote
(CE1 auf schwarz und verkohlt. Google half mir aber nicht weiter, was CE1 genau ist. Eine Diode?)
Die beiden gelben Klumpen sind "Tantal Elektrolyt Kondensatoren".
Man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug.
Quelle: Jean-Paul Sartre

StefanL38

Wenn man sich auf die microcontroller-ebene begibt kommt man um Basiswissen in Sachen Elektrotechnik nur dann herum wenn man einen Elektrotechniker an der Hand hat der einem den ganzen Hardware-Kram zusammenbaut.
Wenn du den nicht hast musst du selber ran.

Hat der Sensor drei Spannungsversorgungsanschlüsse auf denen steht
+16V,
GND
-16V
oder hat er doch nur zwei?
Der Meß-Widerstand muss zwischen Minus und Sensor angeschlossen werden.
Wenn du die Spannungsdifferenz zwischen den beiden enden des Widerstands misst
ist die immer passend klein. Aber wenn du mit einer Spannungsquelle beides versorgen willst
dann hast du nicht nur eine Verbindung Widerstand-GND und Widerstand-A0 sondern auch noch
Netzteil an GND. und wenn der Widerstand an der falschen Stelle sitzt dann sind es zwischen GND und A0 nicht mehr 1V sondern 15V und dann raucht es ab.
Siehe zum Beispiel hier
https://www.loxforum.com/forum/hardware-zubehör-sensorik/44369-4-20ma-in-0-10v-umwandeln

viele Grüße  Stefan

Rentner

#10
Jun 10, 2020, 09:50 pm Last Edit: Jun 10, 2020, 09:51 pm by Rentner
Hallo,

Du solltest mal herausbekommen was für eine analoge Spannung Dein Node Modul messen kann. Ich habe so eines mit einem internen Spannungsteiler 1:3 da kann ich 3V anschliessen. Ich denke Deines hat das ebenso. Wenn dem so ist kannst Du natürlich deinen Shunt Widerstand ändern auf z.B 150Ohm 150*20mA=3V.

Für die Schaltung würde ich das so machen wie in dem Bild.

Hast Du ein Messgerät zum Spannung messen ? Wenn Du nicht sicher bist wie das Node Modul mit deinem Base Modul verbunden ist solltest Du das vorsichtig sein und alles besser ein Steckbrett nutzen, damit eventuell die an Vin anliegenden 16V nicht mit der USB Spannung zusammen kommen.

Heinz

rusher

Hallo zusammen,

vielen Dank für die vielen Antworten! Ich bin etwas überwältigt :D

@combie: vielen Dank! Ein Austausch macht vermutlich keinen Sinn... dann lieber für 2-3€ einen neuen beim Asiaten kaufen ;)

@StefanL38: es handelt sich um einen Sensor mit 2 Kabeln -> also wie du schon richtig sagtest: +16V und GND. (GND habe ich fälschlicher Weise mit -16V gekennzeichnet). Der Thread im LoxForum war sehr hilfreich. Danke!

@Tommy56: nach etwas einlesen habe ich es endlich verstanden. Danke! Und dein Tipp, wo ich die Diode hinpacken soll deckt sich auch mit dem letzten Schaltbild von Heinz.

@Heinz: super! 1000-Dank! Bzgl. dem 1:3 Spannungsteiler bin nicht 100% sicher. Ich meine mich zu erinnern, dass ich schonmal einen Wert von ca. 900 ausgelesen habe bei knapp unter 1V, aber vielleicht irre ich mich auch. Ich habe 50er und 150er R rumliegen. Ich werde mit 50Ohm anfangen und mal schauen welche Werte er mir ausspuckt. Wenn es maximal auf ca. 300 kommt, dann kann ich locker den 150er R nehmen. Damit dürften die Messwerte auch nochmal etwas genauer werden.

Freitag gehts zum blauen C um die Diode zu besorgen. Dann gehts los. Ich werde berichten! Im nächsten Versuch nur noch mit 2 Netzteilen und ohne Base. Sicher ist sicher.
Auf jeden Fall habe ich jetzt ein deutlich besseres Gefühl, dass ich nicht gleich wieder den nächsten Arduino kille ;)

 Schönen Abend!
rusher

rusher

#12
Jun 16, 2020, 12:10 pm Last Edit: Jun 16, 2020, 12:13 pm by rusher
Hallo zusammen,

zum Abschluss wollte ich mich noch einmal kurz melden.
Es hat alles wunderbar geklappt. Der Sensor spuckt fleißig den aktuellen Wasserstand aus.

Die kleine Schaltung habe ich auf eine kleine Platine gelötet und mit Steckern versehen, sodass man im Garten die Komponenten auch mal ggf. schnell auswechseln kann.



Fall es jemand nachbauen will, hier nochmal alle Komponenten:


Die Messwerte schicke ich an Blynk, sodass diese einfach und schnell am Smartphone visualisiert werden können.



Anbei noch mein Sketch:

Code: [Select]
#include <Blynk.h>;
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = "AUTH_TOKEN";            // Auth Token von der Blynk App
char ssid[] = "SSID";
char pass[] = "PASSWORD";  // Set password to "" for open networks.

SimpleTimer timer;

void setup() {
    Serial.begin(9600);
    Blynk.begin(auth, ssid, pass);
    timer.setInterval(3000, sendData);
}

void sendData()
{
  int sensorValue = analogRead(A0);
  //Serial.println(sensorValue);
  Blynk.virtualWrite(V0, sensorValue);
}

void loop() {
  Blynk.run();
  timer.run();
}


Nochmals vielen Dank!

Viele Grüße
rusher

Go Up