Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)

jurs:
Die Interpolationsfehler der von mir aufgestellten Formel von 0,02 bis 0,04 bar an einigen Punkten der Messkurve sind zu verkraften, oder muss es genauer gerechnet werden?

Ach, was soll's, die verlinkte Seite zum Auflösen von Gleichungen erlaubt auch umfangreichere Gleichungssysteme, also mache ich mir jetzt mal die Mühe zur Aufstellung einer Formel für eine lineare Gleichung vierter Ordnung aus allen fünf Punkten für eine noch genauere Interpolationsformel.

0 = a * 104 + b * 103 + c * 102 + d * 10 + e
1 = a * 484 + b * 483 + c * 482 + d * 48 + e
2 = a * 824 + b * 823 + c * 822 + d * 82 + e
3 = a * 1164 + b * 1163 + c * 1162 + d * 116 + e
5 = a * 1844 + b * 1843 + c * 1842 + d * 184 + e
ausmultipliziert zum Einsetzen auf der Webseite:
0 = 10000a + 1000b + 100c + 10d + e
1 = 5308416a + 110592b + 2304c + 48d + e
2 = 45212176a + 551368b + 6724c + 82d + e
3 = 181063936a + 1560896b + 13456c + 116d + e
5 = 1146228736a + 6229504b + 33856c + 184d + e
Lösung:
float a = 2.331362828169e-9;
float b = -1.00248601611e-6;
float c = 1.498600025947e-4;
float d = 0.020190012411;
float e = -0.21590695198;

Die Schaltung und die Variablen wie gehabt:

Öldruck-Messschaltung mit veränderlichem Messwiderstand

VB -----<Vorwiderstand>-----<Messwiderstand>----- Ground 0V
5V            RV         |        RN
                         |      
                         |      
                    Analogeingang
                      am Arduino
			 VA

mit
VB = Betriebsspannung des Arduino (irgendwo bei ca. 5V)
RV = Vorwiderstand
RN = Widerstand des Messwiderstands (in diesem Fall druckabhängig!)
VA = Spannung am Arduino-Messeingang

/* VDO oil pressure calculation by 'jurs' for German Arduino Forum

Für den 5bar VDO-Öldrucksensor mit dieser Wertetabelle:
0 bar  -  10 Ohm
1 bar  -  48 Ohm
2 bar  -  82 Ohm
3 bar  - 116 Ohm
5 bar  - 184 Ohm

Interpolation mit Hilfe eines Polynoms vierter Ordnung:
p = a*x^4 + b*x^3 + c*x^2 + d*x + e
0 = 10000a + 1000b + 100c + 10d + e
1 = 5308416a + 110592b + 2304c + 48d + e
2 = 45212176a + 551368b + 6724c + 82d + e
3 = 181063936a + 1560896b + 13456c + 116d + e
5 = 1146228736a + 6229504b + 33856c + 184d + e

Aufgelöst mit Hilfe: http://www.arndt-bruenner.de/mathe/scripts/gleichungssysteme.htm
  float a = 2.331362828169e-9;
  float b = -1.00248601611e-6;
  float c = 1.498600025947e-4;
  float d = 0.020190012411;
  float e = -0.21590695198;  
*/


float pressure_VDO5bar(float RV, float VA_VB)
// Ermittlung des Drucks mit einem VDO Öldruckgeber 5bar
// Erklärung der Parameter:
// RV           : Vorwiderstand in Ohm  
// VA_VB        : Spannungsverhältnis "Spannung am NTC zu Betriebsspannung"
// Rückgabewert : Öldruck
//
// Info: http://forum.arduino.cc/index.php?topic=155733.0
{
  float a = 2.331362828169e-9;
  float b = -1.00248601611e-6;
  float c = 1.498600025947e-4;
  float d = 0.020190012411;
  float e = -0.21590695198;  
  float RN=RV*VA_VB / (1-VA_VB); // aktueller Widerstand des NTC
  float pressure= a*RN*RN*RN*RN + b*RN*RN*RN + c*RN*RN + d*RN +e;;
  if (pressure<0) return 0; // Begrenzung nach unten, keine negativen Werte extrapolieren
  else if (pressure>6.66) return 6.66; // Willkürlich gewählte Begrenzung nach oben
  else return(pressure);
}


void setup() {
  Serial.begin(9600);
  float pressure;
  float vorWiderstand=180;
  int messwert; // Messwert am Analogpin
  Serial.println();
  Serial.println("Wert  Druck");
  // In einer Schleife alle möglichen Messwerte simulieren
  for (messwert=0;messwert<1023;messwert++)
  {
    pressure=pressure_VDO5bar(vorWiderstand, messwert/1023.0);
    char buf[20];
    char buf1[15];
    dtostrf(pressure,4,2,buf1);
    sprintf(buf,"%4d  %s",messwert,buf1);
    Serial.println(buf);
  }
}

void loop() {
  // put your main code here, to run repeatedly: 
}

Überlegungen zur Größe des Vorwiderstands: Der Gesamtwiderstand aus Vorwiderstand und Sensor muss mindestens so gross sein, dass der absolute Maximalstrom eines Arduino Pins (40 mA) nicht überschritten wird. In Frage kommen daher Vorwiderstände von 150 oder 180 Ohm, so dass sich mit 10 Ohm Minimalwiderstand des Sensors folgende Maximalströme bei 5V Betriebsspannung ergeben:

I= U/(10+RV150)= 5/160 = 31 mA bei RV= 150 Ohm
I= U/(10+RV180)= 5/190 = 26 mA bei RV= 180 Ohm (den würde ich wohl nehmen)