Arduino Forum

International => Deutsch => Topic started by: farewell on Mar 22, 2013, 09:26 am

Title: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: farewell on Mar 22, 2013, 09:26 am
Hallo Leute,

ich bin derzeit auf der Suche nach einem Öltempgeber (M12x1,5) für mein Arduino Uno, welches dann in der Ölablassschraube befestigt wird, habe soweit im Forum bisschen gelesen, bin mir jedoch nicht sicher welchen Tempsensor ich verwenden soll. (fürs Auto)

Es geht um die Öltemperatur, Sensor soll so etwas sein: http://www.kosoeurope.com/temperatursensor-m12xp1.5-150c-schwarzer-stecker

oder so etwas: http://www.ezt-autoteile.de/VDO-Sensoren/Zubehoer/VDO-Temperaturgeber/Geber-150C-Oeltemperatur/VDO-Temperaturgeber-fuer-Oeltemperatur-M12x15::42679.html

wobei ich mich nur Frage, zumindest beim VDO steht, Nennspannung: 6 - 24V, soviel gibt das Arduino doch gar nicht her?!

hat das jmd mal gemacht?
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: uwefed on Mar 22, 2013, 11:07 am
Nennspannug heißt der Spanungbereich bei dem der Sensor funktioniert. In diesem Fall geeignet für Motorräder, Autos und Lastwagen. Ohne Datenblatt bzw ohne zu wissen welch ein Sensor dieser Sensor ist ist es unmöglich eine korrekte Auswertung zu schreiben.
Grüße Uwe
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: farewell on Mar 22, 2013, 11:15 am
technische Daten von VDO hab ich jetzt nur das gefunden:

http://www.temperaturgeber.de/vdo_temperaturgeber_daten.html

es muss jetzt auch nicht VDO sein, eine alternative die in die ölablassschraube reinpasst, wäre mir ja auch recht =)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: michael_x on Mar 22, 2013, 03:31 pm
Das passt gut.

Ein Heissleiter ist nur ein Widerstand. Den verbindest du mit einem anderem Widerstand zu einem Spannungsteiler und schliesst ihn zwischen GND und 5V.

5V  -- R --+-- Geber == GND
              |
             Analog-Eingang

Im Beispiel "Öltemperatur"

60°C - 221,2 Ohm
90°C -   83,0 Ohm
120°C -   36,5 Ohm

wäre z.B. ein 100 Ohm Widerstand schön. ( Das zieht zwar ca. 30 mA aus der 5V Versorgung, gibt aber einen weiten Messbereich )
Da der Geber auch 24 V aushalten würde, macht ihm dieser Strom sicher nichts aus.
Der Widerstand sollte eine 1/4W Version sein.

Bei 90 ° misst du ca. 465  (2.27 V)
     120° sind  etwa   275  (1.34 V)
( mit dem 100 Ohm Vor-Widerstand )
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: uwefed on Mar 22, 2013, 08:24 pm
Das Problem ist daß der PTC den Widerstand nicht linear mit der Temperatur ändert.
Grüße Uwe
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Mar 22, 2013, 09:13 pm

Das Problem ist daß der PTC den Widerstand nicht linear mit der Temperatur ändert.


Das ist normalerweise kein Problem, wenn er ein Multimeter mit möglichst genauem Widerstandsmessbereich hat. Und es ist ein NTC Widerstand (siehe unten).

Dann braucht er nur bei zwei möglichst genau bestimmten Temperaturen den Widerstand seiner VDO-Messschraube auszumessen und kann sich leicht die Formel ermitteln, mit deren Hilfe er dann JEDE Temperatur aus den Messungen mit seinem Arduino ausrechnen kann.

Die Kennlinie eines NTC ist zwar nicht linear, aber praktisch trotzdem durch Messung an zwei Temperaturpunkten zu ermitteln, aufwändiger ist das gar nicht, denn es besteht ein logarithmischer Zusammenhang.

VDO-Schraube in 0° kaltes Wasser hängen ==> Widerstand bei 0° messen
VDO-Schraube in kochendes Wasser hängen ==> Widerstand bei 90° bis 100° messen (je nach Höhenlage über Meeresspiegel)

Damit ist dann alles klar. Wem nicht, dem rechne ich das mal vor, wie die Kalibrierwerte für die Formel ermittelt werden, und wie man aus dem Arduino mit Mess-Vorwiderstand und der Formel dann immer die passende Temperatur ausrechnet.

[Edit] Was rede ich eigentlich vom Messen, die Werte für den 150°-VDO-Öltemperaturgeber stehen im Internet, so dass man damit sofort losrechnen könnte:
http://www.temperaturgeber.de/vdo_temperaturgeber_daten.html

Und das mit dem Rechnen mache ich dann auch gleich mal.
Falls Du einen Standard-Sketch für Messungen mit NTCs verwendest, der die NTC Materialkonstante "B" erfordert, hier die Berechnung des Datenblattwerts "B" anhand der Öltemperatur-Sensordaten auf der Webseite (absolute Temperaturen in Kelvin von mir ergänzt):
60°C ==> 333,15K ==> 221,2 Ohm
120°C ==> 393,15K ==>  36,5 Ohm

Formel für die Konstante B
B= (T1 * T2)/ (T2-T1) * ln(R1/R2)

Einsetzen (mit absoluten Temperaturen in Kelvin):
B= (393,15*333,15)/(393,15-333,15)* ln(221,2/36,5) = 3933

Damit hast Du als Datenblattwerte für den VDO-Sensor zum Einsetzen in einschlägige Berechnungsformeln (wie sie z.B. in den Datenblättern beliebiger NTC-Widerstände genannt werden):
T1 = 333,15 K
R1 = 221,2 Ohm
B = 3933
Die Berechnungsformeln selbst können aus jedem beliebigen Datenblatt eines beliebigen Herstellers von NTC-Widerständen entnommen werden, den Formeln ist es nämlich egal, wenn man in den Formeln die Konstanten eines anderen NTC von einem Fremdhersteller einsetzt.

Wenn das Rechnen das Problem ist, kann ich natürlich noch weiterrechnen und ein paar Zeilen Code dazu schreiben.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Scherheinz on Mar 24, 2013, 03:54 pm
Hallo!
Ich verstehe nicht ganz wie man aus 2 Punkten eine Kurve berechnet, kannst du deine Rechnung in einem Diagramm oder einer Excel Tabelle zeigen?

Ich hab den Sensor seit zwei Jahren im Auto zur Öltemperatursensor, nutze ihn aber bisher nur als Grenzwertüberwachung. Hatte auch hin und her gerechnet und auch nur die Kurve durch den Spannungsteiler etwas strecken können. So hatte ich einen Messbereich von 70 - 130C° aber immer noch mit einer Toleranz von +/- 2,5C°.


Gruß

Heinz
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Mar 24, 2013, 05:00 pm

Ich verstehe nicht ganz wie man aus 2 Punkten eine Kurve berechnet, kannst du deine Rechnung in einem Diagramm oder einer Excel Tabelle zeigen?


Tja, wo man doch aus der Mathematik weiß, dass zwei Punkte mal eben so eine Gerade exakt bestimmen können, ist das vielleicht schwer verständlich.

Vielleicht wird es verständlicher, wenn Du folgende Zusatzbedingung hinzumimmst:
Die Widerstandskurve eines NTC-Widerstands verläuft logarithmisch

Und wenn Du diese Zusatzbedingung als bekannt annimmst, kannst Du die Widerstandskurve eines NTC-Widerstands tatsächlich aus nur zwei Punkten der Kurve ermitteln.

Sobald Du zu jeder Temperatur den Widerstand des NTC ("Temperaturfühler") kennst, dann kannst Du aus den Daten der Schaltung für Vorwiderstand, Betriebsspannung und gemessene Spannung jederzeit den aktuellen Widerstand des NTC ermitteln und von diesem widerum mit hoher Genauigkeit auf die aktuelle Temperatur zurückschließen.


kannst du deine Rechnung in einem Diagramm oder einer Excel Tabelle zeigen?


Sorry, Diagramm oder Excel-Tabelle, sowas kann ich nicht.

Wenn es Dir reicht, kann ich Dir die noch zusätzlich notwendigen Formeln herleiten, so daß Du am Ende aus den Schaltungsdaten (NTC-Konstante B wie oben vorgerechnet, Vorwiderstand, Betriebsspannung) und dem Meßwert (analogRead am Pin) die Temperatur ausrechnen kannst, direkt in Arduino-Code.

Soll ich mal versuchen, das verständlich zusammenzuschreiben?
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Scherheinz on Mar 24, 2013, 05:12 pm
Das wäre super! Ich versuche mir halt immer über Excel was herzuleiten, aber selbst wenn das klappt ist es noch schwierig das Ganze in den Arduino zu bekommen  ;)

Hab gerade noch was gefunden....

http://e30-talk.com/attachments/elektrik/141061d1352352184-zusatzinstrumente-durchmessen-vergleichen-vdo-temp-geber_kennlinien.pdf (http://e30-talk.com/attachments/elektrik/141061d1352352184-zusatzinstrumente-durchmessen-vergleichen-vdo-temp-geber_kennlinien.pdf)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: maeckes on Mar 24, 2013, 05:14 pm
Tach!

Ich mache zur Zeit genau das Gleiche wie Du.

Also die Temp.-Sensoren von Koso sind 10k NTC's.

Ich kann Dir gerne meinen Code zur Verfügung stellen, dann kannst Du mit dem NTC + Spannungsteileraufbau einfach Deine Temperatur errechnen.
Zum Spannungsteileraufbau:
http://www.nextit.de/2011/07/thermometer-mit-arduino/

Hier kannst Du mein Projekt sehen:
http://arduino.cc/forum/index.php/topic,148346.0.html
Am Ende gibts auch nen kleines Video zum Ist-Stand.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Scherheinz on Mar 24, 2013, 07:55 pm
Also mein VDO ist ein 1K NTC. Bin gerade dabei mir die Widerstandstabelle anzuschauen
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Mar 24, 2013, 09:42 pm

Das wäre super! Ich versuche mir halt immer über Excel was herzuleiten, aber selbst wenn das klappt ist es noch schwierig das Ganze in den Arduino zu bekommen  ;)


So hier zunächst mal die Herleitung der Formeln. Um weitgehend konform mit den Datenblättern der NTC-Hersteller zu sein, bezeichne ich im folgenden die Nenntemperatur des NTC als T0, den Nennwiderstand als R0 (also etwas abweichend wie oben bei der Herleitung der Materialkonstanten B).

Die Schaltung: Temperatur-Messschaltung mit NTC/Thermistor

[font=Courier]VB -----<Vorwiderstand>-----<NTC-Messwiderstand>----- Ground 0V
5V            RV         |        RN
                        |      
                        |      
                       VA
                   Analogeingang
                     am Arduino
[/font]
mit
VB = Betriebsspannung des Arduino (irgendwo bei ca. 5V)
RV = Vorwiderstand
RN = Widerstand des NTC (temperaturabhängig!)
VA = Spannung am Arduino-Messeingang

Es gelte die vereinfachte Annahme, dass der Analogeingang des Arduino so hochohmig sei,
dass dort kein Strom hindurchfließt, sondern der Strom rein von VB über den Vorwiderstand,
und den NTC-Widerstand nach Ground fließe.

Dann gilt jeweils das Ohmsche Gesetz (U=R*I):

VA = RN*I
VB = (RV+RN)*I             |Gleichungen dividieren

VA/VB= (RN*I)/((RV+RN)*I)  |I kürzen

VA/VB= RN/(RV+RN)          |*(RV+RN)

VA/VB*(RV+RN)= RN          |weiter umformen

RV*VA/VB + RN* VA/VB = RN

RV*VA/VB = RN - RN*VA/VB

RV*VA/VB = RN(1-VA/VB)

RN= RV*VA/VB / (1-VA/VB) ==> Formel für den Widerstand des NTC-Widerstands!

Weiter geht's mit einer Formel aus dem NTC-Datenblatt eines beliebigen Herstellers von NTC-Widerständen
T = T0 * B / (B + T0 * ln(RN / R0))

Falls die Materialkonstante B aus einem Datenblatt bekannt ist, kann man diese zur Berechnung verwenden. Und falls man nur zwei Wertepaare aus Temperatur und Widerstand hat, kann die Konstante selbst berechnet werden. Ich habe deshalb mal zwei Funktionen gemacht, und zwar zur Verwendung bei bekannter Materialkonstante B aus einem Datenblatt:
float temperature_NTCB(float T0, float R0, float B, float RV, float VA_VB)

Und falls man die Materialkonstante B nicht hat, aber dafür zwei Wertepaare für Temperatur und Widerstand:
float temperature_NTC(float T0, float R0, float T1, float R1, float RV, float VA_VB)

Die einzelnen Parameter sind im Code nochmal erklärt. Die Variable "VA_VB" bezeichnet das Verhältnis aus Spannung am NTC geteilt durch die Betriebsspannung. Praktischerweise ermittelt der Aruino genau dieses Verhältnis in 1024 Schritten, so daß man an der Stelle einfach den Messwert des Analogpins geteilt durch den Maximalwert 1023.0 (das .0 damit es eine Float-Variable wird) übergeben kann.

Vielleicht mag mal jemand den Code testen. Ich habe gar keinen NTC hier.
Code: [Select]

// NTC temperature calculation by "jurs" for German Arduino forum
#define ABSZERO 273.15
#define MAXANALOGREAD 1023.0

float temperature_NTCB(float T0, float R0, float B, float RV, float VA_VB)
// Ermittlung der Temperatur mittels NTC-Widerstand
// Version der Funktion bei gegebener Materialkonstante B
// Erklärung der Parameter:
// T0           : Nenntemperatur des NTC-Widerstands in °C
// R0           : Nennwiderstand des NTC-Sensors in Ohm
// B            : Materialkonstante B
// Vorwiderstand: Vorwiderstand in Ohm  
// VA_VB        : Spannungsverhältnis "Spannung am NTC zu Betriebsspannung"
// Rückgabewert : Temperatur
{
 T0+=ABSZERO;  // umwandeln Celsius in absolute Temperatur
 float RN=RV*VA_VB / (1-VA_VB); // aktueller Widerstand des NTC
 return T0 * B / (B + T0 * log(RN / R0))-ABSZERO;
}


float temperature_NTC(float T0, float R0, float T1, float R1, float RV, float VA_VB)
// Ermittlung der Temperatur mittels NTC-Widerstand
// Version der Funktion bei unbekannter Materialkonstante B
// Erklärung der Parameter:
// T0           : Nenntemperatur des NTC-Widerstands in °C
// R0           : Nennwiderstand des NTC-Sensors in Ohm
// T1           : erhöhte Temperatur des NTC-Widerstands in °C
// R1           : Widerstand des NTC-Sensors bei erhöhter Temperatur in Ohm
// Vorwiderstand: Vorwiderstand in Ohm  
// VA_VB        : Spannungsverhältnis "Spannung am NTC zu Betriebsspannung"
// Rückgabewert : Temperatur
{
 T0+=ABSZERO;  // umwandeln Celsius in absolute Temperatur
 T1+=ABSZERO;  // umwandeln Celsius in absolute Temperatur
 float B= (T0 * T1)/ (T1-T0) * log(R0/R1); // Materialkonstante B
 float RN=RV*VA_VB / (1-VA_VB); // aktueller Widerstand des NTC
 return T0 * B / (B + T0 * log(RN / R0))-ABSZERO;
}


void setup()
{
 Serial.begin(9600);
}


#define ANALOGPIN A2

void loop()
{
 float T0=60;    // Nenntemperatur des NTC-Widerstands in °C
 float R0=221.2; // Nennwiderstand des NTC-Sensors in Ohm
 float T1=120;   // erhöhte Temperatur des NTC-Widerstands in °C
 float R1=36.5;  // Widerstand des NTC-Sensors bei erhöhter Temperatur in Ohm
 float Vorwiderstand=100; // Vorwiderstand in Ohm  
 float temp;    
 int aValue=analogRead(ANALOGPIN);
 
 // Berechnen bei unbekannter Materialkonstante
 temp=temperature_NTC(T0, R0, T1, R1, Vorwiderstand, aValue/MAXANALOGREAD);
 Serial.print("NTC : ");Serial.print(temp);Serial.println(" C");
 // Berechnen bei bekannter Materialkonstante B=3933;
 temp=temperature_NTCB(T0, R0, 3933, Vorwiderstand, aValue/MAXANALOGREAD);
 Serial.print("NTCB: ");Serial.print(temp);Serial.println(" C");
 delay(1000);
}
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Eaglebiker on Mar 24, 2013, 11:20 pm
Ich mache das folgender maßen

5V--------2k7 1%----------KTY81/110---------GND

Zwischen dem 2k7 und dem KTY gehe ich zum Analogeingang
da das KFZ Bordnetz Störungen verursacht würde ich noch eine Schutzschaltung für den Analog eingang empfehlen

siehe anhang
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: michael_x on Mar 25, 2013, 10:51 am
Quote
da das KFZ Bordnetz Störungen verursacht würde ich noch eine Schutzschaltung für den Analog eingang empfehlen


Mal abgesehen davon, dass Schutzschaltungen nie schaden,
verstehe ich das so, dass die Schaltung von den 5V des Arduino gespeist wird ( die auch als Aref verwendet werden kann / sollte ).

Zu meinem Versändnis:
Wie kommen da Störungen zustande, vor denen die Zusatz-Schaltung schützen soll ?
(Woher man saubere 5V her kriegt, ist eine andere Frage)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Eaglebiker on Mar 25, 2013, 11:18 am
Störungen können zb über die masseleitung kommen
zb von der Zündanlage Zündspulen etc auch die Lichtmaschine kann Störungen im Bordnetz verursachen
wie du saubere 5V bekommst kannst du hier sehen

Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Scherheinz on Mar 25, 2013, 11:46 am
@ Jurs
Danke für die Arbeit die du dir gemacht hast!  :) Ich werde es hoffentlich die Tage testen können und meld mich wenn ich Ergebnisse hab!

Störeinstrahlung muss nichts mit der Versorgungsspannung zutun haben. Wenn z.b. das Sensorkabel neben dem Anlasserkabel liegt kann es zu starker Induktion kommen oder wenn die Zündanlage nicht gut abgeschirmt ist gibt es Einstrahlungen. Den Controller würde ich eh in ein abgeschirmtes Gehäuse bauen.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: farewell on Mar 25, 2013, 04:07 pm

Tach!

Ich mache zur Zeit genau das Gleiche wie Du.

Also die Temp.-Sensoren von Koso sind 10k NTC's.

Ich kann Dir gerne meinen Code zur Verfügung stellen, dann kannst Du mit dem NTC + Spannungsteileraufbau einfach Deine Temperatur errechnen.
Zum Spannungsteileraufbau:
http://www.nextit.de/2011/07/thermometer-mit-arduino/

Hier kannst Du mein Projekt sehen:
http://arduino.cc/forum/index.php/topic,148346.0.html
Am Ende gibts auch nen kleines Video zum Ist-Stand.


hallo maeckes, da ich gerade auf der koso seite einen sensor gefunden habe (M12xP1.5) der bei mir passen würde, wäre ich dankbar wenn du mir deinen Code zur Verfügung stellen könntest, ich brauch nämlich nur noch den Teil und ich wäre quasi fertig =)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Mar 25, 2013, 04:32 pm

hallo maeckes, da ich gerade auf der koso seite einen sensor gefunden habe (M12xP1.5) der bei mir passen würde, wäre ich dankbar wenn du mir deinen Code zur Verfügung stellen könntest, ich brauch nämlich nur noch den Teil und ich wäre quasi fertig =)


Na hoffentlich basiert der Code dann nicht auf dem hier in diesem Thread bereits zum wiederholten male verlinkten Code von der Seite "thermometer-mit-arduino"! Der Arduino-Code zur Temperaturberechnung eines NTC auf der Seite sieht mir nämlich genau so nach Grütze aus wie die Rechtschreibung auch.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Scherheinz on Mar 25, 2013, 07:51 pm
zum Beispiel Wieeederstand  :smiley-yell: :smiley-yell:
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: maeckes on Mar 26, 2013, 09:40 pm
:P Ja das ist mir auch schon aufgefallen, aber ich kann Euch beruhigen - der Kot äh Code kommt nicht von mir ;)

Ich wollte damit aber nur den Spannungsteileraufbau zeigen, den ich auch verwende, falls das nicht klar sein sollte.

Ich schicke Dir den Code mal als PN.
Ist noch in der Entwicklung, aber sollte Dir schon mal helfen.

Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Scherheinz on Mar 30, 2013, 03:39 pm
Hab soeben den Code von JURS gestestet und bin mehr als zufrieden!
Die Ausgabe ist sehr genau und ich werde den Code so übernehmen.

Nochmal Dankeschön! :)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Mar 31, 2013, 11:17 am

Hab soeben den Code von JURS gestestet und bin mehr als zufrieden!
Die Ausgabe ist sehr genau und ich werde den Code so übernehmen.

Nochmal Dankeschön! :)


Danke für's Testen!

Dann sind meine Schulkenntnisse aus dem Physik- und Matheunterricht ja doch noch nicht so ganz eingerostet.
:)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Ratlos on Jul 19, 2013, 06:53 pm
Hallo Jurs,

kannst Du Deine Super Formel etwas für mich ändern.
In Exel ????????????

Ich möchte den Wiederstand vorgeben und dann die Temperatur sehen.
Genau wie auch die Temparatur und dann den Widerstand sehen

Hoffe das war ein wenig verständlich

Anlage 1 Exel Datei
http://www.workupload.com/file/2tywtl2 (http://www.workupload.com/file/2tywtl2)

Grüße
Ratlos
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Jul 19, 2013, 07:47 pm

kannst Du Deine Super Formel etwas für mich ändern.
In Exel ????????????

Ich möchte den Wiederstand vorgeben und dann die Temperatur sehen.
Genau wie auch die Temparatur und dann den Widerstand sehen


Die Formel ändern kann ich.
Ich hatte Mathe in der Schule bis zur 13. Klasse.

Excel-Formeln kann ich nicht.
Excel kam in der Schule nicht dran.
Und: Ich habe gar kein Excel. Höchstens vielleicht irgendwo ein Open Office.

Hier hatte ich meine Formel hergeleitet:
http://forum.arduino.cc/index.php?topic=155733.msg1170722#msg1170722

Da stehen die verwendeten Abkürzungen erklärt und auch die Formel aus dem NTC-Datenblatt irgendeines NTC-Herstellers:

T = T0 * B / (B + T0 * ln(RN / R0))

In diese Formel kannst Du den temperaturabhängigen Widerstand RN einsetzen und bekommst die Temperatur heraus.

Wenn Du es umgekehrt möchtest, kannst Du die Formel ein wenig umstellen und nach RN auflösen:

1. Schritt:
B + T0* ln(RN/R0) = T0 * B / T

2. Schritt:
ln(RN/R0) = (T0*B/T - B)/T0

3. Schritt:
RN = R0 * exp(B/T -B/T0)

Und nun hast Du eine Formel, wo Du rechts die Temperatur T einsetzen kannst und bekommst links den temperaturabhängigen Widerstand heraus. Die Formel in Excel zu verwenden, sollte nicht so schwierig sein.


Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Ratlos on Jul 19, 2013, 08:44 pm
Hallo,
bekomme ich nicht so einfach hin.
"Wollte das in EXEL haben"

Mit den Werten von VDO
150°C   
Celsi    Ohm
-10   5078,36
-5   3879,50
0   2991,26
5   2323,47
10   1819,64
15   1434,17
20   1138,30
25   908,81
30   731,94
35   591,25
40   480,71
45   393,35
50   323,63
55   267,45
60   222,54
65   186,47
70   157,09
75   133,22
80   113,22
85   96,84
90   83,25
95   71,93
100   62,43
105   54,43
110   47,62
115   41,79
120   36,81
125   32,54
130   28,86
135   25,66
140   22,87
145   20,40
150   18,25
155   16,38
160   14,73
165   13,28
170   11,99
175   10,85
180   9,84

Naja werde mal sehen was ich machen kann
Danke für Deine bemühungen
Grüße
Ratlos
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Ratlos on Jul 19, 2013, 09:03 pm
Hallo
so habe es
Danke Dir
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Jul 19, 2013, 09:41 pm

Hallo
so habe es
Danke Dir


So, jetzt habe ich es auch.
Extra mal auf einem PC mit Excel-Starteredition laufen lassen.

Aus T0, R0 und B werden zwei Wertetabellen generiert:

1. Wertetabelle Celsius==>Ohm, zwischen -10°C und +250°C und 1° Abstand
2. Wertetabelle Ohm==>Celsius, zwischen 10 Ohm und 4970 Ohm mit 10 Ohm Abstand

Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: rudirabbit on Jul 20, 2013, 06:40 pm
Danke jurs für die ausführliche Erklärung.
Mann was ich früher gekämpt,um mit diesen analogen Sensoren halbwegs richtige Werte zu bekommen.
Leider zu spät, inzwischen habe ich digitale Sensoren  ;)

Hatte schon Softwaremässig mit zwei Geradengleichungen mit unterschiedlichen Steigungsfaktoren gearbeitet,
also quasi die logarithmischen Funktion annähernd mit zwei linearen Funktionen nachgebildet.  :smiley-red:  (differenzieren für den DAU)

Code: [Select]
RN= RV*VA/VB / (1-VA/VB) ==> Formel für den Widerstand des NTC-Widerstands!

Kann man IHMO noch etwas vereinfachen:
Code: [Select]
RN = (VA*RV)/(VB-VA)

Hoffe es hat sich kein Fehler eingeschlichen
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Jul 20, 2013, 09:39 pm

Hoffe es hat sich kein Fehler eingeschlichen


Die Umwandlung der Formel ist korrekt.

Allerdings verwende ich den Ausdruck "VA/VB" wie eine einzige Variable und forme ihn nicht weiter um, da ich ihn direkt mit dem Arduino messen kann. Das Verhältnis von abgegriffener Spannung am NTC zur Betriebsspannung ist nämlich immer gleich mit dem per analogRead() gemessenen Wert geteilt durch 1023.

So daß ich am Ende gar nicht mehr mit der Betriebsspannung VB rechnen brauche.

Die Betriebsspannung fällt bei der Temperaturermittlung bei einer Spannungsteilerschaltung aus NTC und Vorwiderstand aus der Rechnung komplett heraus und es ist vollkommen egal, ob der Arduino die Messung mit 3*AA Batteriestrom oder 5V USB oder welcher genauen Betriebsspannung auch immer gemessen wird. Es kommt nur auf das Verhältnis der Spannungen am Spannungsteiler an.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Ratlos on Jul 22, 2013, 06:00 pm
Hallo Jurs,

habe mir eine Temp und eine Ölduckanzeige gebaut.

Das mit dem Typ K sensor und den VDO 150°C geht dank des Forums Super gut.
Daher noch einmal mit scharm eine frage.........................  :smiley-red:

kannst Du aune Formel für einen Drucksensor erstellen ?
http://www.druckgeber-oeldruckgeber.de/vdo-druckgeber-ohne-wk-daten.html (http://www.druckgeber-oeldruckgeber.de/vdo-druckgeber-ohne-wk-daten.html)

Wäre Super gut , weil ich das nicht kann.
Aber auf jeden fall nochmal vielen dank.

Grüße
Ratlos
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Ratlos on Jul 22, 2013, 06:03 pm
Hallo,
ach ja ein 0 - 5 bar Sensor

Grüße
Ratlos
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Jul 22, 2013, 08:46 pm

Das mit dem Typ K sensor und den VDO 150°C geht dank des Forums Super gut.
Daher noch einmal mit scharm eine frage.........................  smiley-red

kannst Du aune Formel für einen Drucksensor erstellen ?
http://www.druckgeber-oeldruckgeber.de/vdo-druckgeber-ohne-wk-daten.html


Das kann ich tun, sieht eher nach einer Kleinigkeit zum Rechnen aus.

Wenn die Spannungsteilerschaltung aus Vorwiderstand und Sensor dieselbe ist, gilt auch dieselbe Formel für die Messschaltung beim Messen mit dem Arduino:
RN= RV*VA/VB / (1-VA/VB) ==> Formel für den Widerstand des Sensors!

Das ist schonmal die halbe Miete. Der einzige Unterschied ist nun, dass es kein Datenblatt mit einer Formel für die Beziehung zwischen Widerstand und Messwert (in diesem Fall Druck) gibt, sondern nur eine kleine Tabelle. Und aus der Tabelle muss man sich selbst erst eine Formel aufstellen.

Mit dem 5bar Sensor meinst Du den, der diese Werte hat:
0 bar  -  10 Ohm
1 bar  -  48 Ohm
2 bar  -  82 Ohm
3 bar  - 116 Ohm
5 bar  - 184 Ohm

Wenn man das in einem xy-Koordinatensystem aufträgt, sieht man: Es ist keine Gerade. Eine lineare Interpolation zwischen den Punkten liefert daher sehr schlechte Ergebnisse.

Meine Idee wäre daher, eine Parabel als Nährungskurve zu verwenden, gegeben durch die Gleichung zweiter Ordnung:

p = a * RN2 + b * RN + c

mit
p= Druck
RN = Widerstand des Sensors

Eine Gleichung zweiter Ordnung ist durch drei Punkte vorgegeben, daher wähle ich aus der Tabelle drei Punkte zum Aufstellen der Gleichung, und zwar Anfangs- und Endpunkt und den Messpunkt in der Mitte:
0 bar  -  10 Ohm
2 bar  -  82 Ohm
5 bar  - 184 Ohm

Daraus ergeben sich drei Gleichungen mit drei Unbekannten:

0 = a * 102 + b * 10 + c
2 = a * 822 + b * 82 + c
5 = a *1842 + b * 184 + c

Und da ich ein fauler Sack bin wenn es ums Lösen geht, gehe ich auf http://www.arndt-bruenner.de/mathe/scripts/gleichungssysteme.htm wo es einen Online-Rechner zum Lösen solcher Gleichungen gibt, und bekomme heraus:

  float a=1.0/106488;
  float b=1433.0/53244;
  float c=-3595.0/13311;

So dass der Arduino den Druck nach dieser Formel rechnen kann:
pressure=a*RN*RN + b*RN + c;

Dabei bekomme ich folgende Wertetabelle herausgerechnet:
Code: [Select]

Ohm  bar
---  ----
10  0.00
11  0.03
12  0.05
13  0.08
14  0.11
15  0.14
16  0.16
17  0.19
18  0.22
19  0.24
20  0.27
21  0.30
22  0.33
23  0.35
24  0.38
25  0.41
26  0.44
27  0.46
28  0.49
29  0.52
30  0.55
31  0.57
32  0.60
33  0.63
34  0.66
35  0.68
36  0.71
37  0.74
38  0.77
39  0.79
40  0.82
41  0.85
42  0.88
43  0.90
44  0.93
45  0.96
46  0.99
47  1.02
48  1.04
49  1.07
50  1.10
51  1.13
52  1.15
53  1.18
54  1.21
55  1.24
56  1.27
57  1.29
58  1.32
59  1.35
60  1.38
61  1.41
62  1.43
63  1.46
64  1.49
65  1.52
66  1.55
67  1.58
68  1.60
69  1.63
70  1.66
71  1.69
72  1.72
73  1.74
74  1.77
75  1.80
76  1.83
77  1.86
78  1.89
79  1.91
80  1.94
81  1.97
82  2.00
83  2.03
84  2.06
85  2.09
86  2.11
87  2.14
88  2.17
89  2.20
90  2.23
91  2.26
92  2.29
93  2.31
94  2.34
95  2.37
96  2.40
97  2.43
98  2.46
99  2.49
100  2.52
101  2.54
102  2.57
103  2.60
104  2.63
105  2.66
106  2.69
107  2.72
108  2.75
109  2.78
110  2.80
111  2.83
112  2.86
113  2.89
114  2.92
115  2.95
116  2.98
117  3.01
118  3.04
119  3.07
120  3.09
121  3.12
122  3.15
123  3.18
124  3.21
125  3.24
126  3.27
127  3.30
128  3.33
129  3.36
130  3.39
131  3.42
132  3.45
133  3.48
134  3.50
135  3.53
136  3.56
137  3.59
138  3.62
139  3.65
140  3.68
141  3.71
142  3.74
143  3.77
144  3.80
145  3.83
146  3.86
147  3.89
148  3.92
149  3.95
150  3.98
151  4.01
152  4.04
153  4.07
154  4.10
155  4.13
156  4.16
157  4.19
158  4.22
159  4.25
160  4.28
161  4.31
162  4.34
163  4.37
164  4.40
165  4.43
166  4.46
167  4.49
168  4.52
169  4.55
170  4.58
171  4.61
172  4.64
173  4.67
174  4.70
175  4.73
176  4.76
177  4.79
178  4.82
179  4.85
180  4.88
181  4.91
182  4.94
183  4.97
184  5.00

Für 0, 2 und 5 bar ergeben sich dabei die exakten Werte, denn diese Punkte hatte ich ja zum Aufstellen der Gleichung verwendet. Bei der Interpolation der beiden anderen bekannten Punkte ergibt sich folgender Fehler:

Statt  48 Ohm - 1 bar
Gerechnet: 48 Ohm 1.04 bar
und
Statt
116 Ohm - 3 bar
Gerechnet: 116 Ohm - 2.98 bar

Bevor ich weitermache:
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?
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Jul 23, 2013, 08:58 am

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:
Code: [Select]

Ö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

Code: [Select]


/* 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)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: rudirabbit on Jul 23, 2013, 10:55 am
Wow:  jurs   !

Ich wollte schon fragen, wie man unter Einbeziehung aller Punkte die Funktionsvorschrift bestimmt.
Du kannst vor allem auch gut erklären.

Ich hatte nur die Realschule (Technischer Zweig, also sowas wie Mathe LK dort), war immer zwischen 1..2 .
Trotzdem fehlt mir halt einiges im Lehrplan im Vergleich zum Gymi.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Ratlos on Jul 23, 2013, 11:21 am
Mensch Mensch echt Danke jurs

Deine Erste mit dem VDO die ist echt sehr sehr gut.  "habe die ausführlich getestet"

Werde diese auch  Testen und Dir berichten.

Grüße
Ratlos
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Jul 23, 2013, 01:51 pm

Werde diese auch  Testen und Dir berichten.


Alles klar, da bin ich ja mal gespannt!

Übrigens Kommando zurück was die Berechnung des Vorwiderstands betrifft: Der Strom fließt ja gar nicht über einen Digitalpin des Controllers, sondern nur zwischen 5V und GND. Und am 5V Pin des Arduino Boards darf man bei den meisten Boards bis zu 200mA entnehmen, die 40 mA Grenze für Controller-Pins greift daher NICHT.

Ich weiß nicht, wieviel Strom der Ödruckgeber maximal verkraftet und konnte auch keine Datenblattangaben dazu finden, aber ich schätze mal, dass der schon deutlich mehr als 40mA verkraftet. Um möglichst viel von der 10-Bit ADC Auflösung des Arduino auszunutzen, wäre es daher wahrscheinlich sinnvoller, eher einen Vorwiderstand zu verwenden, der im Bereich des Widerstands des Öldruckgebers liegt. Z.B. 82 Ohm Vorwiderstand. Der Maximalstrom bei 82 Ohm Vorwiderstand und 10 Ohm bei Nulldruck am Geber beträgt dann:
I = U/R = 5 / (82+10) = 54 mA

Das gibt der 5V Pin am Arduino locker her und auch der Geber sollte das locker verkraften.
Also vielleicht doch eher 82 Ohm Vorwiderstand statt 180 Ohm.
Prinzipiell funktionieren sollte beides.

Zum Messen natürlich keine Widerstände mit 10% oder 20% Toleranz verwenden, sondern welche mit höchstens 1% Toleranz (oder noch bessere "Messwiderstände"), sonst nützt die genaueste Formel nichts.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: turbo91 on Jan 25, 2014, 08:00 am
Hi erstmal, also ich habe hier in dem Thema endlich eine Antwort auf meine fragen bekommen, ich habe bei mir den VDO Temperaturgeber verbaut. Nur möchte ich mein Analogeingang gegen Überspannung schützen, dies würde ja mit einer Diode gehen.
Nur würde diese ja mein Messergebniss verfälschen. Wie kann ich diese wieder rausrechnen?


Danke im vorraus:-)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: guntherb on Jan 25, 2014, 09:49 am
Nimm eine Schottky-Diode auf 5V.
die verfälscht (bei normalen Temperaturen) nicht.

Falls du das anders machen willst, wäre ein Schaltung hilfreich für die Anworten.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Jan 25, 2014, 10:07 am

Nur würde diese ja mein Messergebniss verfälschen. Wie kann ich diese wieder rausrechnen?


Eine Transienten-Suppressordiode zwischen +5V und GND in der Messschaltung verfälscht den Messwert nicht.

Falls Du andere Arten von Dioden mit unbekannten Daten und auf andere Art in die Schaltung integrieren möchtest, so dass die Messwerte verfälscht werden, kannst Du die Schaltung zur Steigerung der Genauigkeit ggf. kalibrieren.

Du machst zum Kalibrieren z.B. immer zwei Messungen, einmal ohne die Schutzschaltung und einmal mit, bei derselben Temperatur, und beobachtest, um wieviel sich die Temperaturanzeige beim Anschalten des zusätzlichen Bauteils ändert:
- Bei Zimmertemperatur ohne/mit Schutzbauteil: Temperaturanzeige ändert sich wieviel?
- Bei kochendem Wasser ohne/mit Schutzbauteil: Temperaturanzeige ändert sich wieviel?
- Bei erhitztem Frittieröl (Vorsicht Brandgefahr!) ohne/mit Schutzbauteil: Temperaturanzeige ändert sich wieviel?

Dann kennst Du den Einfluß des Bauteils an drei festen Temperaturpunkten. Und um den Einfluß bei anderen Temperaturen zu erhalten, kannst Du den Korrekturwert mittels linearer Interpolation ermitteln.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: guntherb on Jan 25, 2014, 10:47 am
Jurs hat recht, Transienten-Suppressordioden helfen, und meine Antwort mit den Schottky dioden war zu kurz gegriffen.
Ich hatte übersehen, dass es sich um eine Automotive Anwendung handelt.

Im KFZ mußt du mit verschiedenen Arten von Überspannung rechnen:
a) im Falle eine Kabelfehler dauerhaft 12V
b) hochenergetische Pulse die kapazitiv in die Sensorleitung eingekoppelt werden die Spannungen größer als +/-100V haben können.

Entsprechend mußt du auch zweimal filtern:
Einmal mit Suppressordioden oder anderen Bauteile die die entsprechenden Energien aufnehmen können, um die hohen Spannungspulse platt zu machen. Dabei hast du das Problem, dass du ja die Suppressordiode so dimensioniern mußt, dass bei normalen Signalspannungen noch kein Strom durch die Schutzdiode fließt.
Wenn du hier eine wählst mit einer Nennspannug von 5V, dann hast du eine Klemmenspannung größer 7V. Zuviel.
Also brauchst noch eine zweite Stufe:
nach einem Widerstand je eine Schottky-Diode von Signal auf 5V und GND. Die klemmt dann die restliche Spannung auf für den µC verträgliches Niveau. Zusätzlich noch einen EMV-C am Eingang der Schaltung und einen Filter-C vor dem AD-Pin.

Also: von aussen kommend:
- einen EMV-kondendator  (ca 22nF / 50V keramisch)
- Supressordioden
- Längswiderstand
- Schottkydioden
- Filter-C (der mit dem Längswiderstand einen Tiefpass bildet, der auf das Signal und die Abtastung abgestimmt ist)
- AD-Pin
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: uwefed on Jan 25, 2014, 04:09 pm


Übrigens Kommando zurück was die Berechnung des Vorwiderstands betrifft: Der Strom fließt ja gar nicht über einen Digitalpin des Controllers, sondern nur zwischen 5V und GND. Und am 5V Pin des Arduino Boards darf man bei den meisten Boards bis zu 200mA entnehmen, die 40 mA Grenze für Controller-Pins greift daher NICHT.

Am 5V Pin darfst Du bei Stromversorgung über USB-fast 450mA abgreifen (geschätzen Verbrauch für Arduino von 50mA). Der Stromverbrauch von Shields muß von diesem Wert noch abgezgen werden.
Der Maximalwert bei Stromversorgung mit einem Externen Netzeil hängt von der Verlustleistung am Spannungsstabilisator auf dem Arduino, und dmit von der Eingangspannung ab. Mehr als 1W würde ich ihm aber nicht zutrauen ohne langfristig die Platine (Platinenmaterial ) zu verschmoren.

Die 200mA sind die Grenze der GND und Spannungsversorgungspins des Microcontrollers und nicht der Pins des Arduinos. Die Pins der Arduinos sind durch die 40mA pro Ausgangspin, 200mA als Summe aller Ströme aller Ausgangspins für L bzw H Pegel. und zusätzlich 100 bzw 150mA für bestimmte Pinngruppen. Genaueres auf http://www.atmel.com/Images/doc8161.pdf Seite 313 Tabelle Kapitel 28.1 und Fußnoten 3 und 4 der Tabelle Kapitel 28.2.

Grüße Uwe
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: michael_x on Jan 25, 2014, 04:11 pm
Quote
Nur möchte ich mein Analogeingang gegen Überspannung schützen

Wenn du es genauso machst wie in diesem Thread vorher beschrieben ( 5V vom Arduino an den Öldruck-Sensor und einen 82 .. 100  Ohm Widerstand ) hast du eigentlich keine Überspannungsprobleme (ausser bei Verdrahtungsfehlern) und bei der Versorgung des Arduino selbst.
Wenn du den Geber am 12V Bordnetz betreibst, hast du ausser Überspannung noch ganz andere Probleme:
Willst du Druck ( oder inzwischen wieder die Temperatur ?)  oder die Batteriespannung messen?
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: turbo91 on Jan 26, 2014, 06:27 am
Oh das wird ja  doch mehr als ich dachte.
Also das Problem mit der Überspannung entsteht ja nur weil der Sonsor Masse am Gehäuse hat.
Da es in M10x1,0 keinen mir bekannten Sensor gibt, der eine Masseanschluss hat.
Wenn ich jetzt versuche einen größeren Sensor zu kaufen der einen Masseanschluss hat, benötige ich doch nur eine Schottky für die Induktiven Spannungen oder?
Danke für die vielen Antworten:-)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: guntherb on Jan 26, 2014, 11:52 am
Also das Problem mit der Überspannung entsteht ja nur weil der Sonsor Masse am Gehäuse hat.
Die Masse am Gehäuse sorgt vor allem für eine ungenaue Messung.
Mit dem AD misst du ja die Spannung zwischen AD und Arduino GND.
Wenn der Arduino seine Masse irgenwo herkriegt, z.B. aus der E-Box im Auto, und der Sensor seine Masse vom Motorblock, dann können da schnell einige 100mVbis zu 3V  potentialunterschied sein, die dir dann dein messergebnis verhauen.

Du brauchst einen Sensor, der potentialfrei ist, also keine Verbindung zum Gehäuse hat.
Eine Abhilfe wäre, einen zweiten AD-Eingang zu nehmen, und die relative Masse am Sensor mitzumessen dann kannst du den Fehler rausrechnen. (der Motorblock kann auch negativ gegenüber dem Arduino sein, du mußt also einen Spannungsteiler von 5V bilden)


...benötige ich doch nur eine Schottky für die Induktiven Spannungen oder?

Für eine Signalspannung (auf mit GND auf Gehäuse) kannst du auf die Supressordioden verzichten. Aber nicht auf den EMV-Kondensator und den Tiefpass!
Also: 22nF auf GND, 10k, 100nF nach GND, 2 Schottky, Arduino.

Wo ich dir die Supressordioden aber dringend empfehle, ist die Spannungsversorgung des Arduino!
KFZ Bordnetze sind recht versaut. da wandern Spannungspulse über +/-100V rum. vor denen solltest du den Arduino schützen.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: turbo91 on Jan 26, 2014, 12:31 pm
Danke, ich habe jetzt ein passenden NTC Sensor gefunden der ein Massekabel hat. Da muss ich die Rechnung von Jurs zwar noch minimal anpassen aber das sollte kein Problem darstellen:-).
Die Spannungsversorgung vom Arduino selber ist schon mit einem DC/DC Spannungsregler und entsprechendem Umfeld schon gerwgelt.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Ratlos on Jan 31, 2014, 06:52 pm
Hallo
habe das mit    jurs    Seiner Formel gamacht.
Es geht echt gut.
Jedoch  habe ich jetzt einen ADG609 zwischen den Sensor um 2x Temperatur und 2xöldruck zu messen
es werden mit den ADG609 falsche werte angezeigt.
Kann man das in der Formel mit einbinden ???????
Die Öldruckformel müste dann ja warscheinlich auch angepast werden    :smiley-red:
Danke für hilfe


VB -------<Vorwiderstand>-----------------ADG609
5V            RV         |        RN                                  |-------------------<VDO 150-Messwiderstand>----- Ground 0V
                              |                                               |-------------------<VDO 150 -Messwiderstand>----- Ground 0V
                              |                                               |-------------------<VDO 0-5 bar-  Druckmess>----- Ground 0V     
                            VA                                             |-------------------<VDO 0-5 bar-  Druckmess>----- Ground 0V
                    Analogeingang
                      am Arduino

Grüße
Ratlos
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Feb 01, 2014, 11:42 am

es werden mit den ADG609 falsche werte angezeigt.


Es ist ja nicht so, dass ich von Multiplexing die grosse Ahnung habe, aber Deine Messschaltung sieht für mich falsch aus.

Ein Multiplexer multiplext keinen Widerstand, sondern das gemessene Signal.

Der Messteil der Schaltung (ohne die Ansteuerung des Multiplexers) sollte wohl eher so aussehen:
Code: [Select]

VB ---+---<Vorwiderstand>--+-----------<VDO 150-Messwiderstand>--+-- GND 0V
      |                    |                                     |
      +---<Vorwiderstand>--|--+--------<VDO 150-Messwiderstand>--+
      |                    |  |                                  |
      +---<Vorwiderstand>--|--|--+-----<VDO 0-5 bar-  Druckmess>-+
      |                    |  |  |                               |
      +---<Vorwiderstand>--|--|--|--+--<VDO 0-5 bar-  Druckmess>-+
                           |  |  |  |
                           |  |  |  |
                           |  |  |  |
                         ###############
                         # Multiplexer #
                         ###############
                                |
                               VA
                     Analogeingang am Arduino



Für nur vier Analogwerte brauchst Du doch eigentlich gar keinen Multiplexer, weil jeder Arduino mindestens sechs Analogeingänge hat?

Und soweit mir bekannt ist, mußt Du beim Multiplexen von Analogeingängen immer den ersten Messwert nach einer Umschaltung verwerfen, also von der Programmlogik her:
- Multiplexer auf anderen Eingang umschalten
- analogRead ==> Messwert verwerfen weil ungenau
- nochmal analogRead ==> Messwert verwenden

Vielleicht kann ja nochmal jemand was dazu schreiben, der vom Analogeingangs-Multiplexing mehr Ahnung hat als Du und ich.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: uwefed on Feb 01, 2014, 12:00 pm
Ein Multiplexer könnte schon auch den Vorwiderstand multiplexen aber nicht der ADG609, da dieser einen bedeutenden Innenwiderstand hat (bis zu 30 Ohm). Bei Sensoren mit Widerstandswerten in der Größe von max einiger 100 Ohm verfälscht der Multiplexer viel. Ist der Multiplexer zwischen Spannungsteiler und Analogeingang geschaltet habend ie 30 Ohm keinen Einfluß auf das Meßergebnis da der Innenwiderstand des Analogeingangse viel größer ist.

grüße Uwe
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Ratlos on Feb 01, 2014, 05:30 pm
Hallo
Danke für die Infos
welcher ist eine ALTERNATIVE zum ADG609 und zum ADG608

Grüße und vielen Dank
Ratlos
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Ratlos on Feb 02, 2014, 09:49 am
Hallo
Danke noch einmal.
Schön das es das internet gibt. UND AUCH MENSCHEN DIE HELFEN

Habe die Schaltung geändert

Grüße
Ratlos
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Andy966 on Mar 16, 2014, 07:08 pm
Hallo zusammen,

muss das hier noch mal ausgraben. Habe den Sketch von "jurs" mal probiert. Ich benutze einen Vorwiderstand von 1K, der besagte NTC Temperatursensor geht bis 150° (laut Aufdruck) hat bei mir einen Grundwiderstand von 1000R bei 25°.
Bei Zimmertemperatur zeigt mir das LCD nun einen Wert von 17.92, als Vergleich habe ich eine analoge Anzeige von Watts Industries, die mir 23° anzeigt.

Wenn ich jedoch den Sensor Wärme zugebe, sinkt der Wert aber.

Der Sketch sieht so nun aus (Habe es nur mit einer LCD Libary ergänzt, statt Ausgabe über den Serial Port):

Quote
#include <LiquidCrystal.h>                                                        // richte die library fuer das LCD ein

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// NTC temperature calculation by "jurs" for German Arduino forum
#define ABSZERO 273.15
#define MAXANALOGREAD 1023.0

float temperature_NTCB(float T0, float R0, float B, float RV, float VA_VB)
// Ermittlung der Temperatur mittels NTC-Widerstand
// Version der Funktion bei gegebener Materialkonstante B
// Erklärung der Parameter:
// T0           : Nenntemperatur des NTC-Widerstands in °C
// R0           : Nennwiderstand des NTC-Sensors in Ohm
// B            : Materialkonstante B
// Vorwiderstand: Vorwiderstand in Ohm 
// VA_VB        : Spannungsverhältnis "Spannung am NTC zu Betriebsspannung"
// Rückgabewert : Temperatur
{
  T0+=ABSZERO;  // umwandeln Celsius in absolute Temperatur
  float RN=RV*VA_VB / (1-VA_VB); // aktueller Widerstand des NTC
  return T0 * B / (B + T0 * log(RN / R0))-ABSZERO;
}


float temperature_NTC(float T0, float R0, float T1, float R1, float RV, float VA_VB)
// Ermittlung der Temperatur mittels NTC-Widerstand
// Version der Funktion bei unbekannter Materialkonstante B
// Erklärung der Parameter:
// T0           : Nenntemperatur des NTC-Widerstands in °C
// R0           : Nennwiderstand des NTC-Sensors in Ohm
// T1           : erhöhte Temperatur des NTC-Widerstands in °C
// R1           : Widerstand des NTC-Sensors bei erhöhter Temperatur in Ohm
// Vorwiderstand: Vorwiderstand in Ohm 
// VA_VB        : Spannungsverhältnis "Spannung am NTC zu Betriebsspannung"
// Rückgabewert : Temperatur
{
  T0+=ABSZERO;  // umwandeln Celsius in absolute Temperatur
  T1+=ABSZERO;  // umwandeln Celsius in absolute Temperatur
  float B= (T0 * T1)/ (T1-T0) * log(R0/R1); // Materialkonstante B
  float RN=RV*VA_VB / (1-VA_VB); // aktueller Widerstand des NTC
  return T0 * B / (B + T0 * log(RN / R0))-ABSZERO;
}


void setup()
{
  lcd.begin(40, 2);                                                               
  lcd.setCursor(0, 0);
}

#define ANALOGPIN A2

void loop()
{
  float T0=60;    // Nenntemperatur des NTC-Widerstands in °C
  float R0=221.2; // Nennwiderstand des NTC-Sensors in Ohm
  float T1=120;   // erhöhte Temperatur des NTC-Widerstands in °C
  float R1=36.5;  // Widerstand des NTC-Sensors bei erhöhter Temperatur in Ohm
  float Vorwiderstand=1000; // Vorwiderstand in Ohm 
  float temp;   
  int aValue=analogRead(ANALOGPIN);
 
  // Berechnen bei unbekannter Materialkonstante
  lcd.setCursor(0, 0);
  temp=temperature_NTC(T0, R0, T1, R1, Vorwiderstand, aValue/MAXANALOGREAD);
  lcd.print("NTC : ");
  lcd.print(temp);
  lcd.println(" C");
  // Berechnen bei bekannter Materialkonstante B=3933;
  temp=temperature_NTCB(T0, R0, 3933, Vorwiderstand, aValue/MAXANALOGREAD);
  lcd.print("NTCB: ");
  lcd.print(temp);
  lcd.println(" C");
  delay(1000);
}
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Mar 16, 2014, 07:37 pm

hat bei mir einen Grundwiderstand von 1000R bei 25°.


Aha.  Also:
  float T0=25;    // Nenntemperatur des NTC-Widerstands in °C
  float R0=1000.0; // Nennwiderstand des NTC-Sensors in Ohm

Und warum steht in dem geposteten Sketch drin:
  float T0=60;    // Nenntemperatur des NTC-Widerstands in °C
  float R0=221.2; // Nennwiderstand des NTC-Sensors in Ohm
???

Diese beiden Konstanten im Sketch passen schon mal ÜBERHAUPT NICHT zu Deinem NTC.

Und wie sind die weiteren Daten laut Datenblatt Deines Sensors?

Du benötigst zusätzlich zu T0 und R0 (die auch im Sketch KORREKT eingetragen sein müssen und nicht nur auf dem NTC aufgedruckt) noch entweder:
- Materialkonstante B
Oder:
- T1, R1 (exakte Temperatur und exakter Widerstand an einem realistischen Arbeitspunkt)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Andy966 on Mar 18, 2014, 12:35 pm
Hallo jurs,

die Materialkonstante B liegt mir leider nicht vor, aber einen 2. Messpunkt habe ich mit einer recht genauen (ich gehe mal davon aus) analogen Temperaturanzeige aus der Gebäudeheiztechnik ermitteln können.

Ein Datenblatt liegt mir auch leider nicht vor, aber habe wie gesagt 2 Messwerte ermitteln können.

Mit den einsetzen von T0, R0, T1, und R1 war ich etwas voreilig, hab jetzt beim 2. lesen die Formel verstanden.  :smiley-roll-blue:
Ist das eine Steinhart-Hart Gleichung?

Meine nun eingefügten Werte:

T0=25: Nenntemperatur des NTC-Widerstands in °C
R0=1000: Nennwiderstand des NTC-Sensors in Ohm
T1=80: erhöhte Temperatur des NTC-Widerstands in °C
R1=150: Widerstand des NTC-Sensors bei erhöhter Temperatur in Ohm

Der Vorwiderstand hat 1K Ohm.

Die Schaltung habe ich so zusammengebaut:

Quote
5V  -- 1000R --+-- Geber == GND
                        |
              Analog-Eingang


Die Anzeige mit 22.20° Zimmertemperatur scheint zu funktionieren, aber beim eintauchen in ein Glas heisses Wasser zum testen - sinkt der Wert - statt zu steigen. Und "natürlich" steigt der Wert, wenn ich den Geber (nur die Geberspitze) in ein kaltes Glas Waser setze.

Was ist falsch? Ich weiss jetzt schon, dass der Fehler zwischen Monitor und Stuhl sitzt  :) aber was habe ich falsch übernommen?
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Mar 18, 2014, 02:21 pm

Meine nun eingefügten Werte:

T0=25: Nenntemperatur des NTC-Widerstands in °C
R0=1000: Nennwiderstand des NTC-Sensors in Ohm
T1=80: erhöhte Temperatur des NTC-Widerstands in °C
R1=150: Widerstand des NTC-Sensors bei erhöhter Temperatur in Ohm


Korrekt.
Als Formel wäre dann die Formel bei unbekannter Materialkonstante B zu verwenden,


Der Vorwiderstand hat 1K Ohm.


Die höchste Meßempfindlichkeit ergibt sich immer in dem Bereich, wenn der NTC und der Vorwiderstand denselben Wert aufweisen. Da Dein NTC bei 25°C denselben Widerstand wie der Vorwiderstand hat, bekommst Du damit ein Thermometer, das im Bereich um 25°C die höchste Messempfindlichkeit hat.


Die Schaltung habe ich so zusammengebaut:

Code: [Select]
5V  -- 1000R --+-- Geber == GND
               |
      Analog-Eingang



Das wäre korrekt.



Die Anzeige mit 22.20° Zimmertemperatur scheint zu funktionieren, aber beim eintauchen in ein Glas heisses Wasser zum testen - sinkt der Wert - statt zu steigen. Und "natürlich" steigt der Wert, wenn ich den Geber (nur die Geberspitze) in ein kaltes Glas Waser setze.

Was ist falsch?


Keine Ahnung, der Code mit den Formeln ist eigentlich von mehreren Leuten bereits getestet worden.
Im Zweifelsfall lasse Dir mal den errechneten Widerstand des NTC ausgeben, indem Du etwas Debug-Code einfügst:
Code: [Select]

  float RN=RV*VA_VB / (1-VA_VB); // aktueller Widerstand des NTC
  Serial.print("RN= ");Serial.println(RN);


Wenn der errechnete Widerstand am NTC bei Erwärmung steigt statt fällt, hast Du vermutlich nicht die angegebene Schaltung, sondern es ist 5V und GND vertauscht, d.h. 5V am NTC und GND am Vorwiderstand? Mal überprüfen!
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: michael_x on Mar 18, 2014, 02:54 pm
Die Formel kann man mit etwas Mühe nachvollziehen:
- ABSZERO ist +273.15 ( positiv in dieser Formel  -> To = 298.15 K )
- B wird eine positive Zahl (ich hab mit deinen Daten ca. 1577 raus)
- Der gemessene AnalogEingang muss bei 25°C  ca. 512 sein , VA_VB = 0.5, da Rv = Rn = 1k
   Wenn der Fühler heisser wird muss der Messwert kleiner werden, VA_VB < 0.5,
   und daher auch der Rechenwert Rn  kleiner.
- Wenn Rn kleiner als Ro wird ( heisser ) ist log(Rn/Ro) negativ.
- Damit ist auch To* log(Rn/Ro) negativ und
    B + To* log(Rn/Ro)   kleiner als  B
    B / ( B + To* log(Rn/Ro)  wird also größer als 1. Das ist der Korrekturfaktor um von To auf das Ergebnis Tx zu kommen
- Tx wird also größer als To ( Wir haben eine höhere Temperatur)


Ich sehe keinen Fehler in jurs' Formel, die du weiter oben gepostet hast.
( Hast du evtl. Klammern wegoptimiert statt copy/paste  ? )
Oder du baust noch mehr Testausgaben ein ...

Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Andy966 on Mar 18, 2014, 03:43 pm


Wenn der errechnete Widerstand am NTC bei Erwärmung steigt statt fällt, hast Du vermutlich nicht die angegebene Schaltung, sondern es ist 5V und GND vertauscht, d.h. 5V am NTC und GND am Vorwiderstand? Mal überprüfen!



Wollte mich schon früher melden, aber Bingo - genau das war es.  :~ Habe die Schaltung fälschlicherweise so aufgebaut, dass ich die stabilisierte 5V durch den Temperaturfühler gehen lasse, und zwischen dem A/D Wandler Analogpin 2 den 1k Widerstand gelegt habe.
Habe mich schon gewundert, dass ich später im Betrieb (Öl Temperatur messen in einem PKW) den kleinen Messstrom durch den Motorblock schicken müsse - wollte ich vermeiden, ich suchte schon nach Massefreien Temperatursensoren...

Schnell den Lötkolben und die Absaugpumpe geschnappt und umgebaut. Nun funktioniert der Aufbau.
Allerdings nur als sehr vereinfachter Sketch.

Wenn ich die Funktionen nun in mein bestehenden Sketch einfüge (Erfassung anderer Werte mit den Analog-Eingängen),
"zappelt" der Wert zwischen dem richtigen und dem 3 fachen Wert. Löse ich die elektrische Verbindung zum Temp-Fühler, sprint der Wert auch nicht zum absoluten Nullpunkt -273.15°.

Ein elektrischen Fehler (wie oben dummerweise) habe ich direkt ausgeschlossen, da ich im vereinfachten Temperaturmess-Sketch eine anderen Analogeingang parallel anspreche und ausgebe (Wert von 0 - 1023) auf Analog Pin 1. Dort zappelt der Temperaturwert nicht.

Muss an meinem Sketch liegen, mit #define und der Struktur im Sketch komme ich noch nicht so gut klar.
Mag sich jemand mal meinen 5.908 Byte / 80 Zeilen grossen Sketch anschauen?
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Andy966 on Mar 19, 2014, 11:01 am
Hier mein gebastelter Sketch:

Code: [Select]
#include <LiquidCrystal.h>                                                        // richte die library fuer das LCD ein

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);                                            // initialisiere die library an den digitalen interface pins

// VDO pressure sensor code by 'jurs' for German Arduino Forum

float oeldruck_VDO_10bar(float RV0, float VA_VB0)

// Ermittlung des Drucks mit einem VDO Öldruckgeber 10bar
// 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
//       http://forum.arduino.cc/index.php?topic=152024

{
  float a = 8.37e-8;
  float b = 0.000054058;
  float c = 0.0439893708;
  float d = -0.4453831665;
  float RN0 = RV0 * VA_VB0 / (1-VA_VB0);                                                 // aktueller Widerstand des VDO Oeldruckgeber
  float oeldruck = a * RN0 * RN0 * RN0 + b * RN0 * RN0 + c * RN0 + d;
  if (oeldruck<0) return 0;                                                      // Begrenzung nach unten, keine negativen Werte extrapolieren
  else if (oeldruck>11.1) return 11.1;                                           // Willkürlich gewählte Begrenzung nach oben
  else return(oeldruck);
}

// NTC temperature calculation by "jurs" for German Arduino forum

#define ABSZERO 273.15
#define MAXANALOGREAD 1023.0

float temperature_NTC(float T0, float R0, float T1, float R1, float RV1, float VA_VB1)
// Ermittlung der Temperatur mittels NTC-Widerstand
// Version der Funktion bei unbekannter Materialkonstante B
// Erklärung der Parameter:
// T0           : Nenntemperatur des NTC-Widerstands in °C
// R0           : Nennwiderstand des NTC-Sensors in Ohm
// T1           : erhöhte Temperatur des NTC-Widerstands in °C
// R1           : Widerstand des NTC-Sensors bei erhöhter Temperatur in Ohm
// Vorwiderstand: Vorwiderstand in Ohm 
// VA_VB        : Spannungsverhältnis "Spannung am NTC zu Betriebsspannung"
// Rückgabewert : Temperatur

{
  T0+=ABSZERO;  // umwandeln Celsius in absolute Temperatur
  T1+=ABSZERO;  // umwandeln Celsius in absolute Temperatur
  float B = (T0 * T1)/ (T1-T0) * log(R0/R1); // Materialkonstante B
  float RN = RV1 * VA_VB1 / (1-VA_VB1); // aktueller Widerstand des NTC
  return T0 * B / (B + T0 * log(RN / R0))-ABSZERO;
}

void setup() {                                                                    // das Setup / die Initialisierung wird erst bei Reset neu geladen
  lcd.begin(40, 2);                                                               // LCD-Setup (40 Stellen in 2 Reihen)
  lcd.setCursor(0, 0);
  lcd.write("\357ldruck:");                                                       // druckt an dieser Stelle (Cursor) "OelD: Freizeichen"
  lcd.setCursor(0, 9);
  lcd.write("Temperatur:      C\337");  //
}

void loop() {
 
  float oeldruck;
  float vorWiderstand = 150;                                                     // Hier Vorwiderstand in Ohm angeben!
  int analogPinA1 = A1;                                                          // Analog-Pin fuer Oeldruck
  int MesswertOeldruckSpannung = analogRead (analogPinA1);                       // Hier wird gemessen!
  oeldruck = oeldruck_VDO_10bar(vorWiderstand, MesswertOeldruckSpannung/1023.0); // Hier wird gerechnet!
  lcd.setCursor(9, 0);                                                           // setzt Cursor an Stelle 4, Reihe 0
  lcd.print(oeldruck,2);                                                         // LCD druckt den Wert mit 2. Kommastelle (oeldruck)
   
  float T0=25;                                                                   // Nenntemperatur des NTC-Widerstands in °C
  float R0=1000;                                                                 // Nennwiderstand des NTC-Sensors in Ohm
  float T1=80;                                                                   // erhöhte Temperatur des NTC-Widerstands in °C
  float R1=150;                                                                  // Widerstand des NTC-Sensors bei erhöhter Temperatur in Ohm
  float Vorwiderstand = 1000;                                                    // Vorwiderstand in Ohm 
  float temp;   
  int analogPinA2 = A2;
  int MesswertTemperaturSpannung = analogRead (analogPinA2);
  int aValue=analogRead(MesswertTemperaturSpannung); 
  temp = temperature_NTC(T0, R0, T1, R1, Vorwiderstand, aValue/MAXANALOGREAD);
  lcd.setCursor(12, 1);
  lcd.print(temp);
       
  delay(300);                                                                    // 300ms warten (quasie die Wiederholungsrate LCD warte)
}
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Mar 19, 2014, 11:21 am

  lcd.setCursor(0, 9);


Cursor auf LCD-Zeilenindex 9 setzen würde ein 10-zeiliges LCD erfordern.
Was da wohl passiert, wenn man nur ein zweizeiliges LCD hat und den Cursor außerhalb des Gültigkeitsbereichs setzen möchte?

Wenn Du herausbekommen möchtest, ob das Problem mit der LCD-Anzeige oder mit der Messung zu tun hat, initialisiere doch mal Serial und lasse Dir die beiden Werte für Druck und Temperatur parallel auch über Serial ausgeben.

Dann siehst Du, ob das Problem schon bei den Werten auftritt, oder erst dann, wenn die Werte auf dem LCD angezeigt werden sollen.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Andy966 on Mar 19, 2014, 12:07 pm
Hallo jurs,

Sorry, habe es nicht erwähnt: Ich verwende ein 2 Zeilen Display mit ingsesamt 40 Zeichen, die Textausgabe ist soweit auch kein Problem, aber die Temperaturanzeige ist unstabil. Sie springt zwischen einem realistischen Wert und dem Wert 136. Auch wenn dem NTC Wärme oder Kälte zugeführt wird, springt die Anzeige auf 136-145. Auffälligerweise springt die Anzeige auch zusätzlich, wenn der Widerstand des NTC sich verändert. Dann bleibt der 2. springende Wert auch bei 136-145. Ich habe irgendwo im Sketch ein mathematischen Fehler, nur welchen?

EDIT: Habe den Ratschlag befolgt, und über Serial.printIn den Wert ausgegeben: Er gleicht mit dem Wert vom LCD.  :smiley-roll:
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Mar 19, 2014, 12:27 pm

EDIT: Habe den Ratschlag befolgt, und über Serial.printIn den Wert ausgegeben: Er gleicht mit dem Wert vom LCD.  :smiley-roll:


Ah ja, dann liegt's am Wert.

Kurz mal geschaut, das hier ist natürlich Nonstop Nonsens:
Code: [Select]

int analogPinA2 = A2;
  int MesswertTemperaturSpannung = analogRead (analogPinA2);
  int aValue=analogRead(MesswertTemperaturSpannung); 


Die Funktion analogRead braucht einen Analog-Pin als Parameter und nicht einen anderen analogRead-Messwert!

Ersetze den geposteten Codeabschnitt mal durch
Code: [Select]

  int aValue=analogRead(A2); 


Die Variable "MesswertTemperaturSpannung" wird in Deinem Sketch offenbar überhaupt nicht benötigt.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Andy966 on Mar 19, 2014, 12:56 pm
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  :smiley-roll-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:

(http://abload.de/img/1456517_8271398273019h3jfw.jpg)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Mar 19, 2014, 02:25 pm

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):

Code: [Select]

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.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Andy966 on Mar 24, 2014, 09:59 am
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!
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: neo423 on Mar 30, 2014, 10:01 am
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é
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: RalfW on Nov 10, 2015, 07:59 pm
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 :-)
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?


Code: [Select]
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        
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Nov 10, 2015, 09:52 pm
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
Code: [Select]

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.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: RalfW on Nov 12, 2015, 07:26 am
Vielen Dank!  :)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Suppeschluerfer on Aug 28, 2016, 05:49 pm
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 :)

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
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Achilles84 on Jan 12, 2017, 09:02 pm
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
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: michael_x on Jan 13, 2017, 09:30 am
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 (https://de.wikipedia.org/wiki/Interpolation_(Mathematik)#Lineare_Interpolation).
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Achilles84 on Jan 13, 2017, 05:26 pm
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
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: michael_x on Jan 13, 2017, 06:24 pm
Du hast Recht mit den 2 Punkten für einen NTC:
http://forum.arduino.cc/index.php?topic=155733.msg1170722#msg1170722 (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.  ;)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: jurs on Jan 13, 2017, 06:49 pm
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 (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:
https://de.wikipedia.org/wiki/Wheatstonesche_Messbr%C3%BCcke (https://de.wikipedia.org/wiki/Wheatstonesche_Messbr%C3%BCcke)

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).
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Achilles84 on Jan 14, 2017, 09:46 pm
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
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: cb1000r on Aug 03, 2017, 12:48 pm
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
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: combie on Aug 03, 2017, 12:56 pm
Natürlich handelst du dir damit Messfehler ein....

Deswegen gibt es auch einige 2 Polige Sensoren.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: cb1000r on Aug 03, 2017, 04:05 pm
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.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: meister_q on Aug 03, 2017, 06:37 pm
Ich habe für meine CBF600 einen 2 poligen NTC von Koso (M12x1,5). Ist ein 10k NTC
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: cb1000r on Aug 04, 2017, 09:14 am
Danke, dann werde ich für meine Honda auch mal einen ordern!
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: meister_q on Aug 04, 2017, 12:28 pm
Mach das. Bestell das Kabel von dem Sensor am besten gleich mit. Kostet ja nicht viel.

Einziger nachteil des Sensors: Die Farbe.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: cb1000r on Aug 08, 2017, 12:53 pm
Servus, ich habe jetzt diesen wunderschönen Sensor angeschlossen, Code angepasst...läuft alles wie es soll. Dafür ein Großes DANKE an alle!

Allerdings ist mein Display (SSD1306 mit i2C) wenn ich das längere Kabel ca. 2m anschließe von Motorrad Batteriefach nach Tacho funktionslos und stellt Random nur noch einzelne Pixel da.

Kann es sein das das Kabel einfach zu lang ist?
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: HotSystems on Aug 08, 2017, 01:38 pm
...
Allerdings ist mein Display (SSD1306 mit i2C) wenn ich das längere Kabel ca. 2m anschließe von Motorrad Batteriefach nach Tacho funktionslos und stellt Random nur noch einzelne Pixel da.

Kann es sein das das Kabel einfach zu lang ist?
Ja, def. ist das zu lang.
I2C ist für kurze, geräteinterne Verbindungen gedacht.

Du kannst zu Verlängerung Bus-Extender (P82B715) beidseitig verwenden und das Kabel sollte abgeschirmt (CAT6) sein. Und die I2C-Pullup-Widerstände nicht vergessen.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: SkobyMobil on Aug 08, 2017, 02:37 pm
Hallo,
"Kann es sein das das Kabel einfach zu lang ist?"

So pauschal kann man das nicht sagen... Ich habe hier weit längere I2C-Leitungen die ohne Probleme
funktionieren.
Kann mir aber gut vorstellen, das es der ElektroSmog Deiner Maschine ist, der hier Problem bereitet.
Einfach mal Uno, Display und Fühler se­pa­rat betreiben.
Gruß und Spaß
Andreas
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: cb1000r on Aug 08, 2017, 03:48 pm
Quote
Du kannst zu Verlängerung Bus-Extender (P82B715) beidseitig verwenden und das Kabel sollte abgeschirmt (CAT6) sein. Und die I2C-Pullup-Widerstände nicht vergessen
Danke, ich habe jetzt ein Bausatz geordert 2mal natürlich als Sender und Empfänger: malschauen ob es dann klappt.

http://www.horter.de/i2c/i2c-extender/i2c_extender_1.html

Quote
Kann mir aber gut vorstellen, das es der ElektroSmog Deiner Maschine ist, der hier Problem bereitet.
Einfach mal Uno, Display und Fühler se­pa­rat betreiben.
Ich hatte den ganzen Kram mit langen Kabeln auf dem Schreibtisch getestet, zum Glück noch nicht am Motorrad.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: HotSystems on Aug 09, 2017, 08:15 am
Danke, ich habe jetzt ein Bausatz geordert 2mal natürlich als Sender und Empfänger: malschauen ob es dann klappt.

Ich hatte den ganzen Kram mit langen Kabeln auf dem Schreibtisch getestet, zum Glück noch nicht am Motorrad.
Was die Kabellänge betrifft, wird das klappen.
Bei den Störungen am Motor musst du evtl. noch weitere Vorkehrungen treffen.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: cb1000r on Aug 09, 2017, 10:44 am
Noch ein Ansatz: Ich habe auch schon etwas über "Halbierung der Taktfrequenz = Verdopplung der Kabellänge" gelesen. Ist da was dran? Kann jemand aus Erfahrung berichten.
Muss ich Änderungen nur im Sketch definieren oder auch in der Lib?

Sorry für die vielen Fragen, aber bin auch ein blutiger Anfänger mit gefährlichem Halbwissen. :-)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: HotSystems on Aug 09, 2017, 11:06 am
Noch ein Ansatz: Ich habe auch schon etwas über "Halbierung der Taktfrequenz = Verdopplung der Kabellänge" gelesen. Ist da was dran? Kann jemand aus Erfahrung berichten.
Muss ich Änderungen nur im Sketch definieren oder auch in der Lib?

Sorry für die vielen Fragen, aber bin auch ein blutiger Anfänger mit gefährlichem Halbwissen. :-)
Ich selbst habe es bisher noch nicht gebraucht, aber hier hast du eine Doku (http://www.darc.de/fileadmin/_migrated/content_uploads/Wire_Lib_02.pdf), in der du es nachlesen kannst.

Oder du änderst es in dem Aufruf der Wire.h:
Code: [Select]
Wire.begin();
Wire.setClock(400000L);


Habe ich selbst auch noch nicht getestet.
Allerdings brauchst du bei der von dir angestrebten Länge noch keine Änderung.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: gregorss on Aug 09, 2017, 11:23 am
Sorry für die vielen Fragen, aber bin auch ein blutiger Anfänger mit gefährlichem Halbwissen. :-)
Gerade dann solltest Du von Spielen wie dem Herumfummeln in Bibliotheken oder dem Einsatz exotischer Taktung absehen. Wenn Du Dein Vorhaben nicht mit dem Einsatz von 08/15-I²C umsetzen kannst, nimm kein I²C.

Probier's doch einfach mal mit 08/15-I²C. Oder willst Du die perfekte, an Deine Gegebenheiten angepasste Lösung? Schon bevor Du an irgendwas ernsthaft herumgeschraubt hast?!

Gruß

Gregor
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: HotSystems on Aug 09, 2017, 11:26 am
Gerade dann solltest Du von Spielen wie dem Herumfummeln in Bibliotheken oder dem Einsatz exotischer Taktung absehen. Wenn Du Dein Vorhaben nicht mit dem Einsatz von 08/15-I²C umsetzen kannst, nimm kein I²C.
Das muss er doch gar nicht.
Und so lernt er was dazu.
Und wenn es Probleme gibt, hat er ja dich...äh uns. ;)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: cb1000r on Aug 10, 2017, 08:36 am
Danke Leute!

nach langem probieren mit Wire.h und twi.c  Ich habe in der Lib "Adafruit_SSD1306.cpp"
   
// save I2C bitrate
#ifdef TWBR
  uint8_t twbrbackup = TWBR;
  //TWBR = 12; // upgrade to 400KHz!
  TWBR = 72;   // 100KHz
#endif

und es geht! Ihr seid super dann brauche ich den Extender garnicht. Hab noch CAT7 Kabel von der Hausvernetzung übrig das nehme ich dann auch fürs Motorrad.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: HotSystems on Aug 10, 2017, 09:09 am
Prima, wenn es jetzt funktioniert.
Danke für die Rückmeldung.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: cb1000r on Aug 29, 2017, 09:41 pm
So Miteinander,

funktioniert alles super bis ich den Motor anlasse...siehe Video (https://drive.google.com/open?id=0B3DCO5cxizIIUjZ4QlNoVTJ6aDA)

Als letzten Schritt werde ich die Kunstoffbox in Alufolie einpacken und mit auf Masse legen.
Das Cat7 Kabel ist schon an beiden Enden auf Masse gelegt. Bild von der Kunststoffbox (https://drive.google.com/open?id=0B3DCO5cxizIIS3B4MEp6eGFLY0E)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: combie on Aug 29, 2017, 10:19 pm
Quote
Als letzten Schritt werde ich die Kunstoffbox in Alufolie einpacken und mit auf Masse legen.
Das ist nicht das Problem, und damit auch nicht der letzte Schritt.

Wie hast du deine Stromversorgung aufgebaut?


----
SPI, oder I2C  Display?
Die Kabel sind sehr lang.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: cb1000r on Aug 29, 2017, 10:27 pm
Wie hast du deine Stromversorgung aufgebaut?
----
SPI, oder I2C  Display?
Die Kabel sind sehr lang.
Ich greife mir 12V von der Kennzeichenbeleuchtung ab und gehe mit einem DC/DC mit 5V auf den Arduino . Mit dem Hintergedanken das ich keine Überspannungen auf den Arduino bekomme. Das ich keine extra Schutzbeschaltung aufbauen muss.

Ich verwende ein I²C Display das Problem mit dem zu langem Kabel habe ich ein paar Posts vorher gelöst. Denke ich. Taktfrequenz verringert.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: cb1000r on Aug 31, 2017, 06:51 pm
Das ist nicht das Problem, und damit auch nicht der letzte Schritt.
Stimmt, die Alufolie hat nicht geholfen...das wusstest Du aber schon :o

Vielleicht kannst Du mir kurz deine Meinung schildern. Du weißt scheinbar mehr als ich.

Oder der Themaeröffner kann was dazu sagen?
Problem gelöst?
Oder Projekt abgebrochen?

Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: combie on Aug 31, 2017, 07:22 pm
Quote
...das wusstest Du aber schon :o
Ja!
Meine Glaskugel hat mir das eingeflüstert!
(Jahrzehnte lange KFZ Erfahrung und selber XJ900 Treiber)


Weiterhin:
1. Dein Bussystem
2. Stromversorgung
3. Störungen über Sensorleitung


Ich halte I2C nicht für verwendbar. Zumindest war es nie nicht für solche Einsätze gedacht.
Nicht ohne Grund werden im KFZ Bereich differenzelle Bussysteme verwendet.
z.B. CAN oder/und LIN


Vorschlag:
Mit einem Oszilloskop prüfen, WO es überhaupt klemmt. Erst dann kann man konkrete Abhilfe schaffen. Alles andere ist stochern im Nebel.



Ein Besserung könntest du evtl erzielen:
1. Wenn du zwei P82B715 I2C Bus Extender verwendest.
2. Auf CAN umstellt
3. Einen Händilader als DC/DC Wandler einsetzt.




Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: cb1000r on Oct 22, 2017, 05:31 pm
Servus,
ich hatte mal wieder Zeit um weiter zu forschen. Das Problem liegt in der Stromversorgung. Wenn ich die Stromversorgung von extern bereit stelle klappt alles auch im laufenden Betrieb. Sobald ich auf 12V oder 5V DC/DC von dem Moped gehe habe ich Störungen. Kann mir jemand eine Lösung für eine saubere Stromversorgung empfehlen?

Beste Grüße
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: meister_q on Oct 22, 2017, 05:49 pm
Ich hatte es genau anders rum. DCDC Wandler an 12V Batterie auf 5V für den Arduino klappte. Externe Powerbank als Stromversorgung, klappte nicht.

Nutz geschirmte Leitungen und mach die Wege möglichst kurz.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: HotSystems on Oct 22, 2017, 05:51 pm
Alles in ein Metallgehäuse bauen und davor ein Entstörfilter setzen.
Z.B. Entstörfilter (https://www.voelkner.de/products/122904/Sinuslive-Cinch-Entstoerfilter-EF-20.html?ref=43&products_model=Y45339&gclid=EAIaIQobChMIk5GkosqE1wIV0MmyCh3ghwvyEAQYASABEgLaXvD_BwE)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: y4y0 on Nov 23, 2017, 09:06 pm
Hallo zusammen,

ich muss dieses Thema leider nochmal aktivieren. Ich habe einen unbekannten NTC und möchte gerne mit diesem eine Temperatur messen.

NTC:
ohm temp
1612 20
654 42
358 60
187 80
110 100

Ich habe bei einer Versorgungsspannung (Arduino & Messschaltung) von 6V einen Temperaturwert von 13°C, bei 3,86V einen Wert von 29°C. Der aktuelle Widerstand beträgt zu diesem Zeitpunkt 1454 Ohm.

Ich habe es so verstanden, dass aufgrund des Spannungsverhältnisses die Versorgungsspannung nicht berücksichtigt werden muss.

Was mache ich falsch ?


Vielen Dank im Voraus !!


Folgender Code wird verwendet:

Code: [Select]
/ NTC temperature calculation by "jurs" for German Arduino forum
#define ABSZERO 273.15
#define MAXANALOGREAD 1023.0

float temperature_NTCB(float T0, float R0, float B, float RV, float VA_VB)
// Ermittlung der Temperatur mittels NTC-Widerstand
// Version der Funktion bei gegebener Materialkonstante B
// Erklärung der Parameter:
// T0           : Nenntemperatur des NTC-Widerstands in °C
// R0           : Nennwiderstand des NTC-Sensors in Ohm
// B            : Materialkonstante B
// Vorwiderstand: Vorwiderstand in Ohm
// VA_VB        : Spannungsverhältnis "Spannung am NTC zu Betriebsspannung"
// Rückgabewert : Temperatur
{
  T0 += ABSZERO; // umwandeln Celsius in absolute Temperatur
  float RN = RV * VA_VB / (1 - VA_VB); // aktueller Widerstand des NTC
  return T0 * B / (B + T0 * log(RN / R0)) - ABSZERO;
}


float temperature_NTC(float T0, float R0, float T1, float R1, float RV, float VA_VB)
// Ermittlung der Temperatur mittels NTC-Widerstand
// Version der Funktion bei unbekannter Materialkonstante B
// Erklärung der Parameter:
// T0           : Nenntemperatur des NTC-Widerstands in °C
// R0           : Nennwiderstand des NTC-Sensors in Ohm
// T1           : erhöhte Temperatur des NTC-Widerstands in °C
// R1           : Widerstand des NTC-Sensors bei erhöhter Temperatur in Ohm
// Vorwiderstand: Vorwiderstand in Ohm
// VA_VB        : Spannungsverhältnis "Spannung am NTC zu Betriebsspannung"
// Rückgabewert : Temperatur
{
  T0 += ABSZERO; // umwandeln Celsius in absolute Temperatur
  T1 += ABSZERO; // umwandeln Celsius in absolute Temperatur
  float B = (T0 * T1) / (T1 - T0) * log(R0 / R1); // Materialkonstante B
  float RN = RV * VA_VB / (1 - VA_VB); // aktueller Widerstand des NTC
  return T0 * B / (B + T0 * log(RN / R0)) - ABSZERO;
}


void setup()
{
  Serial.begin(9600);

}

#define ANALOGPIN A2

void oiltemp()
{
  float T0 = 20;  // Nenntemperatur des NTC-Widerstands in °C
  float R0 = 1612; // Nennwiderstand des NTC-Sensors in Ohm
  float T1 = 42; // erhöhte Temperatur des NTC-Widerstands in °C
  float R1 = 654; // Widerstand des NTC-Sensors bei erhöhter Temperatur in Ohm
  float Vorwiderstand = 1500; // Vorwiderstand in Ohm
  float temp;
  int aValue = analogRead(ANALOGPIN);

  // Berechnen bei unbekannter Materialkonstante
  temp = temperature_NTC(T0, R0, T1, R1, Vorwiderstand, aValue / MAXANALOGREAD);
  Serial.print("NTC : "); Serial.print(temp); Serial.println(" C");
  // Berechnen bei bekannter Materialkonstante B=3933;
  temp = temperature_NTCB(T0, R0, 3788, Vorwiderstand, aValue / MAXANALOGREAD);
  Serial.print("NTCB: "); Serial.print(temp); Serial.println(" C");
}

void loop() {
  
  oiltemp();

  delay(1000);

}
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: HotSystems on Nov 23, 2017, 09:23 pm
Wozu kaperst du einen Thread, der ein anderes Thema bearbeitet.

Zur besseren Übersicht solltest du einen eigenen Thread aufmachen.
Da wird dann nichts vermischt.

Und setze bitte im neuen Thread in Code-Tags, damit wird dieser für alle besser lesbar.

Unklar ist die Betriebsspannung von 6 Volt.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: y4y0 on Nov 23, 2017, 09:34 pm
Mein vorhaben basiert auf diesem Thema + Mein Code ist bis auf ein paar variablen identisch.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: HotSystems on Nov 23, 2017, 09:41 pm
Sehe ich nicht, für mich wird das nur unübersichtlicher.
Aber dennoch darfst du Fragen beantworten.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: y4y0 on Nov 24, 2017, 09:20 am
Die 6V stammen aus einem Spannungsregler, die 3,86V kommen aus einem USB-Hub. Die Versorgungsspannung geht in VIN und GND des Arduino Uno und die Messschaltung.

Aufbau Spannungsteiler:


6V  -- R1500 --+-- Geber == GND
                            |
            Analog-Eingang (A2)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Tommy56 on Nov 24, 2017, 12:10 pm
Welcher USB-Hub liefert 3,86 V?

Gruß Tommy
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: y4y0 on Nov 24, 2017, 12:30 pm
Welcher USB-Hub liefert 3,86 V?

Gruß Tommy
Ein recht simples ohne dediziertes Netzteil, es hängen dort auch zu viele Verbrauche dran. Diese zwei Werte (6V+3,68V) sollten nur für Vergleichszwecke dienen.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Tommy56 on Nov 24, 2017, 03:08 pm
Das wird für 5V-Schaltungen aber schon ganz schön eng. Da brauchst Du Dich über Fehler nicht zu wundern.

Gruß Tommy
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: y4y0 on Nov 24, 2017, 03:17 pm
Genau aus diesem Grund, habe ich mithilfe des Spannungsreglers 6V "organisiert" um eine Unterversorgung auszuschließen.

DENNOCH habe ich das Problem, dass bei keiner der beiden angelegten Spannungen ein realistisches Ergebnis geliefert wird.

Dann schließen wir das Ergebnis bei 3,86V einfach aus und betrachten dieses nicht mehr. Wieso ist dann bei 6V die Temperatur falsch ?
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: DerLehmi on Nov 24, 2017, 04:15 pm
Was mir direkt auffällt:
im Code steht:
"// VA_VB        : Spannungsverhältnis "Spannung am NTC zu Betriebsspannung""
-->Der Autor dieses Codes hat dafür "aValue / MAXANALOGREAD" nehmen können, weil der Spannungswandler direkt mit dem 5V-Pin des Arduinos versorgt wurde, und der Arduino auch mit diesen 5V vergleicht. Bei dir geht das so nicht, Du nutzt 6V und nicht die Spannung der Boardlogik... (MAXANALOGREAD ist hier 1023 und bezieht sich auf 5V Boardlogik, die maximal am Analogeingang anliegen dürfen)
Also hast Du einmal den Wert der gemessenen Spannung, bezogen auf 5V (oder was für einen Controller nutzt Du?), und einmal die Versorgungsspannung, welche bei Dir aber nicht der Boardlogik entspricht.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: y4y0 on Nov 24, 2017, 11:02 pm
@DerLehmi

Ich danke dir ! das ist wohl mein Fehler.

Jetzt muss ich nur mal schauen, wie ich das ganze mit 6 oder mehr Volt betreiben kann.

Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: DerLehmi on Nov 24, 2017, 11:28 pm
Quote
Jetzt muss ich nur mal schauen, wie ich das ganze mit 6 oder mehr Volt betreiben kann.
-->Na ganz einfach: indem Du ihm VA_VB gibst, also das Verhältnis der Spannungen.
Dazu die Betriebsspannung vorher festlegen, im Programm dann die Spannung am Analogpin berechnen und darauf die Temperaturberechnung durchführen (statt "aValue / MAXANALOGREAD" übergibst Du dann sowas wie berechneteSpannung / Betriebsspannung)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: y4y0 on Nov 24, 2017, 11:55 pm
Dann müsste ich aber doch vorher den Spannungsteiler dahingehend anpassen, dass bei z.B 12V Betriebsspannung nur maximal 5V am AnalogPin anliegen dürfen, oder?
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: DerLehmi on Nov 25, 2017, 12:04 am
Quote
Dann müsste ich aber doch vorher den Spannungsteiler dahingehend anpassen, dass bei z.B 12V Betriebsspannung nur maximal 5V am AnalogPin anliegen dürfen, oder?
-->Sowieso, IMMER! Sonst kann es Dir den Controller zerschießen...
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: y4y0 on Nov 25, 2017, 12:28 am
Könnte der Spannungsteiler dann so aussehen ?

12V  -- R2300 --+-- Geber(R1612 bei 20°C) == GND
                             |
                             |------Z-Diode------ == GND
           Analog-Eingang (A2)

Die Z-Diode würde dabei als Spannungsbegrenzung für den Analog-Eingang dienen.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: DerLehmi on Nov 27, 2017, 09:18 pm
Quote
Könnte der Spannungsteiler dann so aussehen ?
--> Gute Frage, ich kenn ja nicht dessen Kurve und das Anwendungsgebiet.
Um das zu prüfen, müsstest schauen, was denn die kälteste Temperatur wäre, was für einen Widerstand der NTC dabei aufweist, und was für eine Spannung dann am Pin anliegt. Wie gesagt: nicht höher als 5V (wenn Dein Controller mit 5V arbeitet)
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: SoeKoe on May 25, 2018, 07:46 pm
Hey,

ich grabe den Tread nochmal aus:

Ich habe ebenfalls vor, einen VDO Öltemperatur-Sensor mit meinem Arduino auszulesen und über ein IC2 LCD auszugeben.

Ich habe den gleichen wie der den Jurs in seinem Sketch angenommen hat.

Ich hab den gleichen Sketch verwendet den Jurs hier gepostet hat.

Leider zeigt mir mein Display immer ca- 9Grad Minus an, obwohl ich Raumtemperatur habe.

Ich bin leider ziemlicher Anfänger was Elektronik betrifft, und weiß nicht wo mein Fehler ist.

Hier der Sketch:
Code: [Select]
#include <Wire.h>
#include<LiquidCrystal_I2C.h>                                                       // richte die library fuer das LCD ein

LiquidCrystal_I2C lcd(0x3f, 16, 2);

// NTC temperature calculation by "jurs" for German Arduino forum
#define ABSZERO 273.15
#define MAXANALOGREAD 1023.0

float temperature_NTCB(float T0, float R0, float B, float RV, float VA_VB)
// Ermittlung der Temperatur mittels NTC-Widerstand
// Version der Funktion bei gegebener Materialkonstante B
// Erklärung der Parameter:
// T0           : Nenntemperatur des NTC-Widerstands in °C
// R0           : Nennwiderstand des NTC-Sensors in Ohm
// B            : Materialkonstante B
// Vorwiderstand: Vorwiderstand in Ohm
// VA_VB        : Spannungsverhältnis "Spannung am NTC zu Betriebsspannung"
// Rückgabewert : Temperatur
{
  T0+=ABSZERO;  // umwandeln Celsius in absolute Temperatur
  float RN=RV*VA_VB / (1-VA_VB); // aktueller Widerstand des NTC
  return T0 * B / (B + T0 * log(RN / R0))-ABSZERO;
}


float temperature_NTC(float T0, float R0, float T1, float R1, float RV, float VA_VB)
// Ermittlung der Temperatur mittels NTC-Widerstand
// Version der Funktion bei unbekannter Materialkonstante B
// Erklärung der Parameter:
// T0           : Nenntemperatur des NTC-Widerstands in °C
// R0           : Nennwiderstand des NTC-Sensors in Ohm
// T1           : erhöhte Temperatur des NTC-Widerstands in °C
// R1           : Widerstand des NTC-Sensors bei erhöhter Temperatur in Ohm
// Vorwiderstand: Vorwiderstand in Ohm
// VA_VB        : Spannungsverhältnis "Spannung am NTC zu Betriebsspannung"
// Rückgabewert : Temperatur
{
  T0+=ABSZERO;  // umwandeln Celsius in absolute Temperatur
  T1+=ABSZERO;  // umwandeln Celsius in absolute Temperatur
  float B= (T0 * T1)/ (T1-T0) * log(R0/R1); // Materialkonstante B
  float RN=RV*VA_VB / (1-VA_VB); // aktueller Widerstand des NTC
  return T0 * B / (B + T0 * log(RN / R0))-ABSZERO;
}


void setup()
{
  lcd.begin();                                                              
 
}

#define ANALOGPIN A2

void loop()
{
  float T0=60;    // Nenntemperatur des NTC-Widerstands in °C
  float R0=221.2; // Nennwiderstand des NTC-Sensors in Ohm
  float T1=120;   // erhöhte Temperatur des NTC-Widerstands in °C
  float R1=36.5;  // Widerstand des NTC-Sensors bei erhöhter Temperatur in Ohm
  float Vorwiderstand=1000; // Vorwiderstand in Ohm
  float temp;  
  int aValue=analogRead(ANALOGPIN);
 

  // Berechnen bei bekannter Materialkonstante B=3933;
  lcd.setCursor(0, 1);
  temp=temperature_NTCB(T0, R0, 3933, Vorwiderstand, aValue/MAXANALOGREAD);
  lcd.print("Oiltemp: ");
  lcd.print(temp);
  lcd.println(" C");
  lcd.setCursor(2,0);
  lcd.print("BMW E30 318IS");
  delay(1000);
}


Und hier die Schaltung:
(http://<a target=)(http://fs1.directupload.net/images/180525/gqaqrdhv.jpg)">
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: DerLehmi on May 26, 2018, 12:15 pm
Quote
Ich hab den gleichen Sketch verwendet den Jurs hier gepostet hat.
-->Und Du hast wirklich genau den Gleichen NTC? Und Vorwiderstand? Zumindest sind die Koeffizienten ebenfalls die gleichen wie im Beispielsketch von Jurs...
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: SoeKoe on Jun 01, 2018, 02:22 pm
Hallo,

sorry dass ich mich jetzt erst melde.

Ich habe den Fehler gefunden.
habe mich beim Widerstand vertan, und nun läuft das ganze wie gewollt.

vielen Dank
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: postmaster-ino on Jun 01, 2018, 08:11 pm
Hi

Besser spät, als nie - Danke für die Rückmeldung :)

MfG
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Bleeker on Dec 20, 2018, 11:19 am
Hallo,
ich habe mal versucht anhand der info auf Seite 2 in diesem Thread die Funktion für einen Bosch NTC vom Typ 0280130026 zu erzeugen.
Aber irgendwie haut das bei mir nicht hin.
Habe das ganze mal in ein Excel File gepackt und die Formeln hinterlegt, könnte sich das vielleicht jemand von euch anschauen?

Im Anhang findet ihr das Datenblatt und das Excel File.

Besten Dank.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: DerMechaniker84 on Dec 29, 2018, 07:01 pm
Hallo,
gerne möchte ich mich bei der thematik auch einklinken,
da ich auch ein solches Projekt verfolge.
Es stellen sich dabei immer zuerst die wichtigsten Fragen:

-welcher Sensor ? --> am besten aus Automotiv da temperatur und Flüssigkeitsbeständig
-wo anbringen um die richtigen wert zu bekommen--> ölwanne ist devinitiv nicht der richtige Ort
- Saubere versorgungsspannung herbekommen
-wert beruhigen wieviele Messungen pro sekunde
-grenzwerte zur schutzüberwachung  -->Übertemperatur alarm.....

Ich habe bereits gute automotive PTC sensoren ausgemessen und tabellarisch ausgewertet.....
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: y4y0 on Jan 04, 2019, 11:56 am
Hallo,
ich habe mal versucht anhand der info auf Seite 2 in diesem Thread die Funktion für einen Bosch NTC vom Typ 0280130026 zu erzeugen.
Aber irgendwie haut das bei mir nicht hin.
Habe das ganze mal in ein Excel File gepackt und die Formeln hinterlegt, könnte sich das vielleicht jemand von euch anschauen?

Im Anhang findet ihr das Datenblatt und das Excel File.

Besten Dank.
Zuerst solltest du einen vernünftigen Messbereich für deinen Sensor wählen. Bei einem Bereich von -40 bis 130 °C, wirst du kein zufriedenstellendes Ergebnis erhalten. Schau doch bitte nochmal auf Seite 1 nach wie dort vorgegangen wurde.

ich sehe auf den ersten Blick folgendes:
Messbereich viel zu groß
Materialkonstante nicht in Kelvin (ich komme bei einem Messbereich von 40-120°C auf B=3600)
Temperaturberechnung ebenfalls nicht in Kelvin (Formel --> Seite 1)


Gruß
y4y0

Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: y4y0 on Jan 04, 2019, 12:07 pm
Hallo,
gerne möchte ich mich bei der thematik auch einklinken,
da ich auch ein solches Projekt verfolge.
Es stellen sich dabei immer zuerst die wichtigsten Fragen:

-welcher Sensor ? --> am besten aus Automotiv da temperatur und Flüssigkeitsbeständig
-wo anbringen um die richtigen wert zu bekommen--> ölwanne ist devinitiv nicht der richtige Ort
- Saubere versorgungsspannung herbekommen
-wert beruhigen wieviele Messungen pro sekunde
-grenzwerte zur schutzüberwachung  -->Übertemperatur alarm.....

Ich habe bereits gute automotive PTC sensoren ausgemessen und tabellarisch ausgewertet.....
Du schreibst, dass du bereits gute automotive PTC-Sensoren hast. Warum verwendest du diese nicht einfach ?

Zwecks Messpunkt solltest du einmal im Internet recherchieren, um zu erfahren, ob es geeignete Stellen an deinem Auto gibt (z.B Blindstopfen in Zylinderkopf oder Ölpumpe). Ich selber greife aktuell die Temperatur am Zylinderkopf ab.

Für die Versorungsspannung gibt es mit Sicherheit geeignete DC-DC Wandler, welche dir eine 5V-Spannung erzeugen können.

Ich würde mir erstmal einen Prototypen bauen, um zu sehen wie sich z.B Messintervalle auf die Anzeige/Berechnung auswirken. Ich habe keinerlei Probleme mit einem Intervall von 500ms.


Gruß
y4y0


Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: DerMechaniker84 on Jan 04, 2019, 05:32 pm
Ja gerne werde ich diese Sensoren verwenden sobald ich den sketch richtig geschrieben habe um die Funktion zu haben die auch gewünscht ist.
Die wertetabelle muss ja auch noch irgendwie implementiert werden da der verlauf nicht linear ist.
Zwar habe ich über 20 Jahre erfahrung als mechaniker und Messtechnik, aber als Arduino programmierer bin ich noch ein blutiger Anfänger.
Temperaturen und drücken am Motor sollten um auch sinnig zu sein  auch an der logisch richtigen stelle gemessen werden,
es gibt dutzende videos und beschreibungen Temperaturen am Motor zu messen aber die meisten beschreibungen machen wirklich nicht viel sinn.
Es nutzt nämlich nichts einen wert auf 0,01°C genau auszuwerten und anzuzeigen wenn der gemnessene wert an der Falschen stelle abgenommen wird.
Title: Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ)
Post by: Positiv on May 25, 2019, 10:43 pm
Hallo jurs

warum bekomme ich andere werte
https://www.arndt-bruenner.de/mathe/scripts/gleichungssysteme.htm

dieses einkopiert

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

dieses als Ausgabe
 a = 2,3e-9
 b = -0,0000010025
 c = 0,00014986
 d = 0,0201900124
 e = -0,215906952

muss ich wandeln in
 b     -6
c      -4

das verstehe ich noch
aber Wo kommen die weiteren Zahlen von a her ?



Dieses sind Deine werte

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;


DANKE FÜR EINE HILFE