Zwei Lichtschranken braucht man, weil man nicht nur die Drehzahl sondern auch die Drehrichtung feststellen will. Sonst ist eine Stellungsregelung kaum sinnvoll möglich. Der Regler weiss ja bei einem Impus von der Lichtschranke nicht unbedingt in welcher Richtung sich der Kameraschlitten vom Sollwert wegbewegt - er weiss nur wie er den Motor gerade bestromt, der Rückschluss auf die Bewegungsrichtung muss aber nicht in allen Fällen eindeutig sein.
Mit zwei Lichtschranken die so angeordnet sind, dass eine schaltet, während die andere gerade ein konstantes Signal hat, kann man die Drehrichtung eindeutig feststellen (Suchbegriff: Quadratursignal).
Die von dir verlinkte Lichtschranke besteht schon aus 2 versetzt angeordneten Empfängern und einem Sender, also genau das, was man für den Zweck eigentlich braucht. Leider muss - je nach Linienbreite der Encoderscheibe - ein bestimmter Abstand der beiden Lichtschranken eingehalten werden, eben so, dass sie nicht zufällig gleichzeitig schalten. Die von Dir verlinkte Lichtschranke ist für 150 Linien pro inch ausgelegt, die Encoderscheibe von Robotikhardware hat ungefähr 40 lpi. Als Bastler eines Einzelstücks kann man sich den Luxus erlauben zwei einzelne Lichtschranken zu nehmen, gegeneinander im Abstand zu justieren und anschließend die gefundene Stellung zu fixieren.
Beispielcode für Ardunio kann ich leider nicht geben. Das Prinzip ist, einen (vom Zeitprogramm vorgegebenen) Sollwert mit dem über das quadratursignal festgestellten Istwert zu vergleichen (mathematisch: Man bildet die Differenz) und daraus gehend den Motor zu bestromen. Es gibt ein paar Tücken im einfachen System, z.B. kann bei zu "scharfer" Auslegung des Reglers das Ganze anfangen um den Sollwert zu schwingen. Ob so etwas auftritt hängt aber auch stark von der ganzen Mechanik ab (Getriebeübersetzungen, Schwungmassen etc.) und kann im Allgemeinen durch eine Anpassung der Regelparameter eleminiert werden.
Lesezeichen