Hi
Workshop Sensorwerte ändern:
Wir gehen mal von einem Linearen Sensor aus (ob er es tatsächlich ist weiß ich noch nicht)
Daten:
Öl-Druck 0bar ~7bar
Widerstand in Ohm 4.2Ω~119Ω
Jetzt möchte ich den Ausgang P1 für diesen Sensor anpassen.
Wie gehe ich jetzt am besten vor? Und wo werden solche Daten gespeichert?
Sind die in der Software die wir hochgeladen haben?
Sensorwerte ändern
- designer2k2
- Administrator
- Posts: 721
- Joined: Mon 31. May 2010, 20:13
- Location: Innsbruck
- Contact:
Re: Sensorwerte ändern
Also, am P1 Eingang ist ein 220Ohm Widerstand gegen 5V, dazu wird jetzt dein Messwiderstand gegen Masse gezogen.
Das heißt ein Spannungsteiler ist gemacht.
Bei 0Bar, 4,2Ohm sind dementsprechend 0,093V
bei 7Bar, 119Ohm sinds 1,755V
Eingelesen werden die Werte mit 12Bit und 5Vm also 5V/4096 = 1,2mV
Damit ist der Digital gesehene Wert:
0Bar = 4,2Ohm = 0,093V = 77
7Bar = 119Ohm = 1,755V = 1438
Und jetzt muss die Software angepasst werden
ich geh mal von meinem Code aus, in der functions.pde (http://code.google.com/p/multidisplay/s ... ctions.pde)
ab Zeile 377 steht:
Jetzt muss aber die VDOPres1 mit dem neuen Werten berechnet werden!
dafür hat die Arduino Sprache eine geeignete Funktion und zwar "map" http://arduino.cc/en/Reference/Map
die Zeile:
muss mit dieser ausgetauscht werden:
0-700 deshalb da die map funktion nur ganze Zahlen erzeugt, man würde also nur 0-1-2-3--- Bar bekommen, mit dem 0-700 und dann durch 100 dividieren bekommt man 0.00-0.01-0.02 bis 7 Bar rauf
und schon gehts
(zumindest theoretisch... Rechnung und Code sollte passen )
Das heißt ein Spannungsteiler ist gemacht.
Bei 0Bar, 4,2Ohm sind dementsprechend 0,093V
bei 7Bar, 119Ohm sinds 1,755V
Eingelesen werden die Werte mit 12Bit und 5Vm also 5V/4096 = 1,2mV
Damit ist der Digital gesehene Wert:
0Bar = 4,2Ohm = 0,093V = 77
7Bar = 119Ohm = 1,755V = 1438
Und jetzt muss die Software angepasst werden
ich geh mal von meinem Code aus, in der functions.pde (http://code.google.com/p/multidisplay/s ... ctions.pde)
ab Zeile 377 steht:
Code: Select all
//VDO Stuff:
VDOTemp1 = GetVDOTemp(AnaIn[VDOT1Pin]);
VDOTemp2 = GetVDOTemp(AnaIn[VDOT2Pin]);
VDOTemp3 = GetVDOTemp(AnaIn[VDOT3Pin]);
VDOPres1 = GetVDOPressure(AnaIn[VDOP1Pin]);
VDOPres2 = GetVDOPressure(AnaIn[VDOP2Pin]);
VDOPres3 = GetVDOPressure(AnaIn[VDOP3Pin]);
dafür hat die Arduino Sprache eine geeignete Funktion und zwar "map" http://arduino.cc/en/Reference/Map
die Zeile:
Code: Select all
VDOPres1 = GetVDOPressure(AnaIn[VDOP1Pin]);
Code: Select all
VDOPres1 = map(AnaIn[VDOP1Pin],77,1438,0,700)/100.0;
und schon gehts
(zumindest theoretisch... Rechnung und Code sollte passen )
itsmyfault...
- designer2k2
- Administrator
- Posts: 721
- Joined: Mon 31. May 2010, 20:13
- Location: Innsbruck
- Contact: