pioterek pisze:
Zdaje się, że znalazłem miejsce, problemu i to o co w tym chodziło.
Kurcze, nie pomyślałem o tym

Mój enkoder dawał normalny sygnał napieciowy, Twój widocznie zwiera do masy. Trzeba było zrobić programowe podciagnięcie Pullpup na wejściu (podanie napięcia 5V przez rezystor dużej wartości). I sygnał zaczął istnieć.
To dowodzi że do zabawy w elektronikę potrzebny jest multimetr
Słusznie przypuszczasz że dostosowanie do maszyny to nie tylko ten zacytowany fragment. Ale dla nas istotne jest tylko to, powinno wystarczyć.
Masz tam dwie zmienne(zapamietać tą nazwę). Nadaje się im stałą wartość więc mogłyby być i stałą(zapamietać tą nazwę) a nie zmienną. Ale już takie moje zboczenie z bardziej zaawansowanego programowania. Że stałych raczej nie używam.
Do rzeczy, zgodnie z angielskimi nazwami, zmienna distance określa rozdzielczość DRO. A zmienna clearance luzy na połączeniu nakrętka-śruba.
Distance określami obliczając dystans jaki pokonuje nasz suport pomiędzy dwoma kolejnymi impulsami. Całe obliczenia robimy na parametrach mechanicznych, obliczając jaki dystans przypada na jeden obrót enkodera. Dopiero na końcu dzielimy obrót enkodera przez ilość impulsów i otrzymujemy docelową odległość.
Jednak DRO z powodów wydajnościowych, robi obliczenia na liczbach całkowitych. Przyjmując że liczba 1 odpowiada odległości 0,000001mm (mogłem pomylić ilość zer, ale to sobie sprawdzisz). Czyli mając np dystans 0,000738
27894mm na impuls, wpisujemy w zmienną distance wartość 738. Zaokrąglając cyfry spoza zakresu.
Warto mieć takie przełożenie aby wyszło dokładne zaokrąglenie. Wszelkie nierówności są wtedy kumulowane powodując liniowy błąd pozycji DRO.
Natomiast zmienna clearance powinna zawierać liczbę impulsów które wystąpią przy zmianie kierunku DRO. Zanim suport faktycznie zacznie się poruszać. Czyli po prostu trzeba wyliczyć:
1. Ile luzu jest w nakrętce
2. Podzielić luz przez dystans przypadający na jeden impuls. Np z powyższego przykładu podzielmy luz np 0,01mm przez 0,000738
27894mm wyjdzie 13,54501593 obrotu. Zła liczba bo nie da sie jej dokłądnie zaokrąglić, ale niech bedzie już 14 bo luz się powiększa z czasem. I właśnie 14 należy wpisać jako wartość zmiennej clearance.
DRO będzie sobie symulowało pozycję w nakrętce i naliczało zmianę odległości jedynie w momencie przekroczenia krawędzi gwintu/luzu.