Dem Dbilas sein Wintercorsa
-
-
Danke Schatzi
Na das doch ein brauchbarer Wert. Grob überschlagen 7Sekunden.
Lg Tino
-
das schaut auch wenn filmaufnahmen den realen speed etwas verfälscht anzeigen..
verdammt gut aus mit gutem saugerdruck... -
Ich habe mich die letzten Tage mal etwas mit dem geplanten Zusatzdisplay für den Corsa beschäftigt.
[Blockierte Grafik: http://www.dbilas-vectra.de/Verlinkte_Dateien/Bilder/Corsa_b/LCD/LCD.jpg]
Es ist ein 16x2 Zeilen Display welches Abgastemp und Ladelufttemp anzeigt.
-
Hübsch
Lg Tino
-
Nun ist es so wie ich es will:D Ich habe von meiner Zeitronix noch einen Drucksensor über gehabt. Den wollte ich als Benzindruckgeber verbauen und es mir auf dem Display anzeigen lassen. Dieses Vorhaben war aber viel schwerer als vorher gedacht. Das hat mich nun 2 Tage gekostet aber es geht:D
[Blockierte Grafik: http://www.dbilas-vectra.de/Verlinkte_Dateien/Bilder/Corsa_b/LCD/LCD_Fuel.jpg]
EGT - Abgastemperatur
LLT - Ladelufttemperatur
Fuel - Benzindruck oder aber LadedruckJetzt muss ich es nur noch schön verpacken und Verkabeln. Hier mal mein Code
C- #include <max6675.h>
- #include <LiquidCrystal.h>
- int sensorPin = A0;
- int athermoDO = 4;
- int athermoCS = 6;
- int athermoCLK = 7;
- int thermoDO = 5;
- int thermoCS = 6;
- int thermoCLK = 7;
- MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
- MAX6675 athermocouple(athermoCLK, athermoCS, athermoDO);
- LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
- uint8_t degree[8] = {140,146,146,140,128,128,128,128};
- void setup() {
- lcd.begin(16, 2);
- lcd.createChar(0, degree);
- delay(1000);
- }
- void loop() {
- int reading = analogRead(sensorPin);
- float voltage = (reading*5.0)+145;
- voltage /= 1024.0;
- float bar = (voltage*12.5)-20.95;
- float bar1 = (bar*0.07);
- lcd.setCursor(0, 0);
- lcd.print("EGT");
- lcd.setCursor(4,0);
- lcd.print(thermocouple.readCelsius());
- lcd.print("C ");
- lcd.setCursor(0, 1);
- lcd.print("LLT");
- lcd.setCursor(4,1);
- lcd.print(athermocouple.readCelsius());
- lcd.print("C ");
- lcd.setCursor(12, 0);
- lcd.print("Fuel");
- lcd.setCursor(11,1);
- lcd.print(bar1);
- delay(250);
- }
-
Das sieht so aus als wäre das echte Fummelarbeit... Sieht aber echt cool aus... Wäre auch was für mich
-
Ich kann es nicht lassen:D!
Heute habe ich das 20x4 LCD bekommen. Die Planung ist nun so das ich Ladedruck und Benzindruck anzeigen lasse. Auf der rechten Seite wollte ich Uhrzeit, Datum und Außentemp. Das sollte in etwa so aussehen.
[Blockierte Grafik: http://www.dbilas-vectra.de/Verlinkte_Dateien/Bilder/Corsa_b/LCD/LCD_20x4.jpg]
Sehr dolle kämpfe ich noch mit dem Verbrauch! Ja ne nich dem Reellen:D Ich könnte noch das Verbrauchssignal vom MSG auslesen und mir dann den Verbrauch anzeigen lassen. Aber!! Wer will das schon:D
-
.... bei dem Verbrauch wirst eh nur Blind....... sieht echt gut aus!!!!
mfg
-
Ich finds geil!
-
Diese Woche ist mein RTC (Real Time Clock) Modul gekommen. Das Prob, was ich nun festgestellt habe, ist das es ca. 2-3 sek pro Tag nach geht. Das heißt das es im Jahr ca. 18min nach geht. Irgendwie finde ich das nicht so prickelnd und werde es mal mit einem Funkuhr Modul versuchen.
[Blockierte Grafik: http://www.dbilas-vectra.de/Verlinkte_Dateien/Bilder/Corsa_b/LCD/RTC.jpg]
Zum veranschaulichen mal der jetzige Code:
C- #include <Wire.h> //RTC Modul
- #define DS1307_I2C_ADDRESS 0x68 //RTC Modul
- #include <max6675.h> //Typ K Temp
- #include <LiquidCrystal.h>
- //Werte für Opel Außentempfühler
- #define wert1 498
- #define temp1 0 //Grad Celsius/10
- #define wert2 664
- #define temp2 230 //Grad Celsius/10
- int sensorPin = A0; //Sensor Pin für Ladedruck
- int sensorPin1 = A1; //Sensor Pin für Außentemp
- int athermoDO = 2; //Tempmodul Pin LLT
- int athermoCS = 6; //Tempmodul Pin
- int athermoCLK = 7; //Tempmodul Pin
- int thermoDO = 5; //Tempmodul Pin EGT
- int thermoCS = 6; //Tempmodul Pin
- int thermoCLK = 7; //Tempmodul Pin
- MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO); //EGT
- MAX6675 athermocouple(athermoCLK, athermoCS, athermoDO); //LLT
- LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
- // RTC Zeit
- // Convert normal decimal numbers to binary coded decimal
- byte decToBcd(byte val)
- {
- return ( (val/10*16) + (val%10) );
- }
- // Convert binary coded decimal to normal decimal numbers
- byte bcdToDec(byte val)
- {
- return ( (val/16*10) + (val%16) );
- }
- // 1) Sets the date and time on the ds1307
- // 2) Starts the clock
- // 3) Sets hour mode to 24 hour clock
- // Assumes you're passing in valid numbers
- void setDateDs1307(byte second, // 0-59
- byte minute, // 0-59
- byte hour, // 1-23
- byte dayOfWeek, // 1-7
- byte dayOfMonth, // 1-28/29/30/31
- byte month, // 1-12
- byte year) // 0-99
- {
- Wire.beginTransmission(DS1307_I2C_ADDRESS);
- Wire.send(0);
- Wire.send(decToBcd(second)); // 0 to bit 7 starts the clock
- Wire.send(decToBcd(minute));
- Wire.send(decToBcd(hour));
- Wire.send(decToBcd(dayOfWeek));
- Wire.send(decToBcd(dayOfMonth));
- Wire.send(decToBcd(month));
- Wire.send(decToBcd(year));
- Wire.send(0x10); // sends 0x10 (hex) 00010000 (binary) to control register - turns on square wave
- Wire.endTransmission();
- }
- // Gets the date and time from the ds1307
- void getDateDs1307(byte *second,
- byte *minute,
- byte *hour,
- byte *dayOfWeek,
- byte *dayOfMonth,
- byte *month,
- byte *year)
- {
- // Reset the register pointer
- Wire.beginTransmission(DS1307_I2C_ADDRESS);
- Wire.send(0);
- Wire.endTransmission();
- Wire.requestFrom(DS1307_I2C_ADDRESS, 7);
- // A few of these need masks because certain bits are control bits
- *second = bcdToDec(Wire.receive() & 0x7f);
- *minute = bcdToDec(Wire.receive());
- *hour = bcdToDec(Wire.receive() & 0x3f); // Need to change this if 12 hour am/pm
- *dayOfWeek = bcdToDec(Wire.receive());
- *dayOfMonth = bcdToDec(Wire.receive());
- *month = bcdToDec(Wire.receive());
- *year = bcdToDec(Wire.receive());
- }
- // Grad und Flocke Symbol
- uint8_t degree[8] = {140,146,146,140,128,128,128,128};
- uint8_t flocke[8] = {B00000,B10101,B01110,B00100,B11111,B00100,B01110,B10101};
- void setup() {
- //RTC Zeit
- byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
- Wire.begin();
- Serial.begin(9600);
- // Change these values to what you want to set your clock to.
- // You probably only want to set your clock once and then remove
- // the setDateDs1307 call.
- second = 30;
- minute = 42;
- hour = 17;
- dayOfWeek = 3;
- dayOfMonth = 12;
- month = 10;
- year = 11;
- //setDateDs1307(second, minute, hour, dayOfWeek, dayOfMonth, month, year);
- lcd.begin(20, 4);
- lcd.createChar(0, degree);
- lcd.createChar(1, flocke);
- lcd.setCursor(2,0); // zeigt Starttext
- lcd.print("Dbilas-Vectra.de");
- lcd.setCursor(4,2);
- lcd.print("X18XE1 Corsa");
- // wait for MAX chip to stabilize
- delay(5000);
- lcd.clear(); // clear LCD screen
- }
- void loop() {
- byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
- getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);
- lcd.setCursor(11,0);
- if (hour<10)
- {
- lcd.setCursor(12,0);
- }
- lcd.print(" ");
- lcd.print(hour, DEC);
- lcd.print(":");
- if (minute<10)
- {
- lcd.print("0");
- }
- lcd.print(minute, DEC);
- lcd.print(":");
- if (second<10)
- {
- lcd.print("0");
- }
- lcd.print(second, DEC);
- lcd.setCursor(11,1);
- lcd.print(" ");
- lcd.print(dayOfMonth, DEC);
- lcd.print("/");
- lcd.print(month, DEC);
- lcd.print("/");
- lcd.print(year, DEC);
- //Außentemperatur Opel Sensor
- int reading1 = analogRead(sensorPin1); //Außentemperatur Opel Sensor
- reading1=map(reading1,wert1,wert2,temp1,temp2);
- if(reading1 <40){
- lcd.setCursor(13,2);
- lcd.print("Temp ");
- lcd.print(1, BYTE);
- delay(1000);
- lcd.setCursor(13,2);
- lcd.print("Temp ");}
- if(reading1>40)
- {lcd.setCursor(13,2);
- lcd.print("Temp ");}
- int reading = analogRead(sensorPin); // funktion zum auslesen des Drucksensors
- float voltage = (reading*5.13);
- voltage /= 1023.0;
- float bar = (voltage*12.5)-20.95;
- float bar1 = (bar*0.0689);
- lcd.setCursor(0, 0); //LCD Werte augeben
- lcd.print("EGT ");
- lcd.setCursor(4,0);
- lcd.print(thermocouple.readCelsius()*0.90);
- lcd.print(0, BYTE);
- lcd.print("C ");
- lcd.setCursor(0, 1);
- lcd.print("LLT ");
- lcd.setCursor(4,1);
- lcd.print(athermocouple.readCelsius());
- lcd.print(0, BYTE);
- lcd.print("C ");
- lcd.setCursor(0, 3);
- lcd.print("Fuel ");
- lcd.setCursor(5,3);
- lcd.print(bar1,1);
- lcd.print("bar ");
- lcd.setCursor(0, 2);
- lcd.print("LD ");
- lcd.setCursor(4,2);
- lcd.print(bar1);
- lcd.print("bar ");
- lcd.setCursor(13,3);
- lcd.print((reading1/10.0),1);
- lcd.print(0, BYTE);
- lcd.print("C ");
- delay(500);
- }
-
Auweia Andreas, wenn ich die Codes alle sehe, wird mir schlecht. Hatte das alles im Studium im Modul "Betriebsinfo". Könnte heute noch kotzen... Hast du damit beruflich zu tun, oder bringst du dir das alles in deiner Freizeit selbst bei?
-
Ich habe den Arduino schon über 1 1/2 Jahre hier liegen und habe schrittweise mit blinkenden LED angefangen:D Das gute ist das es zu den einzelnen Sachen/Modulen schon fertige Libraries gibt und man sie dann leichter zusammenfügen kann. Erst wollte ich ja nur ein 16x2 Zeilen LCD nehmen, nun ist es schon ein 20x4Zeilen und Ideen habe ich noch etliche:D
-
Sind denn die Temperatursensoren wirklich so genau daß du eine Anzeige mit 2 Nachkommastellen brauchst bzw. auch wirklich nutzen kannst?
Würde nur ganze Grade anzeigen, das erhöht die Ablesbarkeit, dann kannst vielleicht auch "Ladel." oder "Abgas" schreiben. Da kennt sich dann auch jemand aus, der deine Abkürzungen nicht kennt.Funkuhr ist ne gute Idee, 18min/Jahr ist zwar nicht viel, aber lästig wenn man's immer nachstellen muß. Alternativ könntest das aber auch per Software korregieren wenn die Abweichung nur in eine Richtung geht.
-
Bei dem normalen Opel Tempsensor habe ich es schon so gemacht das er nur eine Stelle hinter dem Komma anzeigt und ab 4°C dann die Flocke dazu blinkt. Bei der Abgastemperatur werde ich es ohne Komma machen und bei Ladelufttemperatur auch nur eine Kommastelle. Beim Benzindruck ist auch nur noch eine Stelle nach dem Komma was da ja auch völlig ausreicht. Der Drucksensor hat eine Schwankung von 0,08bar also 0,8mbar. So wie es jetzt ist pendelt er immer zwischen -0,04 und +0,04bar was dann genau soviel ist das er mir immer 0,0bar ausgibt:D Die Abweichung der Uhrzeit geht nur in eine Richtung und an den Abgleich per Software habe ich auch schon gedacht aber die Funkuhr ist noch mal ein Reiß:D
-
Gefällt mir gut, Deine Bastelei! Ich überleg immer noch, ob ich tatsächlich ein DashDaQ/Zeitronix brauche, wenn Du das anstelle vom Benzindruck mit der Kühlwassertemperatur und anstelle von der Uhr mit Öltemperatur und oder Öldruck bauen kannst, habe ich alle Anzeigen, die mir wichtig wären! Kleines Gehäuse drum oder eine Lüftungsdüse in der Mittelkonsole des OPC opfern und das da einbauen und fertig!
-
Sind doch nur 65km von Wuppertal bis nach
[Blockierte Grafik: http://1.1.1.8/bmi/www.lambda-tuning.de/images/kontakt.jpg]
Da kannst dir das Dash mal rein halten und schaue wie es dir gefällt. Sehr kompetenter Mann.
Wenn man zu den Sensoren ein Datenblatt hat würde das schon gehen nur der Preis für solche guten Sensoren ist echt Den Ladedrucksensor hatte ich zum Dash mit dazu genommen und der Kostet ohne Prozente 109€ im Shop. Mittlerweile hat er nun auch einen günstigeren im Angebot.
EDIT: Wenn man will kann man mit dem Arduino auch Can Bus oder OBD2 realisieren. I²C Bus geht auch um das Opel Display anzusteuern nur ist das noch mal eine ganz andere Liga!
Edit: 22.10.11
Heute habe ich beim Corsa die Winterreifen drauf gezogen und festgestellt das die Sommerreifen in einer Saison 4-5mm auf der Va gefressen haben! Das hatte ich ja noch nie beim Corsa. Liegt bestimmt an der Art gerechten Haltung *gg*. Die HA sieht noch aus wie neu, ca.1mm weniger. Nun bin ich ja mal gespannt wie das nächstes Jahr mit aussieht:D PS: Achsvermessung habe ich dieses Jahr 2 mal gemacht.
Nun zum Display: Seit gestern funktioniert der DCF77 Code inkl. Arduino bei mir. Das hat mich ganze 4 Tage/Abende gekostet den zum laufen zu bekommen. Grund war das der Ersteller des Originals wohl ein Invertiertes Signal nutzte und somit anstatt einer 1 eine 0 drin hatte. Dieses funktionierte dann aber bei mir nicht und so wie ich es raus gefunden habe war ich nicht der ein zigste.
Da die Zeichenlänge von 10000 Zeichen überschritten wird habe ich mal 2txt Dateien erstellt. Also für Google Hier ist der Code für Arduino+ DCF77 Conrad Modul und Hier ist der Code mit meinem Display.
Der original Code ist von Hier bzw. Hier .
Nun habe ich für den Corsa eine Funkuhr
Edit:01.11.2011
Heute kam mal wieder ein kleines Teil wobei klein auch nicht wirklich passend ist.
[Blockierte Grafik: http://www.dbilas-vectra.de/Ve…orsa_b/Motorabdeckung.jpg]
Ist die Motorabdeckung vom Vectra C Z18XE und das is nen Riesen Gerät! Ich versuche noch die Motorabdeckung vom Astra H zu bekommen aber die is ja bei Ebay gebraucht so teuer wie neu vom FOH
-
die abdeckung macht ihn auch nicht schneller......lass die doch gleich weg, blöder plastikkrempel
-
Ich finde die Abdeckung sieht sehr bescheiden aus, die vom Astra H ist die schwarze, ne?! Die is schick.Ganz nackt steht dem Motor nicht, da sieht er nicht gut aus.
-
ach quark.....man muss ja auch den gewichtsvorteil sehen *gg*