http://pl.wikipedia.org/wiki/Enkoder_inkrementalny praktycznie tarcza z otworami lub naniesionymi polami powodujące przerwanie wiązki promieniowania podczerwonego co daje impuls , zależnie od ilości pół lub otworów enkoder wysyła określoną ilość impulsów na jeden pełny obrót tarczy , tarczę enkodera umieszcza się na osi silnika odpowiedni układ kontroluje ilość otrzymanych impulsów co pozwala określić ilość wykonanych obrotów przez silnik z precyzją zależną od dokładności enkodera , zobacz sobie proste rozwiązanie na przykładzie Elebota
teoretyczny przykład obliczenia:
przekładnia 5 : 1
enkoder 100impulsów/obrót
ruch 180°
pełen obrót po przekładni wymaga wykonania przez silnik 5 obrotów , co daje 5x100 = 500 impulsów z enkodera , 180° to 1/2 obrotu czyli 500/2 =250 impulsów z enkodera , myślę że teraz rozumiesz o co chodzi wystarczy kontrolować ilość impulsów i masz pełne pozycjonowanie układu , tak więc dowolny mikrokontroler , mostek H i możesz ustalić sobie dowolny kąt obrotu , podobnie można z silnikiem krokowym w którym liczymy kroki wiedzą że jeden krok to wykonany o X° obrót , nie wiem jak u Ciebie z programowaniem bo najprostszy sposób to pomysł kol.daduszeryf oczywiście musi być przekładnia a układ sterujący można dość prosto zrealizować na krańcówkach lub bramkach logicznych , temat był nie dawno na forum