Vor Urzeiten, bevor die moderne Mikrocontroller-Elektronik unter der Motorhaube Einzug hielt, wurde die Zündung des Motors mit einem Stroboskop eingestellt. Jetzt wird ein solches Gerät eher selten benötigt – denn in einem nicht allzu antiken Auto wird die Zündung von der ECU (Electronic Control Unit) mit Hilfe zahlreicher Sensoren variabel gesteuert.

Das Stroboskop

Früher war alles nicht unbedingt besser, aber doch anders. In einer nicht einmal so grauen Vergangenheit gab es genug Platz unter der Motorhaube eines Autos, um selbst zu basteln, zu reparieren und einzustellen. Dank moderner computergestützter Konstruktionstechniken ist es möglich, alle Komponenten unter der Motorhaube so kompakt und dicht aneinander zu platzieren, dass selbst der Austausch einer gewöhnlichen Lampe für Laien fast unmöglich wird. Und natürlich fand auch der Computer selbst (in Form einer großen Anzahl miteinander verbundener Mikrocontroller) seinen Platz unter der gleichen Haube.

Aber zurück zu - sagen wir - den 70er oder 80er Jahren des letzten Jahrhunderts. Für das einwandfreie Funktionieren eines benzinbetriebenen Verbrennungsmotors müssen die Zündkerzen jedes Zylinders genau im richtigen Moment einen Funken erzeugen. Dafür sorgte der Verteiler (ein mechanisches Gerät, das bei bestimmten Automarken furchtbar empfindlich auf Feuchtigkeit reagierte), der genau mit dem Motor synchronisiert werden musste. Und hier kommt unser Stroboskop ins Spiel.

In einem solchen Verteiler gab es genauso viele Unterbrecherkontakte, wie der Motor Zylinder besaß. Jedes Mal, wenn ein solcher Unterbrecherkontakt geöffnet wurde (daher der Name), entlud sich die in der Zündspule gespeicherte elektrische Energie über die Zündkerze in den Brennraum in Form eines Funkens, der das Benzin-Luft-Gemisch entzündete. Und dies musste genau zu einem Zeitpunkt geschehen, in dem der Kolben im Zylinder seinen Oberen Totpunkt gerade verlassen hatte (also das Gemisch die maximale Kompression erreicht hatte). Die Zylinder des Motors werden von der Kurbelwelle bewegt, an deren Ende die Keilriemenscheibe fest verbunden ist. Deshalb ist die Position der Riemenscheibe stets synchron zur Stellung zur Kolbenstellung. Auf der drehenden Riemenscheibe war eine weiße Markierung angebracht und daneben auf einem Metallwinkel eine zweite, fixe Markierung.

Das für die Einstellung des Zündzeitpunkts verwendete Stroboskop bestand aus einer Xenon- oder Neon-Blitzröhre und einem Auslösekabel. Das Kabel wurde mit einem induktiven Sensor an der Referenzzündkerze angeschlossen, so dass jedes Mal, wenn die Referenzzündkerze zündete, auch das Stroboskop einen sehr kurzen Lichtblitz erzeugte.

Beim Auslösen des Stroboskops durch die Referenzzündkerze mussten beide Marken aufgrund des Stroboskopeffekts genau gegenüberliegend erscheinen, ansonsten musste der Verteiler eingestellt werden. Wir halten fest, dass bei dieser Anwendung das Stroboskop mit der Drehbewegung synchronisiert wurde. Es geht aber auch ohne ein Triggersignal!

Bild 1. Der Rahmen mit den am Propeller angebrachten Reflektoren.

Triggern? Völlig überflüssig!

Wenn wir eine Drehung mit einem nicht synchronisierten Stroboskop messen wollen, müssen wir die Frequenz der Lichtblitze so einstellen, dass die Markierung auf der Scheibe (fast) still zu stehen scheint und nur eine Markierung sichtbar ist. Wenn sich das Rad im Uhrzeigersinn dreht und die Markierung sich langsam im Uhrzeigersinn zu bewegen scheint, dann ist die Blinkfrequenz etwas zu niedrig. Der Blitz kommt zu spät, so dass sich die Markierung in Drehrichtung zu bewegen scheint. Und wenn sich das Rad mit dem Uhrzeigersinn dreht und die Markierung sich langsam gegen den Uhrzeigersinn zu bewegen scheint, dann ist die Blinkfrequenz etwas zu hoch: Jeder Blitz kommt etwas zu früh. Es kann auch vorkommen, dass mehrere (fast) stationäre Markierungen sichtbar sind. Dann ist die Blitzfrequenz ein Vielfaches der Drehzahl oder die Drehzahl ein Vielfaches der Blitzfrequenz.

Die Drehzahl kann gemessen werden, indem die Blitzfrequenz des Stroboskops so eingestellt wird, dass die Markierung zu „stehen“ scheint. Die Dauer jedes Blitzes muss kurz genug sein, um eine klare Reflexion (also eine deutlich sichtbare Markierung) zu erhalten, ist die Blitzdauer im Verhältnis zur Blitzfrequenz zu lang, „verschmiert“ die Reflexion.

Nun wird es spaßig...

Was passiert, wenn wir mehrere Blitze mit der gleichen Frequenz, aber mit unterschiedlichen Farben und mit einer Phasenverschiebung zwischen den einzelnen Blitzen erzeugen? Und wenn wir auch ein rotierendes weißes Objekt verwenden und die Frequenz, Phasenverschiebung und Breite der verschiedenfarbigen Blitze variieren?

So etwas ist mit Hilfe eines Mikrocontrollers nicht schwer zu realisieren, also hindert uns nichts! Für die verschiedenfarbigen Blitze können wir eine RGB-LED verwenden – oder besser drei, um hellere Blitze zu erhalten. Zur Steuerung von Frequenz, Phasenverschiebung und Blitzdauer verwenden wir einen Arduino Pro Mini, weil das Board über genügend I/O-Ports zum Spielen verfügt und für unseren Zweck mehr als schnell genug ist. Diese LEDs werden - wie könnte es anders sein - mit pulsbreitenmodulierten Signalen (PWM) angesteuert.

Natürlich hätten wir auch drei spezielle PWM-Module des Arduino Pro Mini verwenden können, aber diese Module verwenden drei verschiedene Timer. Das macht es schwieriger, sie zu synchronisieren oder Phasenverschiebungen zu programmieren. Aber wir benötigen nur relativ niederfrequente PWM-Signale und eine Auflösung von 16 Bit wäre maßlos übertrieben. Für unseren Zweck sind softwaregenerierte PWM-Signale (softPWM) also mehr als gut genug. Bei softPWM werden die Signale auf normalen digitalen Ausgängen ausgegeben. Die Ausgänge werden mit einem Zähler gesetzt und zurückgesetzt. Beim Erreichen eines bestimmten Zählerstandes wird ein Interrupt erzeugt. Auf diese Weise wird ein Intervall realisiert, das kurz genug ist, um die Pulsbreite oder Phasenverschiebung des PWM-Signals mit ausreichender Genauigkeit einzustellen.

Die Praxis

Um dies zu realisieren, verwendete der Autor keine Kurbelwelle, sondern einen 12-V-Gleichstrommotor (MOT3N) und entwarf dafür eine kleine Halterung. Der Motor setzt einen „Propeller“ mit zwei vertikal angebrachte Reflektoren in Bewegung. All dies wurde mit einem 3D-Drucker hergestellt; die Druckdateien stehen am Ende dieses Artikels. Bild 1 und Bild 2 zeigen, wie diese Mechanik aussieht.

Bild 2. Nahaufnahme des Motors

Hinweis: Der vom Autor verwendete 12-V-Motor dreht sich (unbelastet) mit etwa 11500 U/min, was sich als viel zu viel für den 3D-gedruckten Propeller erwies. Beim ersten Probelauf flogen dem Autor die Bruchstücke buchstäblich um die Ohren und – viel gefährlicher – um die Augen. Also, es ist keine verrückte Idee, beim Experimentieren eine Schutzbrille zu tragen!

Der Motor wurde daher mit einer Gleichspannung von nur etwa 3 V angesteuert. Die Spannung ist einstellbar, um die Drehzahl zu synchronisieren. Bei 3 V beträgt die Drehzahl etwa 2100 U/min, was 35 Hz entspricht. Da der Propeller zwei Reflektoren besitzt (was das Auswuchten etwas erleichtert), ist die Blitzfrequenz doppelt so hoch, also 70 Hz (Periodendauer ungefähr 14 ms).

Bild 3. Die Schaltung ist nicht besonders kompliziert.

Die Schaltung in Bild 3 ist die Einfachheit selbst, so dass sie leicht auf einem Steckbrett realisiert werden kann, wie der Aufbau des Autors in Bild 4 beweist. Die drei RGB-LEDs werden über bescheidene BC547-Treiber auf Befehl des Arduinos ein- und ausgeschaltet. Die Versorgungsspannung für die Schaltung beträgt 5 VDC, die Stromaufnahme liegt bei etwa 500 mA.

Bild 4. Der Aufbau ist unkritisch. Für Experimente eignet sich ein Steckbrett.

Das Timing des Stroboskops wird durch einen Timer-Interrupt gesteuert, der alle 100 µs aufgerufen wird. Dieses Intervall von 0,1 ms ist die Auflösung, mit der die Blitzfrequenz variiert werden kann. Dies bietet genügend Möglichkeiten, um das „stillstehende“ Bild des Propellers zu verschieben.

...
// Setup 16bit timer1 in normal operation with interrupt at 100us
// 16MHz/1 = 6.25ns. So to get 100us we need to let the timer count 1600 ticks.
TCCR1A = 0;
TCCR1B = _BV(CS10); //prescaler divide by 1
TCNT1 = 0xFFFF - 1600; // overflow is at 65535 = 0xFFFF
TIMSK1 = _BV(TOIE1); // overflow interrupt
TCNT1 = 0;
sei();
}
ISR (TIMER1_OVF_vect)
{
TCNT1 = 0xFFFF - 1600; //100us interrupt
...
 

Die Blitzperiode ist in der Software auf 144 hartkodiert - das ist die Anzahl der Timer-Interrupts zwischen zwei aufeinanderfolgenden Blitzen. Die Periode beträgt also 144 * 100 µs = 14,4 ms. Die Blitzdauer für jede LED ist auf 8 festgelegt, was 8 * 100 µs = 800 µs entspricht. Das Tastverhältnis (Puls/Pausen-Verhältnis) beträgt somit 800 µs / 14,4 ms = 5,5%.

#define STROBE_PERIOD 144
 
TSoftPwm Pwm[] = {TSoftPwm(ID_RED, 0, 8, STROBE_PERIOD),
TSoftPwm(ID_GREEN, 0, 8, STROBE_PERIOD),
TSoftPwm(ID_BLUE, 0, 8, STROBE_PERIOD)};

Mit diesem Arbeitszyklus erhalten wir (sobald die Motordrehzahl optimal eingestellt ist) ein schön „fest stehendes“ Bild.

Die Schaltung samt Software, die kostenlos von der Projektseite dieses Artikels heruntergeladen werden kann, ist kein abgeschlossenes Projekt. Der Autor versteht es eher als „proof of concept“ und hat es deshalb nicht mit einer schönen Benutzeroberfläche und ähnlichem versehen. Die Software demonstriert aber die Möglichkeiten, indem sie mit den Parametern Blitzfrequenz, Blitzdauer und Phasendifferenz spielt. Da die Software mit vielen und deutlichen Kommentaren versehen ist, brauchen wir hier nicht weiter ins Detail gehen.

Natürlich ist ein nicht synchronisiertes Stroboskop nicht wirklich optimal. Im Prinzip dürfte es gar nicht so schwierig sein, am Propeller eine Lichtschranke zu montieren, deren Signal als Auslöser für das Stroboskop dienen kann. Wir überlassen dies jedoch dem interessierten Leser, also Ihnen!

(191214-02)
Geplant für die Elektor Juli/August Ausgabe von Elektor


Editor's note: Der Autor hat zwei Videos auf Youtube gestellt, in denen man die Funktionsweise des Stroboskops und das Verhältnis der LED-Steuersignale auf dem Bildschirm eines Oszilloskops bewundern kann. Das Projekt ist auch auf Elektor Labs zu finden.


 

 

Disable checkingPremium suggestions