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

Hallo jurs,
alles klar, jetzt geht es soweit!

Ein dickes Danke an Dich!!!

Dann war es natürlich kein mathematischer Fehler, sondern ein Funktionsfehler im Sketch. - Nonstop Nonsens trifft es genau - steht ja alles in der Endlosschleife :cold_sweat:

Warum wurde der Wert 136 angezeigt? Das doppelte dieser Zahl ist fast der absolute Nullpunkt (-273.15°) in Celsius (wie dem Sketch per #define "mitgeteilt". Purer Zufall, oder was ist da passiert...

EDIT: So sieht es auf dem LCD nun aus:

Andy966:
EDIT: So sieht es auf dem LCD nun aus:

Na bravo, das sieht ja schon mal ganz gut aus!

Allerdings hat die Anzeigeroutine bei Dir noch zwei Probleme:

  1. Problem: Temperaturen über 100 °C.
    2, Problem: Fallende Werte mit sinkender Stellenanzahl z.B. von 100.00 auf 99.99 oder 10.00 auf 9.99.

Mal angenommen, die Öltemperatur ändere sich von 99.98 auf 100.03 und wieder auf 99,98.
Dann passiert auf Deiner Anzeige das (und ich behalte mal die merkwürdige Einheit "C°" statt "°C" bei):

Temperatur: 99.98C°
Temperatur: 100.03°
Temperatur: 99.983°

Beim Überschreiten von 100 wird das C überschrieben und beim anschließenden Unterschreiten von 100 bleibt die zuletzt angezeigte Hundertstel-Stelle des Werts als plötzlich erscheinende dritte Nachkommastelle stehen.

Dein Code sieht mir so aus als wenn Du das genau so programmiert hast, aber das dürfte wahrscheinlich nicht ganz so beabsichtigt sein.

Hallo!
Es soll natürlich Grad Celsius heissen, nicht Celsius Grad! Hab es jetzt auch gedreht.
Habe den "feststehenden" Text eine Zeile nach rechts verschoben, so bleibt nun genug Platz für 3-stellige Temperaturangaben.
Ist jetzt quick´n´dirty, aber es reicht erstmal so aus. Habe noch genug Platz auf dem Display.

Danke wie gesagt nochmal!

Hallo,

ich habe ein ähnliches Projekt mit dem gleichem Fühler/Sensor von VDO - doch dieser ist bereits im Wohnmobil installiert und zZ an analogen Anzeigen von VDO mit 12V betrieben. Nun wollte ich gern parallel den Arduino zum messen anschließen.

Wie kann ich den VDO Sensor lesen, wenn der mit 12V getrieben wird?

Danke,
René

Hallo,

ich versuche mal den alten Case wieder zu beleben, denn einer der letzten Kommentare von jurs passt genau auf mein Problem.
Was die Programmierung angeht, bin ich relative unerfahren und lerne sozusagen täglich dazu :slight_smile:
Mein aktuelles Problem ist einfach nur, dass ich nicht weis wie man es richtig hinbekommt und möchte diesmal nicht wieder irgend ein Workaround dafür nehmen, der es irgend wie realisiert.

Hier mein Problem:

Möchte ebenfalls eine Anzeige programmieren, welche über einen Sensor die entsprechenden Werte ausgibt. Allerdings soll der Zahlenwert, welcher zwei oder evtl. auch nur eine Nachkommastelle hat,
immer an der selben Stelle stehen.
z.B.
10.00
9.99
2.45
usw.

Der nachfolgende Workaround mit der if Schleife funktioniert zwar, welcher in Abhängigkeit der Zahlengröße die Anfangsposition für den Print auf dem Display verschiebt, aber ist verm. völliger Blödsinn! Oder? Wie geht es richtig?

void loop() {

 float V1;
 
 V1 = 5.987;
 
   
 if (V1 < 9.999)
{
 lcd.setCursor(1, 0);
}
else
{
 lcd.setCursor(0, 0);
}

 
 lcd.print (V1,3);

}

Gruß
Ralf

RalfW:
Wie geht es richtig?

Zur Formatierung von Gleitkommazahlen mit fester Gesamtstellenanzahl dient auf Atmega-Controllern die dtostrf() Funktion.

Beispiel-Loop zur Formatierung mit 6 Stellen insgesamt, davon drei Nachkommastellen

float V1= 1.234;

void loop()
{
  lcd.setCursor(0, 0);
  if (V1>=0.0 && V1<=99.999)
  {
    char buf[10];
    dtostrf(V1,6,3,buf);
    lcd.print(buf);
  }
  else lcd.print(F("******"));
  V1= V1*2;
  if (V1>200) V1= 1.234;
  delay(1000);
}

Die angegebene Stellenanzahl ist dabei eine MINDESTstellenanzahl, und die Funktion führt keine Prüfung auf Buffer-Overflow des formatierten Strings durch. Daher solltest Du

  • entweder den zu formatierenden Stringpuffer groß genug vorsehen oder
  • den zu formatierenden Wertebereich prüfen und ggf. statt der formatierten Zahl eine Erroranzeige ausgeben

Wenn negative Zahlen formatiert werden, ist ein Zeichen extra für das zu formatierende Minuszeichen vorzusehen.

Vielen Dank! :slight_smile:

Hallo,

Erst mal ein dickes Lob an jurs!

Ich habe hierzu noch eine Frage:
Kann man den Ausgang vom Sensor über einen Transistor schalten? zb. ein 2N3906...

Wenn ja - Kann mir jemand ein Schaltplan dafür erstellen? Ich bin eher der Software Typ :slight_smile:

Grund ist, dass ich die vorhandenen orginal Sensoren vom Fahrzeug benutzen kann. zb. Wassertemperatur NTC-Sensor von Hella:

  • Temperaturbereich 25° C - 5000 Ohm
  • Temperaturbereich 80° C - 600 Ohm
  • Sensor wird vom Steuergerät mit +5V versorgt

Am Kombiistrument kommt bei ca. 80° C - 1.45 V, bei ca. 100° - 0.80V an. Ich prüfe morgen Abend noch nach was aus diesem Sensor kommt bzw. ins Steuergerät geht...

Danke schonmal für eure Antworten!

*BEN

Hi Leute,

ich habe ein Drucksensor von Raid HP. Der misst von 0 bis 10 Bar und dabei hat er laut Sensor 3 - 160 Ohm. Laut jurs braucht man 3 Messpunkte oder geht das auch anhand der 2 Daten?

Gruß

Irfan

jurs' "3 Punkte" (und dieser Thread überhaupt) gelten für NTC Temperatur-Sensoren.
Wenn die Umsetung von Druck in Widerstand linear ist (oder es nicht so genau drauf ankommt), reichen natürlich 2 Punkte für eine lineare Interpolation.

Hallo Michael,

im NTC Temperaturen Sensor Thread rechtnet jurs soweit ich weis, allerdings mit 2 Punkten.

Beim Öldruck verwendet er 3 Punkte.

http://www.ebay.de/itm/Raid-hP-Oldruckgeber-Oldruckdose-Oldruck-Sensor-1-8-Zoll-NPT-Zusatzinstrument-/271707484765?hash=item3f4307325d:g:88EAAOSwEppUSDYa

Das ist mein Sensor. Ein Datenblatt sucht man bei Raid HP vergebens.

Bleibt mir wohl nichts anderes übrig, es bei ca. 5 bar erneut zu messen oder wie würdest du hier vorgehen?

Gruß

Irfan

Du hast Recht mit den 2 Punkten für einen NTC:
http://forum.arduino.cc/index.php?topic=155733.msg1170722#msg1170722

Von Öldruck habe ich in diesem Thread beim groben Blätternn und im Titel nichts gefunden. Wenn du 3 Referenzpunkte hast, kannst du immer noch entscheiden, wie du interpolieren willst.

Und wenn du so fragst: Einen einigermaßen richtigen Wert bei Normalbetrieb und am Limit, das mich interessiert. Dazwischen wäre es mir egal. Beim linearen Interpolieren ist die Tendenz schonmal richtig.

Jetzt im Alter fahre ich mehr nach Tacho statt nach Öltemperatur. :wink:

Achilles84:
Hallo Michael,

im NTC Temperaturen Sensor Thread rechtnet jurs soweit ich weis, allerdings mit 2 Punkten.

Beim Öldruck verwendet er 3 Punkte.

Bei einem NTC reichen zwei "möglichst weit auseinander liegende Punkte" der Kennlinie, um die gesamte Kennlinie recht gut rechnerisch zu erfassen.

Und ansonsten nimmt man die Tabellenwerte als Stützpunkte, die man hat.
Die einzige Öldrucktabelle für einen Öldruckgeber-Sensor 0-10bar mit 3-160 Ohm Widerstand habe ich hier gefunden:
https://www.merx-tuning.de/media/Einbauanleitungen/Sonstiges/Alle/Widerstandswerte%20Drucksensoren.pdf

Die Tabellenwerte sind:

0bar - 3 Ohm
1bar - 17 Ohm
3bar - 51 Ohm
5bar 85 Ohm
7bar 119 Ohm
10bar 160 Ohm

Keine Ahnung, ob die Werte zu Deinem Sensor kompatibel sind.

Wenn Du sonst nichts besseres hast, kannst Du vermutlich die Werte annehmen, falls Du nicht noch bessere findest.

Die Werte liegen "fast genau" auf einer Geraden, daher dürfte eine lineare Interpolation zwischen zwei Werten eine gute Nährung darstellen.

Aber ob eine simple "Spannungsteilerschaltung" mit einem Vorwiderstand als "Arduino-Messswandlerschaltung" zu befriedigenden Ergebnissen führt, bliebe abzuwarten. Ich vermute mal eher: Nein.

Wenn Du ein Signal von diesem Sensor "digital" und "Arduino-geeignet" unf "genau" brauchst, wirst Du bei der Messwandlerschaltung wohl etwas mehr schaltungstechnischen Aufwand als nur einen Vorwiderstand betreiben müssen.

Was mögen wohl die für diese Art Sensor vorgesehenen Rundinstrumente für eine Schaltung verwenden? Eine Wheatstone-Brücke" als Messschaltung?

Diese Schaltung enthält insgesamt vier Widerstände:

Wenn drei Widerstände bekannt sind und man die "Brückenspannung" mißt, kann man einen vierten Widerstamd berechnen (also z.B. den Widerstand Deines Sensors).

Hallo jurs,

die Messwerte die du gefunden hast, sollten mit meinem Sensor übereinstimmen. Der Raid HP Sensor ist nämlich tatsächlich fast linear. Daher würde ich an dieser Stelle in der Tat erst einmal mit den von dir geposteten Werten arbeiten.

Was ich jedoch nicht verstehe ist, warum eine Schaltung mit Vorwiderstand nicht funktionieren sollte. Ich denke da fehlt mir etwas der elektrotechnische Backround. Worin genau unterscheidet sich denn mein Drucksensor (Raid HP) von VDO Drucksensoren?

Gruß

Irfan

Hallo zusammen,
erstmal vielen Dank an euch alle, für die ausführlichen Informationen die ich hier bekommen habe.
Habe mir zuzusagen all mein Wissen über Arduino und dessen Programmierung hier angelesen.

Nur zwei Fragen zu dem VDO ÖL-Temp NTC habe ich:

  1. Ist dieser wirklich über die Fahrzeugmasse geschaltet also hat nur einen Anschluss für ein Kabel?
  2. Ist das kein Problem beim berechnen der Temperatur mit dem Widerstand?

Beste Grüße,
Marcel

Natürlich handelst du dir damit Messfehler ein....

Deswegen gibt es auch einige 2 Polige Sensoren.

Hi combie,

danke für die Antwort, das habe ich schon vermutet.
weis jemand zu welchen 2 Poligen NTC's es denn Kennlinien gibt bzw. eine Materialkonstante? Ich habe noch nichts gefunden mit M12x1,5.

Ich habe für meine CBF600 einen 2 poligen NTC von Koso (M12x1,5). Ist ein 10k NTC

Danke, dann werde ich für meine Honda auch mal einen ordern!

Mach das. Bestell das Kabel von dem Sensor am besten gleich mit. Kostet ja nicht viel.

Einziger nachteil des Sensors: Die Farbe.