FIS für Motorrad

Guten Morgen zusammen!

Ein PT-Sensor wäre natürlich echt super. Problem: Die Ölablassschraube hat ein M14x1,25 Feingewinde. Habe aber schon einen Sensor gefunden, der mit solchem Gewinde ausgestattet ist: http://www.kosoeurope.com/temperatursensor-m14xp1.25-150c-schwarzer-stecker

Es gibt auch Adapter: http://www.kosoeurope.com/adapterschraube-fuer-temperaturgeber-pt1/8x28-m14x1-25x15mm

Aber da ist die Wandung zwischen Innengewinde und Außengewinde dann etwa 1,38mm. Das ist mir doch etwas zu dünn.

Ich wollte dann einfach den Widerstand vom Temperatursensor dauerhaft bestimmen und umgerechnet dann halt als Temperatur ausgeben.

Ja so ein Display hatte ich mir auch vorgestellt. Aber das liegt halt noch in der "Ferne". Wollte heute Nachmittag erst mal versuchen einen Widerstandswert zu bestimmen. Wenn das klappt, wollte ich mich an Temperatursensoren heranwagen. Das Display kommt dann zum Schluss ;) Und ich glaube, dass wird auch die größte Herausforderung :~

Gruß Morris

Hallo!

Ich habe nun mittlerweile etwas getestet und bin echt begeistert von dem feinen Spielzeug :)

Habe nun auch eine Tabelle bekommen, in der das genaue Verhältnis von Temperatur-Widerstand für einen Öltemperaturgeber aufgeführt ist. Meiner Meinung nach ein NTC 10k, da bei 25°C der einzig glatte Wert: 10k Ohm. B=3435°K

Ich hatte mir nun gedacht, dass ich den NTC einfach zwischen 5V und A0 auf dem Arduino anklemme. Dann bekomme ich ja eine Spannung am Analogeingang zurück. Diese wollte ich dann anhand der e-Funktion vom Widerstand auf eine Temperatur umrechnen.

Ist das so möglich? Oder denke ich da vollkommen falsch?

Danke Euch!

Gruß Morris

Nicht ganz. Du musst einen Spannungsteiler, bestehend aus NTC und Festwiderstand, aufbauen. Am verbindungspunkt der beiden widerstände greifst du dann die Spannung ab und gibst diese auf deinen Analogpin.

Hm und wieso kann ich nicht die von mir genannte "Lösung" wählen?

Habe das so mit nem 4,7k Ohm NTC und nem 4,7k Festwiderstand gemacht, zum Probieren. Aber dann habe ich ja immer das Problem, dass alleine durch die Toleranz der Widerstände, die gemessene Spannung(->Temperatur) ja auch nur so halb stimmt...

maeckes: Hm und wieso kann ich nicht die von mir genannte "Lösung" wählen?

Du kannst deinen Ansatz ruhig testen, dann erkennst du, dass trotz Temperaturänderung permanent am Analogpin 1023 anliegt. Du musst das Prinzip einer Reihenschaltung anwenden und den Spannung über einem (in diesem Fall veränderlichen) Widerstand messen. Du gehst fälschlicherweise davon aus, dass die Spannung hinter einem Widerstand niedriger ist - mal bewusst laienhaft formuliert. ;)

Zur Bettlektüre ist vielleicht noch zu früh, trotzdem als Lesevorschlag: http://de.wikipedia.org/wiki/Reihenschaltung http://de.wikipedia.org/wiki/Spannungsteiler

Okay - verstanden Habe gestern einen von der Fest-widerständen mit 5% Toleranz gemessen und der hatte sein Toleranzfeld schon fast ausgenutzt :~ Das ist natürlich dann schon murks. Daraufhin jetzt Widerstände mit 1% Toleranz geordert.

Ich möchte ja die Ausgabe später über ein Display realisieren. Nun gibt es ja verschiedene. Habe mir mal zwei ausgesucht:

[u]LCD[/u] http://www.exp-tech.de/Displays/I2C-LCD-1602-Module-652.html

[u]TFT LCD[/u] http://www.exp-tech.de/Displays/1-8-18-bit-color-TFT-LCD-display-with-microSD-card-breakout-ST7735R.html

Dazu mal einige Fragen / Probleme:

  • Welches stellt die größte Herausforderung in Sachen Programmierung dar?
  • Das Display soll gut ablesbar sein - auch bei Tageslicht (halt auf dem Motorrad montiert, da scheint die Sonne). Welches eignet sich da am Besten?
  • Benötige ich noch etwas, außer das Display und den Arduino um das Ding ans Laufen zu bekommen?
  • Könnt Ihr mir vll eins empfehlen?

Danke Euch!

Gruß Morris

Die Toleranz des Widerstands ist egal, da der echte Wert (fast) egal ist. Du rechnest ja eh um, und damit hast Du einfach einen grösseren oder kleineren Offset.

Hi!

Also ich habe diesen Code hier verwendet:
http://www.nextit.de/2011/07/thermometer-mit-arduino/

Da wird doch mit den Werten der beiden Widerstände gerechnet.
Wenn diese also in der Rechnung abweichen (weil der Widerstand halt statt 4700Ohm nur 4500 hat), weicht doch auch der errechnete Wert ab!?

Ich habe auch immer eine abweichende Temepratur gemessen.
2 Thermometer haben mir hier etwa um 22-23°C angezeigt.
Der Wert des Arduinos lag bei 25°C … finde die Abweichung schon etwas groß für eine Temperatur in dem Bereich. Da will man ja schon einigermaßen genau messen, da ±1 Grad ja schon spürbar sind.

Gruß
Morris

Die Spannung ändert sich proportional zum Verhältnis der Widerstände. Da der eine fix ist bestimmt der Tempsensor den Wert. Schwankt der bei konstanter Temperatur aussergewöhnlich, hast Du vielleicht Kontaktprobleme. Verwendest Du ein Breadboard?

Hi!

Naja großartig schwanken tut er nicht. Immer um ±0,1-0,2 °C. Das finde ich eigentlich i. O.

Aber das die Temperatur um 2 Grad abweicht, finde ich etwas viel.

Ja verwende ein Breadboard.

Aber auch wenn sich die Spannung proportional zum Verhältnis der Widerstände ändert, so beeinflusst ein Widerstand mit "falschem" Wert doch meine Rechnung - richtig?

Richtig, aber ebn um einen konstanten Wert. Den Temperaturkoeffizienten des Widerstands mal unberücksichtigt. Und abgleichen solltest Du eh den Aufbau.

abgleichen?

Klar, Du willst doch den richtigen Wert haben. Also musst Du rausfinden welche Spannung Du bei definierter Temperatur misst.

Also Spannung zwischen GND und analogem Eingang per Multimeter messen?
Wenn der Wert von dem mit dem Arduino gemessenen abweicht - wo schraube ich dann dran?

Neee. Temperatur messen und im Code Offset anpassen dass der arduino die gleiche misst.

Offset? Ich habe mir ja erst mal diesen Code kopiert, um das überhaupt ans Laufen zu bekommen: http://www.nextit.de/2011/07/thermometer-mit-arduino/

Was ist denn da der Offset?

Du musst dem arduino beibringen, bei welcher Temp welcher Analogwert anliegt. Das ist abhängig vom Spannungsteiler. Im Code wird durch die genaue Angabe der Widerstandswerte das gleiche erreicht. Dafür muss der Widerstand genau sein bzw sein Wert für den Code ausgemessen werden. Das ist sozusagen der Offset.

Einfacher finde ich, einfach den Analogwert zu lesen, 2 oder 3 Werte zu messen und daraus die Kurve anzupassen. Da das System als linear anzunehmen ist wird der Offset eine Addition oder Subtraktion eines Festwertes. Ach ich kann das sooo schlecht beschreiben.

ah ich verstehe was Du meinst.

Also den Widerstandswert vom Widerstand bei genau 25°C zum Beispiel messen und dann den gemessen Wert statt den 4,7k einsetzen? Den "echten" Widerstandswert dann auch für den Festwiderstand eintragen, da der ja auch eine Toleranz hat?

Ich muss ehrlich gestehen (wie Du sicher schon gemerkt hast), dass ich noch nicht ganz die Berechnung der Temperatur aus dem Code verstanden habe....

So, jetzt nochmal hübscher dargestellt.

Stell Dir vor, Du hast 2 unterschiedliche Fest-Widerstände in Deinem Spannungsteiler und misst die Spannung am Knotenpunkt mit dem arduino. Dann bekommst Du - Linearität immer noch vorausgesetzt - 2 unterschiedliche Kurven. Siehe Bild, X-Achse ist die Temperatur.

Und jetzt wird klar, was ich mit Offset meine. Der tatsächliche Widerstandswert ist egal. Du kennst die Temperatur aus einer Vergleichsmessung mit einem Thermometer und weißt somit, welcher Analogwert dieser Temperatur entspricht.

Ich halte das für einfacher als einen Widerstand genau auszumessen und übertrieben, mit 0,1% Widerständen zu arbeiten. Aber eine Bezugsgröße brauchst Du ja nunmal.

Jetzt klar?

Okay - ich könnte also auch einfach von der errechneten Temperatur immer X-Grad abziehen, weil ich ermittelt habe, dass die Temperatur die ich messe immer X Grad zu hoch ist. Meinst Du das?