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.

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
Hat jemand eine einfachere Idee oder am besten auch ein Beispiel Code, wie man die Drehrichtung mit so einer Doppellichtschranke feststellen kann?