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
EnJay
Beiträge: 1318
Registriert: 14. Mai 2014
Motorrad:: GPZ 550 Bj88 -> cafed
Wohnort: Waltrop

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

Beitrag von EnJay »

Ich hatte für meinen Tacho was ähnliches fertiges gesucht gehabt... leider war das meiste aufwändiger zu verstehen und zu implementieren als einfach die Idee mit dem Zähler zu nehmen und selber zu schreiben.
Aber auf jeden Fall solltest du da Ideen bekommen wie man sowas generell machen kann.
Mein Umbauthread - GPz 550 zum Cafe Racer
http://www.caferacer-forum.de/viewtopic.php?f=97&t=5206

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 »

Emil1957 hat geschrieben:
GalosGarage hat geschrieben: emil:
um was zu sehn, muss man im honda-board angemeldet sein.... :(
mit welchem arduino hast du das verwirklicht?
Sorry, hab ich nicht dran gedacht. Werde die Bilder heute abend mal hier posten.

Der erste Prototyp war ein Arduino UNO, bin jetzt aber (aus Platzgründen) auf einen Sparkfun Pro Micro (bzw. Clon) umgestiegen.
Hier wie versprochen einige weitere Informationen:

Dazu habe ich mal ein paar Screenshots von meinem Soundkarten-Oszillografen-Programm gemacht, an denen ich das Prinzip erklären möchte.

7487
Das erste Bild zeigt einen (simulierten) 360°-Twin bei 6000 Upm. In diesem Fall wäre auf der Nockenwelle ein halbmondförmige Steuerscheibe montiert, die einen Magnetfluss zwischen Halbgeber und Magnet (beide in einer Einheit, siehe z.B. http://www.hallsensors.de/Hall-Vane.htm) entweder ermöglicht oder sperrt. Die Steuerscheibe wird so montiert, dass der Halbmond gerade anfängt sich über den Sensor zu schieben, wenn sich der erste Zylinder im unteren Totpunkt befindet. Die grüne Kurve ist das vom Hallgeber empfangene Signal, d.h. das abfallende Signal kurz hinter 0 Sek. liefert dem Arduino die Information "1. Zylinder im UT". In meinem theotischen Test wird das Signal (noch) nicht von einem Hallgeber, sondern einem separaten Funktionsgenerator-Programm erzeugt, mit dem unterschiedliche Signalformen auf den Lautsprecherkanal des PC (der dann in den Arduino eingespeist wird) erzeugt werden können.

Wenn die abfallende Flanke erkannt wird, aktiviert das Programm einen Timer, dessen "Laufzeit" so berechnet ist, dass er zu einem bestimmten Zeipunkt den mit der betreffenden Zündspule verbundenen Arduino-Pin auf HIGH schaltet (was dem Schließen der Zündkontakte entspricht), das ist der Anstieg der roten Kurve=Ausgabekanal bei ca. 2,6 ms. Dieser "bestimmte Zeitpunkt" hängt von dem aus der Zündkurve interpolierten Zündwinkel zu der momentanen Umdrehungszahl ab. Genauer gesagt wird intern die Zeit gemessen, die für eine halbe Umdrehung der Nockenwelle benötigt wird (anhand der Zeitabstände zwischen den Flanken der grünen Kurve). Nach einer (wieder von einem Timer gesteuerten) Ladezeit (dwell time) wird der Ausgabe-Pin wieder auf LOW gesetzt (was dem Öffnen der Zündkontakte entspricht), was wiederum über die Zündelektronik dafür sorgt, dass an der Zündkerze zum richtigen Zeitpunkt ein Funken entsteht (also bei ca. 4 ms).

Wenn dann der zweite Zylinder im UT steht, kann wieder ein Magnetfeld am Hallsensor gemessen werden (ansteigende Flanke bei ca. 10 ms) und das ganze läuft dann für den zweiten Zylinder genauso ab.

Der Grafik überlagert ist ein Fenster eines separaten PC-Programmes, das ich mir geschrieben habe, um kontrollieren zu können, ob der Arduino das auch richtig macht.

Die zweite Grafik zeigt das gleiche bei 9000 Upm:
7488
Man sieht, dass die steigende Flanke der roten Kurve ("Spulensignal") jetzt näher an die Flanke der grünen Kurve gewandert ist. Das kommt daher, dass (wegen der höheren Umdrehungszahl bei gleichem Zündwinkel) die "delay time" kürzer werden muss, damit zum richtigen Zeitpunkt gezündet wird. Bei noch höheren Drehzahlen muss daher die Ladezeit der Spulen verkürzt werden, da andernfalls die "rote Flanke" eigentlich vor der grünen liegen müsste (was aber nicht geht). Bei meiner Honda wäre das aber erst dann der Fall, wenn der Drehzahlmesser schon im roten Bereich ist.

Hier noch ein Beispiel für einen 180°-Twin bei 9000 Upm:
7486
Hier muss eine andere, "viertelmondförmige" Steuerscheibe auf der Nockenwelle zum Einsatz kommen, um der asymetrischen Zündcharakteristik Rechnung zu tragen. Entsprechend musste für den Test auch ein Rechtecksignal im Verhältnis 3:1 eingespeist werden.
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)

Pepe0405
Beiträge: 6
Registriert: 1. Mai 2016
Motorrad:: FZR 600 3he "Streetfighter" Bj. 89

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

Beitrag von Pepe0405 »

Hast jemand der dir das Kästchen druckt? Für mich ist das 5min Arbeit das zu zeichnen, Drucker auch vorhanden aber nur begrenzte Farbauswaht :grin: Giftgrün "halbtransparent", Klar "halbtransparent", Schwarz, Weis und ... Schweinchen Rosa :dontknow: :lachen1:

Benutzeravatar
GalosGarage
Beiträge: 6064
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 »

bis dato noch nicht. schwarz wäre ideal.
wenn ich da mal auf dich zurückkommen darf?

hab zwar ein kästle gefunden welches fast passt, aber eben nur fast.
kann man nehmen, aber halt als zwischenlösung.

emil: klasse sache, weiter so. :clap: .daumen-h1:
würd ich gern mehr von lesen.

ich hab gerade wenig zeit für solche sachen. :cry:
Projekte:

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

Benutzeravatar
GalosGarage
Beiträge: 6064
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 »

gibts hier insgesamt was neues?

ich hab angefangen, mir aus einem ATX netzteil ein labornetzgerät zu bauen.

rückwand ausgeschnitten, arduino mit terminalboard u relaiskarte für den softstart verbaut.
wird am pc über die einschalttaste vorne gemacht.

Bild

hier der arduino u drunter die klemmleiste für masse u 5Volt sb (stand by) violette leitung.

Bild

relaiskarte für den softstart. ist die grüne leitung am netzteil.

Bild

hier die frontblende:

unterm display, die regelbare spannung.
rechts die buchsen für 3,3V, 5V, 5Vsb, 12V, -5V, und -12V
die led's sind für Standby, betrieb und spannung ok.
der USB anschluss , dient nur zum programmieren, die versorgung kommt dann über usb vom PC.

Bild

die rückseite

Bild

fortsetzung folgt...
Zuletzt geändert von GalosGarage am 5. Aug 2016, insgesamt 1-mal geändert.
Projekte:

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

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:gibts hier insgesamt was neues?
Das sieht ja schon richtig gut aus .daumen-h1: . Bei mir gibt es auch was neues, hab mir für mein Projekt mal einen "Prüfstand" gebaut (mit freundlicher Unterstützung der Firma Bosch :mrgreen:).

8014

Zu sehen ist der Hall-Sensor (das schwarze Ding auf dem Sockel) und die Steuerscheibe (an der "Bosch-Nockenwelle"). Damit werde ich in den nächsten Tagen mal etwas realistischere Tests (zumindet was die Signalerzeugung betrifft) durchführen. Werde von den Ergebnisse berichten.
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: 6064
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 »

so, erstmal in meinem post, das foto getauscht... :roll:

goile sache. ich liebe solche versuchsaufbauten. .daumen-h1:

berichte bitte weiter. mich interessiert das.

ich hab was ähnliches gebaut, allerdings mit nem scheibenwischermotor.
ich möchte das langsam nachverfolgen.
ich möchte hallgeber bauen, die kompatibel zur ignitech sind, welche mit induktionsgebern arbeitet.
Projekte:

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

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,

habe nun die ersten Test mit einer halbwegs realistischen Anregung (durch Bohrmaschine angetriebene Steuerscheibe und Hallsensor) gemacht. Hier mal ein Bild von meinem PC-Oszilloskop bei 2800 RPM (was 5600 RPM an der KW entspricht):

8015

Zum Vergleich habe ich dann auch noch eine theoretische Messung gemacht (d.h. angeregt durch selbst geschriebenen Signalgenerator, der das asymmetischen Rechteck-Signal über den Mikrofon-Ausgang des PC's in den Arduiono einspeist)

8016

Die beiden Abbildungen sehen zwar nicht identisch, aber ziemlich ähnlich aus (was mich darin bestärkt, dass ich nicht ganz falsch liege :grinsen1: ). Mögliche Ursachen für die kleinen Abweichungen sind:
-Ungenauigkeiten bei der Herstellung der Steuerscheibe (habe ich mit Blechschere ausgeschnitten und mit Feile nachgearbeitet)
-Die Umdrehungszahl wird über ein LCD ausgegeben, allerdings wird das nicht kontinuierlich, sondern gemittelt über 128 Umdrehungen der Nockenwelle ausgegeben (128 deshalb, weil ich dann durch einfaches Bitshifting die notwendige Division machen kann). Es kann also sein, dass die Umdrehungszahl der Bohrmaschine zum Zeitpunkt des Screenshots eine geringfügig andere war, als die auf dem LCD angezeigte (die ich dann wieder für die Konfiguration des Signalgenerators verwendet habe).

Insgesamt bin ich aber schon ganz zufrieden mit dem Ergebnis, werde das aber noch weiter untersuchen.

PS: Noch ein Hinweis zur LCD-Ausgabe
Zuerst hatte ich ein LCD mit I2C-Schnittstelle verwendet. Bei meinen Tests hatte ich aber festgestellt, dass zum einen die angezeigte Umdrehungszahl nicht stimmte, zum anderen traten am Oszilloskop sporadische Sprünge im Ausgangssignal auf ("virtuelle Zündaussetzer"). Zuerst habe ich einen Fehler in meinem Code vermutet, als ich aber testweise die Ausgabe mal über die normale serielle Schnittstelle am PC gemacht habe, stimmte plötzlich alles. Da lag natürlich der Verdacht nahe, dass das LCD die Ursache war. Ich habe dann tätsächlich auch im Internet einen Beitrag gefunden, der ein ähliches Verhalten beschrieb. Offensichtlich verwendet die IC2-Bibliothek eine Timer mit gleichem "Prescaler" wie ich (was nach meinem Verständnis die zeitliche Auflösung/Genauigkeit des Timers steuert). Im besagten Beitrag konnte das Problem behoben werden, indem der Prescaler in der Anwendung geändert wurde (die Auflösung also ungenauer wurde). Das kam für mich aber nicht in Frage, ich bin daher auf ein LCD umgestiegen, das "klassisch" über RS232 angesprochen wird. Damit klappt es einwandfrei, allerdings sind die Dinger schwerer zu bekommen (und auch teurer) als die I2C-LCDs. Ich hatte allerdings Glück, dass ich ein Exemplar für 1€ ersteigern konnte. Mein Fazit daher: Hände weg von I2C bei zeitkritischen Anwendungen mit Timern.
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: 6064
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 »

also, echt klasse. :clap:

wird das evtl. die caferacer-forum universal-zündanlage? :grinsen1:
Projekte:

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

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:also, echt klasse. :clap:

wird das evtl. die caferacer-forum universal-zündanlage? :grinsen1:
Was Ein- oder Zwei-Zylindermotoren betrifft, ist das gar nicht so falsch. Singles, Parallel- und Gegenläufer-Twin werden jetzt schon unterstützt (Motor-Parameter können über Einstellungen in externe Datei ziemlich einfach geändert werden). Für V-Motoren müssten aber einige Ergänzungen im Code gemacht werden (für Berechnung der Timer-Zeiten und der Umdrehungszeit).

Über eine Erweiterung auf 4-Zylinder-Motoren habe ich mir noch keine Gedanken gemacht. Zumindest für Reihen-Motoren sollte das aber nicht so schwierig sein.

Für die nächste Zeit habe ich folgendes vor:
-Auch "Nachzündungswinkel" ermöglichen
Wenn mit dem Kickstarter angelassen wird, ist es evtl. günstiger, dass die Zündung bei ganz niedrigen Umdrehungen (also direkt nach dem Betätigen des Kickstarters) erst kurz nach dem OT stattfindet. Das erfordert aber einige Änderungen im Konzept, nicht so sehr im Programm, sondern eher bei der Einstellung der Steuerscheibe. Der "Nullpunkt" des Systems kann dann nicht mehr der UT sein (d.h. Beginn des Verdichtungstaktes), sondern muss um 90 Richtung OT verschoben werden. Das ist grundsätzlich kein Problem, nur können dann die vorhandenen Kurbelwellen-Markierungen nicht mehr zum Einstellen des Systems verwendet werden. Man muss sich halt eigene Markierungen schaffen (genau zwischen T und LT-Markierung).

-Umzug auf "echte" Platine
Zur Zeit läuft das System noch auf eine Breadboard (Steckbrett). Neben dem Arduino sind nur relativ wenige zusätzliche Bauteile notwendig, so das das Platinenlayout nicht allzu kompliziert werden wird.
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)

Antworten

Zurück zu „Elektrik/Beleuchtung“

Sloping Wheels