Angenommen die Lichtschranke liefern ein digitalse signal '0' und '1'.

die einfachste (nicht schonsten) losung:

1. Lichtschrank an einem eingang anschliessen
2. eingang continuierlich abfragen ob eingang '0' ist, wenn '1', weitergehen
3. dann ein timer starten
4. eingang continuierlich abfragen ob eingang '1' ist, wenn '0', weitergehen

5. timer auslesen
6. wieder bei 2. anfangen

die timerwert ist ein mass fur die geswindigkeit


wie wurde ich dass machen?

Ich verbinde die lichtschrank mit einem mikrokontroller interrupt eingang.
Jedes mahl dass die lichtschrank von '0' nach '1' oder umgekehrt schaltet wird die interrupt function angerufen. In die interrupt function erhohe ich ein zahler variabele A.

ich configuriere ein timer so dass er 1 sekunde braucht um von einen voher betimmten startwert bis zum maxwert (beim hochzahlen) oder minwert (beim zuruckzahlen) ein interrupt generiert. In die interrupt software wird dan die startwert aufsneu geschrieben fur die nachtste sekunde. In die interrupt function lese ich die zahler variabele A (ein mass fur die geswindigkeit) und mache etwas damit und mache A wieder 0.

nur so einige ideen, bin uberzeugt gibts fast noch eine menge andere

gruss

Henk