Hallo zusammen,
erstmal danke an Emil für das Entwickeln des Codes und auch dafür das du das hier zur Verfügung gestellt hast! Echt klasse!
Da du oft gesagt hast das du gerne Rückmeldungen der Projekte in denen dein Konzept eingesetzt wird haben willst und einige Ansätze auch für Motorräder interessant sind, werde ich hier jeden meiner Fortschritte dokumentieren.
Ich weis das hier ein Motorrad Forum ist, ein Kart-Rennmotor ist aber absolut nichts anderes wie ein Motorrad Motor - er funktioniert genauso.
Ich war am Wochenende nicht untätig und habe mir Anhand des Platinen-Layouts welches Emil veröffentlicht hat eine Platine für einen 1-Zylinder gebaut und diese gleich mal bestellt. Da ich vor habe einen Quickshifter zu implementieren habe ich noch 2 I/O Pins auf eine Schraubklemme gelegt.
Das Konzept ist Folgendes:
Ich habe mich dazu entschieden eine 180 Gard Signalscheibe zu verwenden da ich so OT und UT einfach bestimmen kann. (UT steigende flanke, OT fallende Flanke) Hierzu werde ich ein Signalrad drehen bzw. Fräsen welches auf den Stumpf meiner Kurbelwelle passt. Dieses muss dann dementsprechend gewuchtet werden, da ich mir bei 15.000 Umdrehungen sonnst jedes Lager zerstören würde.
Der QS selbst wird Ausgelagert auf mein "Zentral Steuergerät" da ich den Pro Micro mit der Zündung nicht unnötig belasten will. Über einen I/O Pin wird dann also einfach ein Interrupt ausgelöst welcher die Zündung anhält während über den I/O ein Signal kommt. Die Auswertung des Sensorsignals und die Definition der Unterbrechungszeiten erfolgt über das "Zentral Steuergerät"
Das Zentralsteuergerät wertet noch viele andere Sensoren aus, Wassertemperatur, Abgastemperatur... usw. sollte einer dieser Werte in einen kritischen Bereich kommen, wird auf dem Zündungs-Arduino die Safety Map ausgewählt, sozusagen ein Motor Notlauf. In dieser Map wird dementsprechend kaum Vorzündung gefahren und die Drehzahl ist auf 6000 U/min begrenzt.
An die Schnittstelle für den Map-Wahlschalter ist das Zentralsteuergerät angeschlossen welches so den Map Schalter simuliert. Ich hatte an eine Anbindung via SPI gedacht, diese aber verworfen da die Kommunikation via SPI in der Zündung zu lange gedauert hätte.
Tests am Wochenende:
Ich habe den Code dementsprechend an meinen Motor und meine Signalscheibe angepasst und auf einem Testaufbau ausgeführt.
Das Kennfeld läuft beim Test durchgehend mit 7 Grad Vorzündung.
Testaufbau: Arduino Pro Micro verbunden mit einem Funktionsgenerator und einem Oszilloskop. Mit dem Funktionsgenerator kann ich sicherstellen das ich keine Abweichungen im Hall-Signal habe.
Habe dann mal mit einer Drehzahl von 2000 U/min getestet, und gerechnet ob die Zeit vor OT stimmt... und siehe das es passt perfekt. Der Zündzeitpunkt ist genau 7 Grad vor OT.
Dann habe ich direkt mal bei 15.000 U/min getestet (max. Drehzahl meines Motors) was 250 Hz entsprechen würde. Also Funktionsgenerator auf 250 Hz eingestellt, Oszi ran und wieder gerechnet. Siehe da, auch hier passt der Zündzeitpunkt wieder nahezu perfekt.
Als nächstes werde ich wohl die Anpassungen für den QS im Code vornehmen und den Sensor testen. Als Sensor hatte ich an den Cordona GP Switch PQ8 ,der ja hier auch schon aufgeführt wurde, gedacht. Der lässt sich bei mir am besten unterbringen und ist auch bezahlbar.
Parallel dazu werde ich wenn Zeit ist das Polrad drehen bzw Fräsen. Wie ich das mit dem Wuchten mache weis ich noch nicht genau, hat hier eventuell jemand eine Idee oder Kontakte?