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.

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.