Bauanleitung Öltemperaturanzeige für Mercedes...
Transcript of Bauanleitung Öltemperaturanzeige für Mercedes...
Bauanleitung Öltemperaturanzeige für Mercedes W124
Anmerkung: Text hier in Englisch, im Programm auf Deutsch!
Hallo zusammen!
Wie von Euch gewünscht habe ich mich mal hingesetzt und diese Bastelanleitung für Euch erstellt. Ab und an habe ich mal direkt vermerkt wenn aus meiner Sicht noch ein Verbesserungspunkt vorhanden ist – wenn hier jemand eine Idee hat bin ich da gerne kritikfähig
Ansonsten wünsche ich Euch viel Spaß und Erfolg dabei die Geschichte nachzubauen. Bei Fragen einfach melden.
Eigentlich ist es ja klar, aber um sicher zu gehen: Der Nachbau für private Nutzung ist natürlich für jeden gestattet, ein kommerzieller Nachbau (der eigentlich eh keinen Sinn macht) darf jedoch nicht durchgeführt werden. Es sei denn ich werde dabei reich belohnt
Gruß, Martin
1. Bauteilliste mit Bezugsquelle
1.1. Grundausstattung Lötkolben, Messer, Dremel, Schrumpfschlauch
1.2. Temperatursensor VDO- Temperaturgeber für Öltemperatur M14x1,5 (VDO- Nummer: 323.801/004/039 K) Bestellmöglichkeit: http://www.ezt-autoteile.de ; Bestellnummer 126.055 Anmerkung: Alle VDO Sensoren mit dieser Kennlinie sind natürlich verwendbar.
1.3. Für Originalitätsfanatiker: Spannungsanschluss im W124 über die SA- Leiste
Anschlussmöglichkeit SA-Leiste Bestellnummer
Steckergehäuse SA Leiste A0135453228 1 passend für W124 SA-
Leiste PIN für SA Leiste A0025459926 3 dazugehörige PINs
1.4. Platine und Co. mit Bestellnummern von www.reichelt.de
Bezeichnung Bestell-
bezeichnung Menge Erläuterung
Steuergerät
Kontroller ATMEGA 8L8 DIP 1 Spannungsregler µA 78S05 1 Spannungsregler µA 78S12 1 Sicherungshalter PL112000 1
Sicherung 1A FLINK 1,0A 1 Drosselspule FED 40µ 1
IC-Sockel GS 28P-S 1 Gehäuse TEKO A3 1 Display LCD MO82 DIP 1 Platine UP 730EP 1
Birne 12V L5218 2 D1 = Diode 5,1V ZD 5,1 1
Kabel für Platine KUPFER 1,0MM 0,5 Rasterverbindung auf Platine
Kabel zum Display LIYCY 10-5 1 Widerstände
R1 = 560 Ω METALL 560 1 Kontrast Display R2 = 15k Ω METALL 15,0K 1 Kontrast Display
R3 = 100k Ω METALL 100K 1 Reset R4 = 1,2k Ω METALL 1,20K 1 Bordspannung R5 = 3,9k Ω METALL 3,90K 1 Bordspannung R6 = 47 Ω METALL 47,0 1 VDO-Sensor
Kondensatoren
C1 = 100myF RAD 100/25 4 Spannungsregler C2 = 470myF RAD 470/16 1 Spannungsregler
C3 = 2,2myF TANTAL 2,2/25 2 Eingang Controller,
Messsignal Bordspannung
C4 = 10nF X7R-5 10N 1 Messsignal VDO- Sensor C5 = 100nF X7R-5 100N 2 Spannungsregler
Platinenanschlüsse
8-polig PS 25/8G BR 2 3-polig PS 25/3G BR 1 2-polig PS 25/2G BR 1
Verbindung STG / Display
SUB-D- Buchse 15-polig D-SUB BU 15 2 Anschlusskabel Display SUB-D- Stecker 15-polig D-SUB ST 15 2 Anschlusskabel Display
Gehäuse für SUB-D Stecker 15polig
KAPPE 15M 4 Anschlusskabel Display
Kabel
rot FLK 1,5 RT-5 1 schwarz FLK 1,5 SW-5 1
Steckverbinder
Steckverbinder für Sensor FSH-B-4,75 1 nur eine Größe
Steckverbinder für Sensor FSH-B-6,35 1 notwendig, aber
welche??
Achtung: Das von mir verwendete Display hat leider keine eigene Beleuchtung! Es gibt dieses Display zwar mit Beleuchtung, habe es aber nirgends auftreiben können. Zur Beleuchtung habe ich daher von der Seite her über zusätzliche Birnen verbaut – bitte vergleicht hierbei das Kapitel Einbau des Displays
1.5. Programmierung:
Ich verwende zur Programmierung das Programm BASCOM-AVR. Es gibt hierfür eine freie Version die jedoch in ihrem Umfang begrenzt ist. Die Vollversion kostet 90 Euro, ansonsten gibt es aber genügend Freeware auf dem Markt. Für BASCOM empfehle ich den USB- Programmierer mySmartUSB light, gibt’s günstig bei Conrad. Programmieranschlüsse in diesem Dokument sind auf diesen Programer bezogen.
+12V
Bordspannung Gnd OUT
C1 C5
Gnd OUT
C2 C5 C1 C1
+5V
Masse
zur Messung
Bordspannung
+12V Messung
Bordspannung
+5V
SCK (Programmer PIN 3)
MISO (Programmer PIN 1)
MOSI (Programmer PIN 4)
D1 R6
R4
R5
C3
C4
R3
C3 C1
R1 R2
Kontrast (Display PIN 3)
Reset (Programmer PIN 5)
Display Enable
R/S (Display PIN 4)
Db4 (Display PIN 11)
+5V
Masse
Db7 (Display PIN 8)
Db5 (Display PIN 10)
Db6 (Display PIN 9)
1
2
3
4
5
6
7
14
13
12
11
10
9
8
+5V
Kontrast
R/S
Enable
Masse
Db4
Db5
Db6
Db7
2. Platine
IN IN
28
27
26
25
24
23
22
21
20
19
18
17
16
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
zum VDO Sensor
Masse
Spule Sicherung
Darstellung:
Draufsicht der Rückseite!
Spannungsversorgung:
Mikrocontroller:
Display:
3. Aufbau
Anbei nun für Euch ein paar Bilder bezüglich Aufbau des Systems:
3.1. Platine:
3.2. Einbau in Gehäuse
Gut zu erkennen: Die Spannungsregler wurden mit dem Aluminiumgehäuse verbunden, dieses dient somit als Kühlkörper
3.3. Ausbau und Bearbeitung des Tachoblattes
Vorsichtiger Ausbau des Blattes, die Zeiger vorsichtig abhebeln und unbedingt vorher markieren wo diese gestanden sind. Sonst wird’s nachher schwierig die korrekten Positionen wieder zu finden.
Ich habe leider damals keine Schablone erstellt, ihr müsst jedenfalls aufpassen dass die Verschraubung, bzw. der dreiarmige Halter auf dem das Blatt befestigt wird noch genügend Platz hat.
3.4. Einbau des Displays
Wie auf dem Bild ersichtlich habe ich das Display auf eine Platine aufgelötet und diese dann mit kleinen Blechschrauben hinten an den dreieckigen Halter angeschraubt. Zur Beleuchtung habe ich zwei kleine 12V Birnen links und rechts vom Display verbaut und auf dem Gehäuse verlötet:
Das Bild zeigt die erste eingebaute Birne, die zweite kam auf die andere Seite. Ein Display mit Beleuchtung wär einfacher und sinniger.
Hier ein Bild mit eingeschalteter Beleuchtung im eingebauten Zustand. Nicht hundertprozentig perfekt aber auch bei Nacht kann man erkennen was angezeigt wird.
Der rote Pfeil markiert den Anschluss der beiden Birnen. Für alle von Euch denen das laute Geblinke vom 124er genau so auf die Nerven geht wie mir: In dem grünen Kreis ist das Blinkrelais markiert welches nur dafür da ist ein lautes Klack- Geräusch zu erzeugen. Ein kleiner Kabelbinder drumrum und das Thema ist gegessen. Hören tut man den Blinker übrigens immer noch aber nur gedämpft das Geräusch draußen aus dem Sicherungskasten
Ausleitung des Kabels aus dem Gehäuse. Wichtig: In der Bauteileliste sind zwei komplette RS232 Steckverbinder enthalten. Eines direkt in die Nähe vom Steuergerät welches man direkt per Kabelbinder unterhalb der Lenksäule befestigen kann. Das zweit direkt in die Nähe vom Kombiinstrument – man möchte dies ja ausbauen können ohne das Öltemperatursteuergerät ausbauen zu müssen.
Tja, und so schaut das dann zusammengebaut aus
4. Linearisierung VDO-Temperatursensor
Der VDO- Temperatursensor hat eine relativ komisch aussehende Kennlinie wie in nachfolgendem Schaubild ersichtlich wird. Man kann hier schön erkennen warum sämtliche VDO- Instrumente unter 50°C nichts anzeigen – die Kennlinie ist analog nicht darstellbar. Aus diesem Grund werden hier zwei Kennlinien ermittelt: Die erste Kennlinie wird für Spannungswerte von 0 bis 4 Volt (60 bis 259°C) verwendet, für Werte über 200°C wird das Steuergerät später einen Masseschluss im Display ausgeben - diese Werte machen im Auto wenig Sinn. Die zweite Kennlinie wird für Spannungswerte von 4 bis 4,988 Volt (-30 bis 60°C) verwendet, wobei für Temperaturwerte unter 20°C „Öl kalt“ im Display angezeigt wird. Spannungswerte über 4,988 V werden mit der Anzeige „Kabelbruch“ angezeigt.
4.1. Grundlagen Spannungsteiler
VDO
Sensor
+5V
Masse
U
U2
R1 = 47 Ω
2 = ×
1 +
4.2. Linearisierung
Berechnung von U2 bei einer Versorgungsspannung von U = 5V und einem Widerstand R1 = 47Ω
Temp. Widerstand
VDO-Sensor
U2 [V]
Linearisierung 60 - 180 °C
Linearisierung 20 - 60 °C
Temp. Widerstand
VDO-Sensor
U2 [V]
Linearisierung 60 - 180 °C
-40 36563,56 4,994
70 155,29 3,838 70
-35 28284,63 4,992
75 131,38 3,683 75
-30 19149,2 4,988
80 112,08 3,523 80
-25 14127,68 4,983
85 96,4 3,361 85
-20 10540,68 4,978
90 82,96 3,192 90
-15 7721,35 4,970
95 71,44 3,016 95
-10 5720,88 4,959
100 61,92 2,842 100
-5 4284,03 4,946
105 54,01 2,673 105
0 3240,18 4,929
110 47,24 2,506 110
5 2473,6 4,907
115 41,42 2,342 115
10 1905,87 4,880
120 36,51 2,186 120
15 1486,65 4,847
125 32,38 2,040 125
20 1168,64 4,807
20
130 28,81 1,900 130
25 926,71 4,759
25
135 25,7 1,768 135
30 739,96 4,701
30
140 23 1,643 140
35 594,9 4,634
35
145 20,66 1,527 145
40 481,53 4,555
40
150 18,59 1,417 150
45 392,57 4,465
45
155 16,74 1,313 155
50 322,17 4,363
50
160 15,11 1,216 160
55 266,19 4,250
55
165 13,66 1,126 165
60 221,17 4,124 60 60
170 12,38 1,042 170
65 184,72 3,986 65 65
175 11,25 0,966 175
180 10,24 0,894 180
Über die durch die Linearisierung ermittelten Kennlinien werden die Werte rückgerechnet, und wie anhand obiger Tabelle ersichtlich sind die Werte korrekt.
Somit:
Linearisierung 1:
y = 0,2761555303x4 - 5,5748329389x3 + 34,5555999189x2 - 115,3654014109x + 258,8955671442
Linearisierung 2:
y = -171,6751329543x4 + 2972,3504770312x3 - 19298,9105445771x2 + 55645,1229777467x - 60014,9783421107
Anmerkung:
Da der Controller noch weitere AD- Eingänge zur Verfügung stellt wäre es auch durchaus möglich weitere Sensoren anzubauen und diese bspw. mit einem Schalter in der Mittelkonsole umzuschalten. Anbieten würde sich hier auch der Sensor für die Außentemperaturanzeige. Alle Daten für diesen gibt’s bei www.buerklin.com unter der Bestellnummer 80 E 6782.
5. Anbau des Systems über SA- Leiste
Belegung an SA- Leiste:
Masse an PIN 3
Spannung an PIN 5 (Schlüsselstellung 1)
Beleuchtung an PIN 4 (muss dann nicht über das Kombiinstrument gespeist werden)
6. BASCOM – AVR Programm
Hier folgt nun das BASCOM Programm in BASIC.
Man könnte sicherlich viele Sachen noch schöner programmieren – vielleicht gibt’s mal ne Beta- Variante
Derzeitiger Stand ist jedenfalls:
Spannung wird sehr schnell aktualisiert, man sieht also auch beim Startvorgang auf welchen Wert die Spannung abfällt.
Die Öltemperatur wird nur in ganzen °C angezeigt, alles andere wäre wohl etwas ZU genau.
Auch hier gilt: Wer eine gute Idee bzw. einen Verbesserungsvorschlag hat: Raus damit!
Wer direkt das Programm als .bas Datei haben möchte melde sich einfach.
6.1. Programm:
' Programm für Öltemperaturanzeige ' 2 zeiliges LCD Display ' Öltemperatur mittels VDO- Temperatursensor ' Bordspannungsanzeige $regfile = "m8def.dat" $baud = 9600 $framesize = 32 $swstack = 32 $hwstack = 64 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.5 , E = Portd.2 , Rs = Portd.3 Config Lcdbus = 4 Cursor Off Deflcdchar 1 , 14 , 10 , 14 , 32 , 32 , 32 , 32 , 32 '° Const Ref = 5 / 1023 Dim Ad_value As Word , W2 As Single Dim B1 As Single , B2 As Single , B3 As Single , B4 As Single Dim U As Single Dim H2 As Single , H3 As Single , H4 As Single Dim Ubatt As Single , Ubattalt As Single
Dim Drahtbruch As Integer , Btest As Single , Oelber As Single Dim Bdspg As String * 10 Dim Oeltemp As Integer , Zaehler As Single , Oeltempalt As Integer , Oeltemptest As Integer Dim Count As Single Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc Ubattalt = 0 Oeltempalt = 0 Count = 10 'Anzahl der Messungen (Filter) Cls Do 'Berechnung Bordspannung W2 = 0 For Zaehler = 1 To Count Ad_value = Getadc(3) W2 = W2 + Ad_value Waitms 5 Next I Ad_value = W2 / Count B1 = Ad_value * 0.0204 B2 = B1 - 0.0085 Ubatt = B2 Bdspg = Fusing(b1 , "#.#") 'Ende Berechnung Bordspannung 'Berechnung Temperatursensor W2 = 0 For Zaehler = 1 To Count Ad_value = Getadc(0) W2 = W2 + Ad_value Waitms 5 Next I Ad_value = W2 / Count U = Ad_value * 0.004888 H2 = U * U H3 = H2 * U H4 = H3 * U If U < 4 Then Drahtbruch = 0 B1 = 0.2761555303 * H4 B2 = 5.5748329389 * H3
B3 = 34.5555999189 * H2 B4 = 115.3654014109 * U B2 = B1 - B2 B3 = B3 - B4 B2 = B2 + B3 B2 = B2 + 258.8955671442 Else If U < 4.988 Then Drahtbruch = 0 B1 = 171.6751329543 * H4 B2 = 2972.3504770312 * H3 B3 = 19298.9105445771 * H2 B4 = 55645.1229777467 * U B2 = B2 - B1 B3 = B4 - B3 B2 = B2 + B3 B2 = B2 - 60014.9783421197 Else Drahtbruch = 1 End If End If Oelber = B2 Oeltemp = Round(oelber) 'Ende Berechnung Temperatursensor 'Anzeige Bordspannung Btest = Ubatt - Ubattalt If Btest <> 0 Then Locate 1 , 2 Lcd Bdspg Lcd " V " End If Ubattalt = Ubatt 'Ende Anzeige Bordspannung 'Anzeige Öltemperatur Locate 2 , 1 If Drahtbruch = 1 Then Lcd "Drahtbr." Else Oeltemptest = Oeltempalt - Oeltemp If Oeltemptest <> 0 Then If Oeltemp < 20 Then Lcd "Oel kalt" Else