Ich möchte einen Drucksensor (TL-136) mit einem Arduino abfragen und die empfangen
Werte in cm auf einem LCD Display wiedergeben.
Ich bekomme vom Arduino auf dem Display schon Werte angezeigt, aber irgendwie komme ich jetzt nicht weiter, und mit den Werten kann ich nichts anfangen.
Infos zum Sensor:
Versorgungsspannung: 12-32 VDC
Ausgangssignal: 4-20 mA
Messbereich: 0-1 m/0-2 m/0-3 m/0-4 m/0-1 m/0-5 m
Wenn der Drucksensor nicht im Wasser ist, bekomme ich auf dem Arduino einen Wert von 446 - 461 (über den Widerstand gemessen, mit einem Messgerät einen Wert von 2.334), wenn ich den Drucksensor in einen Eimer lege, 30cm Wasser, bekomme ich einen Wert von 627 - 647 (über den Widerstand gemessen, mit einem Messgerät einen Wert von 3.279)
Ist der Wert mit 3.279 bei 30cm Wasser nicht schon etwas hoch? der soll mal bis zu einem Meter messen können.
Wie bekomme ich das jetzt in cm umgewandelt?
Hier noch der Aufbau, die Batterie und der Sensor sind auf dem Bild nur zu darstellungszwecken. Es sind aber die richtigen Werte auf die Bauteile geschrieben.
Na ist ja schon fast schick.
Der ganzzahlige Wert ist das, was Dir der ADC liefert.
Wenn der im "Null"Zustand 455 bringt und bei 30cm 637 dann sind das 182. Die Frage wäre jetzt, was bei 60cm raus kommt. Wenn es linear wäre, wäre es 455+2*182=819.
Das wäre etwas zu viel, denn bei 100cm würden über dem R 10* ((3.279V-2.334V)/3) = 3,15V abfallen. Wenn die 2.334V Grund dazu kommen, hast Du 5,484V auf dem Pin. Pin kaputt.
Und fürs Umrechnen ist es eigentlich ganz einfach...
Habe es jetzt so aufgebaut wie noiasca das beschrieben hat, tolle Arbeit, nur gefällt mir das mit der Library nicht. Deswegen habe ich jetzt dein Skript genommen.
Bei 0cm zeigt mir der Arduino 168 an und bei 20cm 237 , wenn ich in dem Sketch jetzt als Startwert 168 angebe, dann bekomme ich 8 als tiefen Ausgabe. Irgendwo ist da noch was faul.
Nein.da ist nichts faul. Die Rechnung musst Du nur anpassen.
Wenn Dein Startwert 168 ist und Du bei 20cm 237 hast, sind das je 20 cm 237-168=69.
Dein Teiler zum Endwert ist 100cm / 20cm = 5
69*5=345. Dem der Grundwert dazu gerechnet: 345+168 = 513.
Das ist Dein (voraussichtlicher) Endwert.
In meiner Formel bin ich davon ausgegangen, das der Endwert 1023 (was 5V entspricht) ist.
Wenn Du den austauscht gegen die 513 und der Startwert richtig gesetzt ist, sollte es passen.
Hallo,
Oh mit dem Sensor habe ich jetzt erst gesehen das es verschiedene höhen gibt.
Auf der Verpackung steht 0-2m
Wenn alles läuft liefert mit die 12V Stromquelle 12.16V.
Der Arduino ist per USB angeschlossen, weiss nicht wie ich da den Spannungsabfall messen kann.
Mir ist folgendes aufgefallen.
Wenn ich die Variable "tiefe" als double deklariere, dann funktioniert alles hervorragend, die verschiedenen höhen von 0-20cm werden exakt angezeigt. Wenn ich die Variable aber als int deklariere macht die anzeige bei ca. 10 cm ein Sprung auf 70-90.