(deleted)
Hallo,
Der Ausgewähle Drucksensor kann recht einfach an den Arduino Angeschlossen werden.
Er benötigt jedoch eine eigene Versorgungsspannung > 5V.
Die separate Versorgung wird an + und - angeschlossen.
Der Drucksensor arbeitet laut datenblatt mit 8,5 ... 36V DC.
R1 beträgt 5V / 0.02A = 250 Ohm wenn der Arduino mit der internen 5V Referenz arbeitet.
Für diesen Fall muss die separate Versorgungsspannung mindestens 5V + 8,5V = 13,5V betragen.
R1 beträgt 1V / 0.02A = 50 Ohm wenn der Arduino mit der internen 1V Referenz arbeitet.
Für diesen Fall muss die separate Versorgungsspannung mindestens 1V + 8,5V = 9,5V betragen.
Höhere Spannungen für die separate Versorgung sind bis 36V zulässig.
Die Messgenauigkeit hängt von der Toleranz des verwendeten Widerstandes R1 ab.
Da 50 Ohm bzw. 250 Ohm nicht gerade gängigen Werten aus der E-Reihe entsprechen kann auch 47 Ohm oder 220 Ohm verwendet werden. Der dabei entstehene Messfehler kann per Software berücksichtigt werden.
Dies geht dann etwas auf Kosten der Auflösung.
Alternativ kann man auch versuchen durch Reihen- oder Parallelschaltung mehrerer Widerstände die gewünschten Werte zu erreichen.
Viele Grüße
Peter
Nachtrag:
Vierleiter- aber auch Zweileitertransmitter (wie der hier von Dir genannte) liefern gerne auch mal mehr als 20mA wenn der Druck mal über 20 bar steigt. Dies bedeutet, dass am Eingang des Arduino auch mehr als 5V anliegen können.
Um den Arduino damit nicht zu beschädigen sollte man geeignete Schutzbeschaltungen verwenden.
(deleted)
Hallo,
ich würde für 12V Versorgung die Variante mit dem 50 Ohm Widerstand und 1.1V Referenzspannung wählen sofern dein Arduino diese Variante unterstützt.
4 ... 20 mA an 50 Ohm ergeben 0,2 ... 1V am Arduino Eingang.
Bei 14 bar also 0.76V wenn ich mich nicht verrechnet habe.
Mit dem 50 Ohm Widerstand sollte auch dem Arduino nichts passieren wenn das Ausgangsignal des Drucksensors mal über 20mA steigen sollte.
(deleted)
AndiBar:
Hallo,hab gerade gesehen dass mein Arduino Uno nur 3,3V und 5V hat.
Das müsste dann mit einem 165ohm widerstand klappen oder?
3,3+8,5 sind dann 11,8V. Sollte mit meinen 12V klappen.Jetzt bestell ich erstmal den sensor und dann melde ich mich hier wieder sobald ich noch mehr fragen habe.
Jetzt verstehe ich Deine Rchenung nicht. Was hat das eine mit dem anderen zu tun?
Grüße Uwe
(deleted)
AndiBar:
Die Referenzspannung von 1,1V im UNO wird ja dann über den INTERNAL befehl gewählt wenn ich das richtig verstanden habe.
Ja. richtig
Hallo,
ich habe eben gesehen, dass Du im Eingangspost 0-20Bar geschrieben hast.
Hierauf bezog sich auch meine Berechnung für 0,76V am Arduinoeingang bei 14 bar.
Im verlinkten Datenblatt steht aber ein Messbereich von 0-25 bar. Hierfür stimmen dann natürlich die 0,76V nicht mehr.
Eigentlich sind alle diese Drucksensoren mehrfach Überdrucksicher, sodass für deine Anwendung auch ein Messbereich 0-16 bar ausreicht. Das kommt dann der Signalauflösung mit dem Arduino positiv entgegen weil beim Betriebsdruck eine höhere Spannung am Analogeingang anliegt.
Ich weis nicht was das Gerät aus dem verlinkten Datenblatt kostet, habe aber etwas vergleichbares hier gefunden.
Leider braucht der aber selbst schon mindestens 11V, weshalb es mit der 12V Versorgung sehr knapp wird.
Andererseits begeben sich die Hersteller bei den technischen Daten eher auf die sichere Seite.
Deshalb käme es auf einen Versuch an. Beim aktuellen Preis von 1€ und kostenlosen Versand sicher ein Schnäppchen
Und hier ist noch einer.
Und hier der nächste.
Und einer geht noch.
Gruß
Peter
p.s. ich habe als Suchbegriff in der Bucht "druck 4 20 mA" eingegeben.
(deleted)
(deleted)
Versuche es mal mit:
const float a = 98.0;
const float b = 16.0 / (1024.0 - a);
float vari ;
vari = ( (sensorValue - a ) * b );
Variable "a" ist der Wert den der Sensoreingang (sensorValue) bei 0,0 bar als unkorrigierten INT-Wert liefert.
Variable "b" ist der Messbereichsendwert des Drucksensors dividiert durch eine Konstante.
Wenn alles so passt liefert "vari" 0.0 ... 16.0 als Wert in bar.
Nur zu meiner Info: Welchen Wert hat R1 und welche Analog Referenzspannung verwendest du.
(deleted)
Hallo,
mit R1 = 220 Ohm stimmt der angezeigte Druck nicht. Es wird zu wenig angezeigt.
Ich ging davon aus, dass R1 so gewählt ist, dass bei 20mA an dem Widerstand eine Spannung abfällt welche der Referenzspannung entspricht. Das ist aber mir 220 Ohm nicht der Fall.
Wenn du keine Möglichkeit hast 16,0 bar auf den Sensor zu geben um dann die Spannung an R1 zu messen ändere
const float b = 16.0 / (1024.0 - a);
in const float b = 16.0 / (901.12 - a);
Damit sollte der angezeigte Druck rein rechnerisch wieder stimmen. Toleranzen der beteiligten Komponenten nicht berücksichtigt.
(deleted)
AndiBar:
Edit:
Wäre ein Sensor mit 0-5V ausgang hier nicht leichter zu handhaben wenn ich davon 3 Stück anschließen will?denke an so einen:
http://www.tecsis.de/uploads/media/dd775_01.pdf0-16 bar
0-5V ausgang 3 Leiter
Hallo,
die Handhabung der 3 Leiter Sensoren mit 0-5V Ausgang ist etwas einfacher als die 4-20mA Variante.
- der Widerstand R1 vom Analogeingang des Arduinos gegen GND entfällt.
- die Formel zur Umrechnung von 0-5V in 0-16bar ist etwas einfacher als bei 4-20mA.
Nachteil:
Die 0-5V Geräte sind nicht sehr verbreitet, weil die 4-20mA Versionen Industriestandart sind und millionenfach eingesetzt werden.
AndiBar:
Ich glaube jetzt blick ich grade nicht durch.
Es ist eigentlich ganz einfach mit den 4-20mA, ich versuche es mal anders zu erklären.
Angeschlossen werden die Geräte genau so wie in meinem Plan aus Reply #1.
Für jeden angeschlossenen Sensor brauchtst du einen eigenen Widerstand und einen eigenen Analogeingang am Arduino.
Das vermutlich für dich unverständliche ist die Umrechnung des Eingangssignals vari = (sensorValue);
in eine Anzeige von 0-16bar.
Bei den 0-5V Geräten musst du den Wertebereich von "vari" 0-1023 in 0-16 umrechnen.
Bei den 4-20mA Geräten ist der Wertebereich ein anderer. Man muss etwas rechnen. U = R * I
Bei R1 = 220 Ohm gilt: 0bar entspr. 4mA entspr. 0,88V entspr. vari=180
Bei R1 = 220 Ohm gilt: 16bar entspr. 20mA entspr. 4,40V entspr. vari=901
Bei 4-20mA Geräten an 220 Ohm musst du also den Wertebereich von "vari" 180-901 in 0-16 umrechnen.
Noch ein Beispiel mit R1 = 250 Ohm
Bei R1 = 250 Ohm gilt: 0bar entspr. 4mA entspr. 1,00V entspr. vari=209
Bei R1 = 250 Ohm gilt: 16bar entspr. 20mA entspr. 5,00V entspr. vari=1023
Bei 4-20mA Geräten an 250 Ohm musst du den Wertebereich von "vari" 209-1023 in 0-16 umrechnen.
(deleted)
Such mal nach der Arduino map Funktion ( Die arbeitet übrigens mit ganzen Zahlen, solltest also das Ergebnis nicht auf 0 .. 16 sondern z.B. 0 .. 160 skalieren und dir eine Kommastelle dazudenken
(oder vor dem print mit 0.1 multiplizieren, dann wird das Ergebnis ein float in der Einheit bar)