Samstag, März 17, 2007

Fehlerhaftes Signal

Bei der Entwicklung meines zweiten Encoders ist mir ein Fehler unterlaufen, den ich nicht leicht finden konnte.

Mein Roboter ist mit zwei Motoren ausgestattet, die je einen neuen Encoder bekommen haben. Über eine serielle Verbindung lasse ich mir die Drehzahlen der Motoren am PC ausgeben.

Diese Daten habe ich in eine Exceltabelle gebracht und musste leider feststellen, dass ein Encoder schlechte Signale liefert.

Auf den Bildern ist so eine Messreihe zu sehen, bei der die Motoren mit konstanter Geschwindikeit drehen. Eigentlich sollte dann der Encoderwert nur +/- 1 springen.



Nachdem ich die Schaltung noch einmal intensiv nach Fehler durchsucht hatte und ich keinen Fehler feststellen konnte habe ich mir die Signale an einem Oszi angesehen. Das obere Bild zeigt den heilen Encoder mit zwei um 90° phasenverschobenen Signalen. Ein Highlevel bedeutet, dass der Transistor Licht bekommen hat. Ein Lowlevel bedeutet, er wurde abgeschattet.
Das untere Bild zeigt die Signale des defekten Encoder.
Es ist deutlich zu sehen, dass die Abschattung nur sehr kurz ist und beim oberen Signal sogar manchmal ausfällt.
Dies führt dazu, dass die Auswertung kurzzeitig ein Rückwärtsdrehen erkennt und so die Signale stark schwanken.

Der Grund dafür war, dass ich zwei IR Leuchten verwendet habe. Sie erzeugten so viel Licht, dass die Transistoren nur einen kurzen Moment aus gingen. Wenn die Lochscheibe dazu noch etwas eierte, wurden Signale ganz ausgelassen. Ich habe eine IR-LED ausgelöten und nun funktioniert auch mein zweiter Encoder tadellos. Mir war beim Messen am Oszi schon aufgefallen, dass der erste Encoder weniger Strom verbrauchte. Ich denke bei dem war zufälligerweise schon eine IR-LED defekt, weshalb er von anfang an so gut funktionierte :-).

zur Animation klick -->

Keine Kommentare: