forum logo image
caferacer-forum.de - Das Forum für Petrolheads, Garagenschrauber, Ölfinger, Frickelracer und Alteisentreiber

Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM etc)

Technische Fragen und Antworten, Tipps und Tricks für Profis und Bastler
Benutzeravatar
GalosGarage
Beiträge: 6104
Registriert: 22. Aug 2013
Motorrad:: Ducati ST2 Umbau ( 9.5 )
Cagiva Alazzurra (Caffè Corretto) im Aufbau
digitaler Umbau Ducati 750ss (emozione) später mal
Cagiva-Duc-BMW Mix (Quattro Stagioni) im Aufbau
Wohnort: 41564 Kaarst

Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM et

Beitrag von GalosGarage »

ich hab mal geschaut, wo man den preiswert herbekommt.

die preise driften ja emens auseinander.


http://www.ebay.de/itm/2pcs-IRGB14C40L- ... SwLF1X5gIR


falls das von interesse ist.

galo

edit fragt: was haste da für ein display vorgesehen?

vermutlich mit I2C schnittstelle....
Projekte:

9.5
Quattro Stagioni (abgebrochen)
Caffè Corretto
Emozione
Ducati 750SSie (noch keine Idee)
Cagiva SST 250 (noch keine Idee)

Benutzeravatar
NyFAZ
Beiträge: 289
Registriert: 2. Nov 2016
Motorrad::  
BMW R80
KTM LC400 Mil
Wohnort: Braunschweig

Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM et

Beitrag von NyFAZ »

Hallo Galo,

bist hier schon weiter gekommen?
GalosGarage hat geschrieben:oha, danke für den hinweis.

sobald wieder zeit dafür ist, werd ich das mal versuchen.

"Arduino simple Menu" hab das mal gegoogelt.

gibts ja ne menge ansätze dafür. da wird bestimmt was passendes bei sein.
Da ich mir auch so etwas mit Arduino bauen möchte habe ich den Thread mit Begeisterung durchgelesen und mich heute Vormittag als Laie mal ans Werk gemacht. Bei Fragen fragen ;)

Code: Alles auswählen

#include <LiquidCrystal.h>

  LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  //Pins für LCD
  int Taster_runter = 0;
  int letzterStatus_runter = 0;
  int Taster_hoch = 0;
  int letzterStatus_hoch = 0;
  int Menuestatus = 0;                //Menuestatus Standard = nichts gedrückt
  int Menuemax = 3;                   //Wie viele Menueeinträge (BEI NULL WIRD ANGEFANGEN ;))
  boolean Umschalten = false;
  char* menuItems[]={                 //Einträge habe ich alle auf 20 Zeichen gesetzt um sauber zu überschreiben
    "Wassertemp:         ",
    "Oeltemp:            ",
    "Drehzahl(rpm):      ",
    "Geschwindigkeit:    ",
  };
  
void setup() {

  pinMode(6, INPUT);                  //Pin für Taster "hoch"
  pinMode(7, INPUT);                  //Pin für Taster "runter"
  lcd.begin(20, 4);                   // LCD Zeichen und Zeilen setzen:
  default_screen();                   // Standardanzeige darstellen
}

void loop() {
  
  Taster_abfragen();

}

void Taster_abfragen() {
  
  Taster_runter = digitalRead(7);
  if (Taster_runter != letzterStatus_runter) {
    if (Taster_runter == HIGH) { 
      Umschalten = true;
      if (Menuestatus >= Menuemax) {
        Menuestatus = 0;
      } 
      else {
        Menuestatus++;
      } 
    }
    else {
      Umschalten = false;
    }
    letzterStatus_runter = Taster_runter;
  }

  Taster_hoch = digitalRead(6);
  if (Taster_hoch != letzterStatus_hoch) {
    if (Taster_hoch == HIGH) {
      Umschalten = true;
      if (Menuestatus <= 0) {
        Menuestatus = Menuemax;
      }
      else {
      Menuestatus--;
      }
    }
    else {
      Umschalten = false;
    }
    letzterStatus_hoch = Taster_hoch;
  }
  
 switch(Menuestatus) {
  case 0:    // Standard
    lcd.setCursor(0, 2);
    lcd.print(menuItems[0]);
    lcd.setCursor(0, 3);
    lcd.print(menuItems[1]);
    break;
  case 1:
    lcd.setCursor(0, 2);
    lcd.print(menuItems[1]);
    lcd.setCursor(0, 3);
    lcd.print(menuItems[2]);  
    break;
  case 2:
    lcd.setCursor(0, 2);
    lcd.print(menuItems[2]);
    lcd.setCursor(0, 3);
    lcd.print(menuItems[3]);
    break;
  case 3:
    lcd.setCursor(0, 2);
    lcd.print(menuItems[3]);
    lcd.setCursor(0, 3);
    lcd.print(menuItems[0]);
    break;
  }
}

void default_screen() {

 // Ersten beiden Zeilen darstellen:
  lcd.clear();                       // LCD löschen          
  lcd.setCursor(0, 0);               // Cursor auf position 0,0
  lcd.print("Caferacer-Forum.de");     // Nachricht auf LCD darstellen
  lcd.setCursor(0, 1);
  lcd.print("Beispielprojekt");
}
Die ersten beiden Zeilen bleiben stehen und per Taster/Knöpfe/Wasauchimmer kann man die beiden unteren Zeilen hoch- und runterscrollen. Pull-Down-Widerstände (10k) nicht vergessen ;)

Lieben Gruß

Roland

Benutzeravatar
NyFAZ
Beiträge: 289
Registriert: 2. Nov 2016
Motorrad::  
BMW R80
KTM LC400 Mil
Wohnort: Braunschweig

Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM et

Beitrag von NyFAZ »

Hallo nochmal an alle...

Ich habe da noch einige Fragen auf Lager, passend zu diesem Thema.

Für meine CX500:
Kann ich den originalen Wassertemperaturfühler weiter verwenden?
Welchen Öltemperaturfühler habt ihr verwendet, an der Ablassschraube?
Könnte ich die Arduino-Sketche dazu mal sichten, die ihr sicher schon lange optimiert habt?

Eigentlich habe ich vor, zwei Oldschool-Leuchten (grün) zu verbauen. Die eine gibt grünes Licht bei Wassertemperatur i.O., die andere wenn Öl warm genug. Bei Zustand "alles grün" kann man Vollgas geben :grinsen1: .
Für das Hauptinstrument habe ich einen alten Drehzalmesser (d=110mm), angeblich von einer Ducati Pantah.
Tacho soll als OLED sehr unauffällig irgendwo "weg", mit der Option Wasser- und Öltemperatur anzeigen zu lassen.

Das Moped ist zwar noch komplett auseinander, aber irgendwo muss ich ja anfangen. Montag geht die Mail wegen Heckloop erst an den TÜV raus. Vorher will ich den nicht bearbeiten.

Liebe Grüße, Roland

Benutzeravatar
Emil1957
Beiträge: 1171
Registriert: 23. Mär 2016
Motorrad:: Honda CB 350K4 Bj. 1973, Jawonda-Gespann (Jawa mit CB450N-Motor und anderen Japan-Teilen), Honda CB250K im Laverda 750SFC Stil (im Aufbau)
Wohnort: Köln

Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM et

Beitrag von Emil1957 »

GalosGarage hat geschrieben:ich hab mal geschaut, wo man den preiswert herbekommt.

die preise driften ja emens auseinander.


http://www.ebay.de/itm/2pcs-IRGB14C40L- ... SwLF1X5gIR


falls das von interesse ist.

galo

edit fragt: was haste da für ein display vorgesehen?

vermutlich mit I2C schnittstelle....
Ich hab meine IRGB14C40L bei Conrad gekauft (1,89 € pro Stück).

Zum Display: Ich hab zuerst eins mit I2C Schnittstelle verwendet. In meiner "virtuellen Testumgebung" hat das aber zu unerklärlichen "Zündaussetzern" geführt (siehe auch meinen Beitrag vom 6.8.2016 in diesem Thread). Nach langen Suchen bin ich dann darauf gekommen, dass das am I2C Display lag. Die Bibliothek, die für I2C benötigt wird, benutzt offensichtlich einen Timer mit gleichem "Prescaler" wie ich. Nachdem ich ein Display mit "klassischer" serieller Schnittstelle (leider teurer und schwerer zu bekommen als I2C) verwendet habe, waren die Probleme verschwunden.
Grüße

Emil

Der Worte sind genug gewechselt,
Laßt mich auch endlich Taten sehn!
Indes ihr Komplimente drechselt,
Kann etwas Nützliches geschehn.

(Johann Wolfgang von Goethe: Faust: Eine Tragödie)

Benutzeravatar
GalosGarage
Beiträge: 6104
Registriert: 22. Aug 2013
Motorrad:: Ducati ST2 Umbau ( 9.5 )
Cagiva Alazzurra (Caffè Corretto) im Aufbau
digitaler Umbau Ducati 750ss (emozione) später mal
Cagiva-Duc-BMW Mix (Quattro Stagioni) im Aufbau
Wohnort: 41564 Kaarst

Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM et

Beitrag von GalosGarage »

toll, das sich noch jemand dazu gesellt hat. .daumen-h1:

nein, in der sache hab ich bis dato nix mehr unternommen.
andere baustellen, die priorität haben.
leider nix ums moped.

das einzige was ich voran getrieben habe , ist die türsprechanlage über DECT mit RFID türöffnung, display und anbindung an die fritzbox.

als tempgeber kannste fast jeden geber nehmen. musst halt nur die werte kennen.
deswegen schmeiss ich in der sache alles originale raus u erstzt die dinger durch geber, deren werte ich kenne.
schlussendlich arbeiten die alle als spannungsteiler.

öl und wasser temp hab ich bei mir auch schon als RGB realisiert.

https://get.google.com/albumarchive/111 ... zZfl8bvEdg

https://get.google.com/albumarchive/111 ... t-1SBKmmd7

https://get.google.com/albumarchive/111 ... 4WxWu2GAGN


galo
Projekte:

9.5
Quattro Stagioni (abgebrochen)
Caffè Corretto
Emozione
Ducati 750SSie (noch keine Idee)
Cagiva SST 250 (noch keine Idee)

Benutzeravatar
NyFAZ
Beiträge: 289
Registriert: 2. Nov 2016
Motorrad::  
BMW R80
KTM LC400 Mil
Wohnort: Braunschweig

Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM et

Beitrag von NyFAZ »

Nette Sache mit RGB, ich mag es etwas "rustikaler".
Deinen Sketch dazu magst Du noch zeigen?

LG Roland

Benutzeravatar
GalosGarage
Beiträge: 6104
Registriert: 22. Aug 2013
Motorrad:: Ducati ST2 Umbau ( 9.5 )
Cagiva Alazzurra (Caffè Corretto) im Aufbau
digitaler Umbau Ducati 750ss (emozione) später mal
Cagiva-Duc-BMW Mix (Quattro Stagioni) im Aufbau
Wohnort: 41564 Kaarst

Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM et

Beitrag von GalosGarage »

mit herkömmlichen glühobst wirste das wohl nicht so ohne weiteres hinbekommen.
setz doch ne RGB in ein gehäuse einer normalen anzeige.

wasser:
bei mir ist das blau bis 50°
51 bis 70° grün
dann bis 98° aus, danach rot.

ab 98° läuft bei mir der ventilator vom kühler an.
hab ich eprom vom steuergerät von 107° auf 98° gesetzt. :mrgreen:

öl
blau bis 50°
51 bis 70° grün
drüber aus
ab 120°rot
ab 140° rot blinkend


wird aber aufgrund der wasserkühlung nicht erreicht.

ist eher für luftgekühlte motoren interessant, die höheren temperaturen.

bei den sensoren muss normalerweise der b kuofizient einbezogen werden und die gleichung nach steinhart-hard angewandt werden.

https://de.wikipedia.org/wiki/Steinhart-Hart-Gleichung

hab ich aber bei der RGB vairante drauf verzichtet.
in der LCD variante doch sehr wohl eingebaut.


aber :respekt: , als laie mal eben so nen sketch zu schreiben.

bin ja auch nur laie. hab vor 3 jahren erst damit angefangen.

edit: was vergessen.

die RGB's dimmen über nen LDR bei dunkelheit per PWM runter, damit sie nbicht blenden. :wink:
Projekte:

9.5
Quattro Stagioni (abgebrochen)
Caffè Corretto
Emozione
Ducati 750SSie (noch keine Idee)
Cagiva SST 250 (noch keine Idee)

Benutzeravatar
NyFAZ
Beiträge: 289
Registriert: 2. Nov 2016
Motorrad::  
BMW R80
KTM LC400 Mil
Wohnort: Braunschweig

Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM et

Beitrag von NyFAZ »

Hallo Galo,

die Materialkonstante lässt sich einfach durch zwei Messergebnisse des Temperaturfühlers errechnen.
Idealer Weise im Dateblatt des Fühlers angegeben. Für den Arduino habe ich schon Code parat.
Nur noch mal bei den Honda-Spezies reinschauen ob das schon jemand mit dem vorhandenen Temperaturfühler gemacht hat. Mit dem Wassertemperaturwert könnte ich meinen Lüfter der CX sicher auch ansteuern. Schöne Hysterese rein und gut ;)

LG Roland

Benutzeravatar
Emil1957
Beiträge: 1171
Registriert: 23. Mär 2016
Motorrad:: Honda CB 350K4 Bj. 1973, Jawonda-Gespann (Jawa mit CB450N-Motor und anderen Japan-Teilen), Honda CB250K im Laverda 750SFC Stil (im Aufbau)
Wohnort: Köln

Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM et

Beitrag von Emil1957 »

Hallo,

hier mal die ersten Platinen-Entwürfe für die elektronische Zündung. Ich hab mich entschlossen, das Steuermodul (mit dem Arduino) und die "Endstufen" (mit den Leistungstransistoren) auf zwei separate Platinen aufzuteilen. Das hat den Vorteil, dass ich z.B. Änderungen am Steuermodul machen kann (z.B. anderen Prozessor als der Nano), ohne dass das gesamte Konzept angepasst werden muss.

Ich muss dazu sagen, dass ich noch nie eine Platine entworfen habe. Daher habe ich für das Layout eine Experimenierplatine verwendet ("stripboard"), auf der aber auch einige Drähte zur Verbindung der einzelnen Leiterbahnen notwendig waren (die bunten "Würste"), aber auch Unterbrechnungen der Leiterbahnen.

Steuermodul
8918
Oben links ist die 12 V-Stromversorgung, die über ein step-down-Modul (unterhalb der Platine platziert) auf 5 V gebracht wird. Ich hab mir das folgende Modul bestellt: http://www.ebay.de/itm/391441365106. Das hat den Vorteil, dass es von den Maßen genau unter die Platine passt. Außerdem ist es komplett vergossen.
An die Schraubklemmen unten links werden die Verbindungskabel zu den beiden Endstufen angeschlossen.

Unter dem Arduino sind natürlich alle Leiterbahnen unterbrochen.

Endstufe
8919
Dies entspricht im Prinzip der "Pandista-Vorlage", nur um den Optokoppler ergänzt.
Zwei Module (für meinen Zwei-Zylindermotor) passen in ein ca. 52 x 38 x 31 mm (L x B x H) großes Aluminium-Gehäuse, das gleichzeitig als Kühlkörper dient.
Grüße

Emil

Der Worte sind genug gewechselt,
Laßt mich auch endlich Taten sehn!
Indes ihr Komplimente drechselt,
Kann etwas Nützliches geschehn.

(Johann Wolfgang von Goethe: Faust: Eine Tragödie)

Schraubnix

Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM et

Beitrag von Schraubnix »

Hi

N Platinenlayout kannste mit eagle erstellen .

https://cadsoft.io/de/

Ein Platinenlayout auf eine Platine bringen kannste mit Transferfolie , geht sehr einfach ( aufbügeln ) .

http://thomaspfeifer.net/platinen_aetzen.htm

Antworten

Zurück zu „Elektrik/Beleuchtung“

Kickstarter Classics