Ich hab mir aus ner Maus eine Gabellichtschranke und so ein encoder Rad (in diesem Fall ein Zahnrad) ausgebaut.
Die Lichtschranke beinhaltet zwei Sensoren die Nebeneinander liegen. Ich kriege also pro Zahn der sich durch die Lichtschranke bewegt zwei versetzte Impulse. Jetzt würde ich nur gern wissen, wie ich aus diesem Signal die Drehrichtung am elegantesten ermitteln kann.
Hab schon einiges versucht und auch hier im Forum gesucht, aber irgendwie klappt das nich so wie ich mir das gedacht habe.
Ich habs jetzt so programmiert, dass bei jeder H/L Flanke an einer der Beiden Lichtschranken ein Interrupt ausgelöst wird. In diesem Interrupt wird geprüft ob der Zahn schon bei der anderen Lichtschranke vorbeigekommen ist und wenn ja der Zähler dementsprechend erhöht. Wenn nein wird ein Flag gesetzt, damit die andere Interruprroutine von der 2. Lichtschranke dann weiß, dass der Zacken bereits bei der ersten Lichtschranke war.
Hat jemand eine einfachere Idee oder am besten auch ein Beispiel Code, wie man die Drehrichtung mit so einer Doppellichtschranke feststellen kann?Code:Onint0: 'Int0-Routine If Hl1 = 1 Then Incr Count D = 1 Hl0 = 1 Hl1 = 0 Gosub Anzeige Else Hl0 = 1 End If Return Onint1: If Hl0 = 1 Then Decr Count D = 1 Hl0 = 0 Hl1 = 1 Gosub Anzeige Else Hl1 = 1 End If Return







Zitieren

Lesezeichen