Enkoder na silniku będzie wrażliwy na luzy.
A nie można gdzieś zamocować tarczy z otworami? Wtedy rozdzielczość rośnie.
Coś takiego, tylko większe.
Wtedy za czujnik może robić fotorezystor za kilka groszy. Może też być tarcza malowana w paski i czujnik odbiciowy.
Kierunku obrotów nie trzeba badać, bo wiadomo w którą stronę kręci się silnik. Trzeba tylko liczyć impulsy.
Proponuję taki zestaw
https://botland.com.pl/pl/arduino-modul ... 90090.html
https://botland.com.pl/pl/arduino-shiel ... 57062.html
https://botland.com.pl/pl/przekazniki/2 ... ka-5v.html
Czujnik do enkodera wg. uznania
https://botland.com.pl/pl/139-czujniki-odbiciowe
Dodane 15 minuty 42 sekundy:
Jaki jest obwód wału napędzającego łańcuszek? Trzeba zrobić 2 razy więcej otworów w tarczy, żeby uzyskać dokładność 0,5 mm.
Na dokładność będzie miała wpływ też prędkość hamowania silnika, chociaż to można kompensować, wyłączając silnik odpowiednio wcześniej. Jeśli silnik się rozpędza, to w funkcji odległości do pokonania. Teoretycznie luz nawrotowy też można kompensować programowo przy enkoderze na silniku.
Dodane 5 minuty 45 sekundy:
Zamów elementy, zamontuj enkoder i krańcówki, a program się ogarnie.
Dodane 1 minuta 48 sekundy:
Jeszcze jedno. Zamiast bazowania, można po prostu wpisać aktualną pozycję odczytaną ze skali. Będzie chyba szybciej (przy prędkości tego silnika).
Można też podłączyć enkoder (impulsator) do programowania odległości. Gałką kręci się dużo wygodniej.
https://botland.com.pl/pl/enkodery/9533 ... -ec11.html