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.

caferacer-forum.de - Das Forum für Petrolheads, Garagenschrauber, Ölfinger, Frickelracer und Alteisentreiber
Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM etc)
Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM et
Mein Umbauthread - GPz 550 zum Cafe Racer
http://www.caferacer-forum.de/viewtopic.php?f=97&t=5206
http://www.caferacer-forum.de/viewtopic.php?f=97&t=5206
- 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
Hier wie versprochen einige weitere Informationen:Emil1957 hat geschrieben:Sorry, hab ich nicht dran gedacht. Werde die Bilder heute abend mal hier posten.GalosGarage hat geschrieben: emil:
um was zu sehn, muss man im honda-board angemeldet sein....![]()
mit welchem arduino hast du das verwirklicht?
Der erste Prototyp war ein Arduino UNO, bin jetzt aber (aus Platzgründen) auf einen Sparkfun Pro Micro (bzw. Clon) umgestiegen.
Dazu habe ich mal ein paar Screenshots von meinem Soundkarten-Oszillografen-Programm gemacht, an denen ich das Prinzip erklären möchte.
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:
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:
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)
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)
Re: Elektronik Bastelei mit Arduino (Selbstbau Tacho, DZM et
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
Giftgrün "halbtransparent", Klar "halbtransparent", Schwarz, Weis und ... Schweinchen Rosa




- 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
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.

würd ich gern mehr von lesen.
ich hab gerade wenig zeit für solche sachen.
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.


würd ich gern mehr von lesen.
ich hab gerade wenig zeit für solche sachen.

Projekte:
9.5
Quattro Stagioni (abgebrochen)
Caffè Corretto
Emozione
Ducati 750SSie (noch keine Idee)
Cagiva SST 250 (noch keine Idee)
9.5
Quattro Stagioni (abgebrochen)
Caffè Corretto
Emozione
Ducati 750SSie (noch keine Idee)
Cagiva SST 250 (noch keine Idee)
- 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
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.

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

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

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.

die rückseite

fortsetzung folgt...
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.

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

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

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.

die rückseite

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)
9.5
Quattro Stagioni (abgebrochen)
Caffè Corretto
Emozione
Ducati 750SSie (noch keine Idee)
Cagiva SST 250 (noch keine Idee)
- 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
Das sieht ja schon richtig gut ausGalosGarage hat geschrieben:gibts hier insgesamt was neues?


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)
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)
- 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
so, erstmal in meinem post, das foto getauscht...
goile sache. ich liebe solche versuchsaufbauten.
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.

goile sache. ich liebe solche versuchsaufbauten.

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)
9.5
Quattro Stagioni (abgebrochen)
Caffè Corretto
Emozione
Ducati 750SSie (noch keine Idee)
Cagiva SST 250 (noch keine Idee)
- 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
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):

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)

Die beiden Abbildungen sehen zwar nicht identisch, aber ziemlich ähnlich aus (was mich darin bestärkt, dass ich nicht ganz falsch liege
). 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.
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):
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)
Die beiden Abbildungen sehen zwar nicht identisch, aber ziemlich ähnlich aus (was mich darin bestärkt, dass ich nicht ganz falsch liege

-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)
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)
- 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
also, echt klasse.
wird das evtl. die caferacer-forum universal-zündanlage?

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

Projekte:
9.5
Quattro Stagioni (abgebrochen)
Caffè Corretto
Emozione
Ducati 750SSie (noch keine Idee)
Cagiva SST 250 (noch keine Idee)
9.5
Quattro Stagioni (abgebrochen)
Caffè Corretto
Emozione
Ducati 750SSie (noch keine Idee)
Cagiva SST 250 (noch keine Idee)
- 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
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).GalosGarage hat geschrieben:also, echt klasse.![]()
wird das evtl. die caferacer-forum universal-zündanlage?
Ü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)
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)