Elektronische Zündung auf Arduino-Basis
Verfasst: 8. Sep 2017
Hallo,
ich beschäftige mich schon seit einiger Zeit mit der Entwicklung einer elektronischen Zündung auf Arduino-Basis. Ich hab dazu auch schon im allgemeinen Arduino-Thread (viewtopic.php?f=43&t=7451&hilit=arduino&start=130) einige Informationen und Testergebnisse gepostet. Seit dem hat sich lange nichts getan (wegen Schrauberei), aber da das Wetter schlechter und die Tage kürzer werden, braucht man ja eine andere Beschäftigung und da habe ich mich mal wieder dranbegeben und angefangen, eine Platine zu entwerfen. Das ist nun relativ weit fortgeschritten, so dass ich es für sinnvoll betrachte, dazu einen eigenen Thread aufzumachen.
Für diejenigen, die die Beiträge im Arduino-Thread nicht alle lesen wollen, hier nochmal eine kurze Zusammenfassung:
-Hallsensor und geeignete Steuerscheibe (Geometrie hängt von Motortyp ab (1- oder 2-Zylinder, Gegen- oder Gleichläufer)) an Nockenwelle
-Aus den Hallsignalen wird die Umdrehungszeit der Nockenwelle berechnet
-Damit wird in einer gespeicherten Zündkurven-Tabelle die Vorzündungszeit berechnet
-Über einen programmierten Timer wird dann die Vorzündungszeit minus "Dwell time" abgewartet (nach Hallsignal)
-Dann wird die Zündspule "geladen" (mit definierter "dwell time" von 1500 oder 1000 µs, hängt von Umdrehungszahl ab)
-Am Ende der dwell time wird gezündet
-Der Ladevorgang für die Spulen wird durch IRGBs (INSULATED GATE BIPOLAR TRANSISTOR) vom Typ IRGB14C40L gesteuert
-Die Berechnungen finden natürlich im Arduino statt, aus Geschwindigkeitsgründen ist alles in Integer-Arithmetik umgesetzt
-Über einen Taster kann eine von mehreren hinterlegten Zündkurven ausgewählt werden.
Wenn jemand die Schaltung nachbauen möchte: Ich stelle alle Unterlagen (Platinenlayout, Programmcode) gerne zur Verfügung, schickt mir einfach ne PN.
Den unten gezeigten Platinen-Entwurf habe ich mit der Fritzing-Sofware gemacht, leicht zu bedienen und für die Zwecke reichts. Ich muss dazu sagen, dass das mein erster Versuch ist, möglichwerweise ist das Design daher nicht optimal, manche Details sind allerdings gewissen Notwendigkeiten geschuldet (s.u.)
Hier nun eine kurze Beschreibung:
-Der Arduino-Teil und die beiden Endstufen (mit den beiden IRGBs) sind galvanisch durch Optokoppler (PC817) getrennt
-Auf der rechten Platinenseite befinden sich mehrerer Schraubklemmen (5 mm), die wie folgt belegt sind
Oben: -12V
Mitte: Leitungen zum Laden der beiden Zündspulen
Unten: Stromversorgung und Signalleitung für den Hallsensor sowie +12V
-Auf der linken Platinenseite befinden sich zwei Schraubklemmen (3,5 mm), an der unteren kann optional ein Taster (zur Auswahl der Zündkurve) und ein LCD (zur Anzeige, welche Kurve ausgewählt ist und der RPM) angeschlossen werden, an der oberen alternativ eine RGB-LED, an der man über die Farbe die ausgewählte Zündkurve erkennen kann.
Das LCD muss allerdings eines mit UART-Schnittstelle sein, die billigeren mit I2C haben sich in meinen Versuchen als nicht geeignet herausgestellt.
-Die beide LEDs oben links dienen zur Kalibrierung der Steuerscheiben-Position, sie sollen dann aufleuchten, wenn sich der betreffende Zylinder am UT zum Beginn des Verdichtungstaktes befindet.
-Nicht gezeigt ist eine (fertig gekauftes und vergossenes) Step-Down-Modul, das die 12V Bordspannung auf stabile 5V für den Arduino bringt. Das Teil wird später auf den Arduino draufgesetzt. Die beiden Lötpunkte oberhalb der unteren Schraubklemmen versorgen diese Modul mit 12V, an den beiden mit +5V und -5V beschrifteten Lötstellen wird dann die heruntergeregelte Spannung in den Arduino-Kreis eingeleitet.
-Da die beim Laden der Spulen fließenden Ströme für die dünnen Leitungen der Platine gefährlich werden können, werden für die entspechenden Leitungen (die dicken schwarzen Linien) separate Kabel verwendet, die an Pads (die größeren orangenen Flächen) an die Platine gelötet werden.
-Die IRGBs werden wegen der Wärmeableitung am Gehäuse befestigt und ebenfalls über Kabel mit der Platine verbunden.
-Die orangenen Leitungen befinden sich auf der Platinen-Unterseite, die gelben (sind nur zwei) auf der Oberseite
-Die Platinengröße beträgt ca. 75x75 mm
Falls einem Elektronik-Spezialisten noch ein Konstruktionsfehler auffällt, bitte melden.
ich beschäftige mich schon seit einiger Zeit mit der Entwicklung einer elektronischen Zündung auf Arduino-Basis. Ich hab dazu auch schon im allgemeinen Arduino-Thread (viewtopic.php?f=43&t=7451&hilit=arduino&start=130) einige Informationen und Testergebnisse gepostet. Seit dem hat sich lange nichts getan (wegen Schrauberei), aber da das Wetter schlechter und die Tage kürzer werden, braucht man ja eine andere Beschäftigung und da habe ich mich mal wieder dranbegeben und angefangen, eine Platine zu entwerfen. Das ist nun relativ weit fortgeschritten, so dass ich es für sinnvoll betrachte, dazu einen eigenen Thread aufzumachen.
Für diejenigen, die die Beiträge im Arduino-Thread nicht alle lesen wollen, hier nochmal eine kurze Zusammenfassung:
-Hallsensor und geeignete Steuerscheibe (Geometrie hängt von Motortyp ab (1- oder 2-Zylinder, Gegen- oder Gleichläufer)) an Nockenwelle
-Aus den Hallsignalen wird die Umdrehungszeit der Nockenwelle berechnet
-Damit wird in einer gespeicherten Zündkurven-Tabelle die Vorzündungszeit berechnet
-Über einen programmierten Timer wird dann die Vorzündungszeit minus "Dwell time" abgewartet (nach Hallsignal)
-Dann wird die Zündspule "geladen" (mit definierter "dwell time" von 1500 oder 1000 µs, hängt von Umdrehungszahl ab)
-Am Ende der dwell time wird gezündet
-Der Ladevorgang für die Spulen wird durch IRGBs (INSULATED GATE BIPOLAR TRANSISTOR) vom Typ IRGB14C40L gesteuert
-Die Berechnungen finden natürlich im Arduino statt, aus Geschwindigkeitsgründen ist alles in Integer-Arithmetik umgesetzt
-Über einen Taster kann eine von mehreren hinterlegten Zündkurven ausgewählt werden.
Wenn jemand die Schaltung nachbauen möchte: Ich stelle alle Unterlagen (Platinenlayout, Programmcode) gerne zur Verfügung, schickt mir einfach ne PN.
Den unten gezeigten Platinen-Entwurf habe ich mit der Fritzing-Sofware gemacht, leicht zu bedienen und für die Zwecke reichts. Ich muss dazu sagen, dass das mein erster Versuch ist, möglichwerweise ist das Design daher nicht optimal, manche Details sind allerdings gewissen Notwendigkeiten geschuldet (s.u.)
Hier nun eine kurze Beschreibung:
-Der Arduino-Teil und die beiden Endstufen (mit den beiden IRGBs) sind galvanisch durch Optokoppler (PC817) getrennt
-Auf der rechten Platinenseite befinden sich mehrerer Schraubklemmen (5 mm), die wie folgt belegt sind
Oben: -12V
Mitte: Leitungen zum Laden der beiden Zündspulen
Unten: Stromversorgung und Signalleitung für den Hallsensor sowie +12V
-Auf der linken Platinenseite befinden sich zwei Schraubklemmen (3,5 mm), an der unteren kann optional ein Taster (zur Auswahl der Zündkurve) und ein LCD (zur Anzeige, welche Kurve ausgewählt ist und der RPM) angeschlossen werden, an der oberen alternativ eine RGB-LED, an der man über die Farbe die ausgewählte Zündkurve erkennen kann.
Das LCD muss allerdings eines mit UART-Schnittstelle sein, die billigeren mit I2C haben sich in meinen Versuchen als nicht geeignet herausgestellt.
-Die beide LEDs oben links dienen zur Kalibrierung der Steuerscheiben-Position, sie sollen dann aufleuchten, wenn sich der betreffende Zylinder am UT zum Beginn des Verdichtungstaktes befindet.
-Nicht gezeigt ist eine (fertig gekauftes und vergossenes) Step-Down-Modul, das die 12V Bordspannung auf stabile 5V für den Arduino bringt. Das Teil wird später auf den Arduino draufgesetzt. Die beiden Lötpunkte oberhalb der unteren Schraubklemmen versorgen diese Modul mit 12V, an den beiden mit +5V und -5V beschrifteten Lötstellen wird dann die heruntergeregelte Spannung in den Arduino-Kreis eingeleitet.
-Da die beim Laden der Spulen fließenden Ströme für die dünnen Leitungen der Platine gefährlich werden können, werden für die entspechenden Leitungen (die dicken schwarzen Linien) separate Kabel verwendet, die an Pads (die größeren orangenen Flächen) an die Platine gelötet werden.
-Die IRGBs werden wegen der Wärmeableitung am Gehäuse befestigt und ebenfalls über Kabel mit der Platine verbunden.
-Die orangenen Leitungen befinden sich auf der Platinen-Unterseite, die gelben (sind nur zwei) auf der Oberseite
-Die Platinengröße beträgt ca. 75x75 mm
Falls einem Elektronik-Spezialisten noch ein Konstruktionsfehler auffällt, bitte melden.