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

Elektronische Zündung auf Arduino-Basis

Technische Fragen und Antworten, Tipps und Tricks für Profis und Bastler
Benutzeravatar
Emil1957
Beiträge: 1121
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: Elektronische Zündung auf Arduino-Basis

Beitrag von Emil1957 »

Sorry, versehentlicher Post.
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: 4960
Registriert: 22. Aug 2013
Motorrad:: Ducati ST2 Umbau ( 9½ )
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: Elektronische Zündung auf Arduino-Basis

Beitrag von GalosGarage »

Die Vergaser Ducatis haben auch 2 zündgeber (Induktiv), 2 Zündboxen, 2 Zünspulen usw.
Jeder Zylinder hat ne eigene, autarke Zündanlage.
abgegriffen am Lima rotor, der auf der KW sitzt.

bei den i.e.'s siehts anders aus. da wird an ner nebenwelle abgegriffen, (halbe KW Drehzahl).
Hier werden die Zähne an einem Zahnrad gezählt 42, 2 davon sind ausgespart. Der rechner zählt mit und weiss so immer wo die kurbelwelle sich befindet. den rest macht die software.

galo

Benutzeravatar
Emil1957
Beiträge: 1121
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: Elektronische Zündung auf Arduino-Basis

Beitrag von Emil1957 »

GalosGarage hat geschrieben: 1. Dez 2017 Jeder Zylinder hat ne eigene, autarke Zündanlage.
Wär natürlich auch eine elegante Lösung, die in allen Fällen funktionieren würde. Es müsste ja nur ein weiterer Arduino auf die Platine drauf, jeder Zylinder hätte dann seinen eigenen "Rechenknecht". Kostenmäßig spielt das nur eine kleine Rolle (son Arduino ist ja für 4-5€ zu bekommen), allerdings wird die Platine dann natürlich etwas größer. Man könnte dann mit beliebigen Kombinationen bei der Signalaufnahme und der Steuerscheibengeometrie spielen (da die richtige Kombination zu finden, ist aber nicht ganz ohne).

Ich bin aber auch schon weiter mit der Vorverlegung des Hallsensorsignals, Ergebnis in Kürze.
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
Emil1957
Beiträge: 1121
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: Elektronische Zündung auf Arduino-Basis

Beitrag von Emil1957 »

Ich wollte mich zum neuen Jahr mal mit neuen Erkenntnissen zum Projekt melden. Das betrifft im wesentlichen die Software. Beim bisherigen Ansatz ergab sich ja das Problem, dass bei hohen Umdrehungszahlen die Ladezeit der Spule reduziert werden musste, damit der ganze Vorgang (Signal vom Hallsensor, evtl. Wartenzeit, Laden der Spule, Zündung) innerhalb einer halben KW-Umdrehung (also einem Takt) erfolgen konnte. Diese Einschränkung kann man aber aufbrechen, wenn man sich von dem Dogma "Hallsensor muss am UT feuern" verabschiedet und das ganze etwas nach vorne (also z.B. in die Mitte des 1. Taktes verlagert). Allerdings werden die Verhältnisse in bestimmten Fällen dann schnell unübersichtlich.
Ich habe mir daher die einzelnen Ereignisse, die bei der Zündung eine Rolle spielen, für die verschiedenen Motor-Konstellationen (z.B. Paralleltwin, Gegenläufer-Twin, 90°-Twin) mal in Form von Excel-Diagrammen dargestellt. Ich will heute mal mit dem "gutmütigsten Kandidaten", dem Paralleltwin mit 360° Zündversatz und Signalaufnahme an der Nockenwelle beginnen.
Zündfolge-360-Grad-Twin-NW.png
Die rot umrandeten Bereiche stellen die einzelnen Takte der beiden Zylinder dar, die Farben sind in der Abbildung erläutert.

Für alle folgenden Versuche mit meiner Schaltung habe ich mit einer Standard-Ladezeit der Spule von 3500 µs gearbeitet. Die folgende Abbildung (8571 UPM, Hallsignal am UT) zeigt aber, dass bei höheren Drehzahlen diese Ladezeit nicht realisiert werden kann. Damit die Zündung am berechneten Zeitpunkt (Frühzündung vor OT) erfolgen kann, muss sie vom Programm auf ca. 2700 µs reduziert werden ("Rampe" der roten Kurve). Die rot gestrichelten Linien zeigen die Postion des UT bzw. OT an.
360_8571_nw_bt2.jpg
Das Problem lässt sich aber umgehen, wenn man die Steuerscheibe so positioniert, dass der Hallsensor bereits in der Mitte des 1. Taktes feuert. In der folgenden Abbildung sieht man deutlich, dass man dadurch entscheidende Zeit gewinnt und nun die volle Ladezeit von 3500 µs möglich ist. Es ist sogar noch deutlich Luft nach oben, 5000 µs wären ohne Probleme möglich.
360_8571_nw_mt1.jpg
Zu beachten ist, dass nun die ansteigende/absteigende Flanke der grünen Kurve (die dem Signal am Hallsensor entspricht) nicht mehr identisch mit dem UT bzw. OT ist (was in der vorherigen Abb. noch der Fall war). Deren Postion ist wieder durch die rot gestrichelten Linien dargestellt.

Morgen geht es weiter mit der Signalaufnahme an der Kurbelwelle.
Du musst registriert und eingeloggt sein, um die Dateianhänge dieses Beitrags sehen zu können.
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
Emil1957
Beiträge: 1121
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: Elektronische Zündung auf Arduino-Basis

Beitrag von Emil1957 »

Der Vollständigkeit halber hier mal das Verhalten eines Parallel-Twins bei Signalaufnahme an der Kurbelwelle.
Zündfolge-360-Grad-Twin-KW.png
Im Grunde ist es ähnlich wie bei der Signalaufnahme an der Nockenwelle, aber mit folgenden Unterschieden

-Da die KW doppelt so schnell dreht, ist die Frequenz auch doppelt so hoch

-Da nicht unterschieden werden kann, ob gerade der zweite oder der vierte Takt aktiv ist, muss zwangsweise in beiden Takten gezündet werden ("wasted spark" im Auspufftakt), was zur Folge hat, dass beide Zündkerzen simultan zünden

-Für die Ermittlung des "Zeitnullpunktes" (d.h. zyklischer Beginn eines Zündablaufes) wird nur die ansteigende Flanke des Hallsensor-Signales genutzt, die abfallende Flanke wird nur zur genaueren Messung der Umdrehungszeit verwendet

Am Oszilloskop sieht das dann (bei 8571 UPM, Hallsensor feuert am UT) so aus
360_8571_kw_bt2.jpg
Auch hier muss die eigentlich auf 3500 µs eingestellte Ladezeit auf ca. 2700 µs reduziert werden, damit der ganze Vorgang noch innerhalb eines Taktes ablaufen kann.

Die Lösung ist aber auch die gleiche wie bei der Signalaufnahme an der NW: Die Steuerscheibe wird so positioniert, dass das Signal vom Hallsensor schon in der Mitte des 1. Takes kommt:
360_8571_kw_mt1.jpg
Dann ist wieder genügend Zeit vorhanden, um die Spule 3500 µs (und sogar länger) zu laden.
Die gestrichelten Linien markieren wieder die Postion des UT bzw. OT. Im Gegensatz zur Signalaufnahme an der Nockenwelle zünden nun beide Kerzen gleichzeitig (abfallende Flanke der roten Kurve), es würde im Prinzip eine Zündspule mit zwei Sekundärausgängen reichen.

In der nächsten Folge kommt dann der Gegenläufer-Twin (180° Zündversatz), da wird es dann deutlich komplexer.
Du musst registriert und eingeloggt sein, um die Dateianhänge dieses Beitrags sehen zu können.
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
Emil1957
Beiträge: 1121
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: Elektronische Zündung auf Arduino-Basis

Beitrag von Emil1957 »

Falls sich jemand fragt, warum ich das so detailliert durchkaue, kommt heute die Auflösung. Der Paralleltwin ist ja (wie in den beiden vorherigen Beiträgen gezeigt) ein recht gutmütiger Zeitgenosse. Die einzelnen Ereignisse während einer Zündfolge (Signal des Hallsensors, Laden der Zündspule, Zünden) laufen da entweder streng sequentiell (Signalaufnahme an der Nockenwelle) oder parallel ab (bei Signalaufnahme an der Kurbelwelle). Dies entsprach auch dem bisherigen Konzept in meinem Programm.

Beim Gegenläufer-Twin (mit 180° Zündversatz) wird es nun etwas komplizierter. Hier der Ablauf bei einer Signalaufnahme an der NW.
Zündfolge-180-Grad-Twin-NW.png
Wenn der Hallsensor (Signalaufnahme an der NW) am UT feuert, läuft noch alles schön der Reihe nach ab. Allerdings muss dann ähnlich wie beim Paralleltwin bei höheren Drehzahlen die Ladezeit reduziert werden, damit der gesamte Zündvorgang innerhalb eines Taktes ablaufen kann (Beispiel bei 8571 UPM, Ladezeit reduziert auf 2700 µs statt 3500 µs, gestrichelte rote Linien zeigen wieder die Position des UT und OT).
180_8571_nw_bt2.jpg
Wenn nun die Steuerscheibe wieder so positioniert wird, dass das Signal vom Hallsensor schon in der Mitte des 1. Taktes kommt (um eine längere Ladezeit zu erreichen), treten aber Probleme auf, die mit dem bisherigen Programmkonzept nicht gelöst werden konnten. Die Ereignisse in beiden Zylindern überschneiden sich nämlich nun, wobei die Art der Überschneidung auch noch von der Drehzahl abhängt (unterer Teil der ersten Grafik). Bei niedrigen Drehzahlen feuert der Hallsensor für den zweiten Zylinder bereits,´bevor die erste Spule geladen wird, bei mittleren Drehzahlen feuert dagegen der Hallsonsor für den zweiten Zylinder innerhalb der Ladezeit für den ersten Zylinder und bei hohen Drehzahlen zündet der erste Zylinder während der Ladezeit des zweiten. Es gab nun drei optionen, dies verarbeiten zu können:

1) Verwendung eines eigenen Timers für jeden Zylinder
Das wäre die einfachste Lösung gewesen, allerdings verfügt der ATmega328 Chip nur über einen für diese Zwecke geeigneten Timer. Diese Option fiel also aus.

2) Verwendung von zwei Arduinos
Bei dieser Option hätte jeder Zylinder sein eigenes Steuermodul (=Arduino) bekommen. Von den Kosten wäre das nicht groß ins Gewicht gefallen, einen Arduino Mini Pro gibt es ja schon für ca. 4€. Allerdings hätte dazu das Platinenlayout geändert werden müssen. Neue Platinen wollte ich aber nicht fertigen lassen (außerdem wäre die Platine dann auch größer geworden).

3) Programmkonzept überarbeiten
Da 1) und 2) nicht in Frage kamen, blieb nur diese Option. Dazu musste ein Teil des Programmcodes komplett überarbeitet werden (hat sich aber gelohnt, wie später noch gezeigt wird). Kernpunkt war ein "Ereignis-Verwalter", der (je nach Motorentyp und Drehzahl) die einzelnen Ereignisse (Hallsignal, Laden der Spule, Zünden) und deren Dauer berechnet und in der korrekten Reihenfolge spechert und abarbeitet.

Hier das Ergebnis für den Gegenläufer-Twin bei 8571 UPM (Signalaufnahme an der NW, Hallsensor feuert in der Mitte des 1. Taktes)
180_8571_nw_mt1.jpg
Die Ladezeit der Spulen braucht nun nicht reduziert zu werden (könnte sogar auf ca. 5000 µs erhöht werden). Dazu eine Anmerkung: In der Grafik sieht man keine "Zündung" der ersten Spule (die dazu gehörende abfallende Flanke der roten Kurve liegt bei ca. 7ms), da sie vom kurz davor beginnenden Ladevorgang der zweiten Spule überdeckt wird. Um das getrennt darzustellen, wäre ein 3-Kanal-Oszilloskop notwendig gewesen.
Du musst registriert und eingeloggt sein, um die Dateianhänge dieses Beitrags sehen zu können.
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
brummbaehr
Beiträge: 938
Registriert: 27. Sep 2016
Motorrad:: Honda CX 500/650
Wohnort: 41836 Hückelhoven
Kontaktdaten:

Re: Elektronische Zündung auf Arduino-Basis

Beitrag von brummbaehr »

Ist das Thema mit dem letzten Post erledigt, oder gestorben, oder kommt da noch was?

Sind die Dateien auf github aktuell?

Benutzeravatar
Endert
Beiträge: 701
Registriert: 26. Mai 2016
Motorrad:: Honda CB 350/400 Four `72
Honda CRF 450 `17
BMW K100 `85
Yamaha TR 1 `82

Re: Elektronische Zündung auf Arduino-Basis

Beitrag von Endert »

Mir ist meine Unterbrecherzündung aufeinmal wieder sympathisch, aber Hut ab vor der Leistung hier.
mit besten Grüßen
Endert #76

Love it, change it or leave it.
Honda CX 500 Eurosport Umbau
Honda CB 350/400 Four Umbau
BMW K100 RS Umbau

bummbummthomas
Beiträge: 1
Registriert: 12. Okt 2019
Motorrad:: BMW

Re: Elektronische Zündung auf Arduino-Basis

Beitrag von bummbummthomas »

Hallo Emil,

zunächst einmal Hut ab vor diesem tollen Beitrag. Ich würde mich sehr über die Zusendung der Unterlagen und der Software für den Nachbau freuen.

Gruß
Thomas

Benutzeravatar
Emil1957
Beiträge: 1121
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: Elektronische Zündung auf Arduino-Basis

Beitrag von Emil1957 »

Kannst Du gerne haben, wäre aber nett, wenn Du ein paar Infos einstellen könntest
-Wer bist Du?
-Was willst Du mit dem Material machen?

Ich frage deshalb: Ich habe das Zeug schon mehreren Interessenten zugeschickt, aber nie irgendeine Rückmeldung bekommen (und sei es nur, dass irgendwas nicht funktioniert).
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“

...cooles Zeug