DRO DIY
-
- Lider FORUM (min. 2000)
- Posty w temacie: 105
- Posty: 4419
- Rejestracja: 31 mar 2017, 19:47
- Lokalizacja: Warszawa
No to podaj model któregokolwiek
W enkoderach są trzy rodzaje wyjść, mój ma "open collector".
http://www.plcs.net.pl/index.php/enkode ... wyjsc.html
Więc musiałem zmodyfikować program robiąc INPUT_PULLUP na wejściach. Inaczej nie działał wcale.
Ale teraz nie widzę u siebie żadnego błędu, poza tym że nie nadąża zliczać przy szybkich obrotach. Ale to przez wyświetlacz bez sterownika który wymienię bo to jakieś 13zł.
W enkoderach są trzy rodzaje wyjść, mój ma "open collector".
http://www.plcs.net.pl/index.php/enkode ... wyjsc.html
Więc musiałem zmodyfikować program robiąc INPUT_PULLUP na wejściach. Inaczej nie działał wcale.
Ale teraz nie widzę u siebie żadnego błędu, poza tym że nie nadąża zliczać przy szybkich obrotach. Ale to przez wyświetlacz bez sterownika który wymienię bo to jakieś 13zł.
Tagi:
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 69
- Posty: 1724
- Rejestracja: 27 gru 2012, 02:40
- Lokalizacja: kujawsko-pomorskie
Mój wpis z 19-tej strony Wysłany: 2017-05-13, 20:02 to opisał.
enkoder na stronie 17-tej taki jak ten, ale zamiast 600 imp to 400.
https://wemakethings.net/2014/05/26/rot ... -teardown/
strikexp, nawet podałeś link do opisu Wysłany: 2017-05-10, 19:25
https://www.cnc.info.pl/download.htm?id ... special=14
enkoder na stronie 17-tej taki jak ten, ale zamiast 600 imp to 400.
https://wemakethings.net/2014/05/26/rot ... -teardown/
strikexp, nawet podałeś link do opisu Wysłany: 2017-05-10, 19:25
https://www.cnc.info.pl/download.htm?id ... special=14
Słuchaj, czy ja mam Tobie od nowa wszystko opisywać? Masz enkoder 400, to w jaki sposób ustawiasz parametry w programie, żeby na wyświetlaczu pokazał [0000 5,000] po wykonaniu jednego pełnego obrotu. I porównaj to z tym co opisałeś jak to robić, oraz z tym co ja pisałem na ten temat.strikexp pisze:Ale teraz nie widzę u siebie żadnego błędu, poza tym że nie nadąża zliczać przy szybkich obrotach
-
- Lider FORUM (min. 2000)
- Posty w temacie: 105
- Posty: 4419
- Rejestracja: 31 mar 2017, 19:47
- Lokalizacja: Warszawa
Próbując zrobić tak jak napisałeś znalazłem błąd powodujacy te przeróżne wyniki. Otóż przy wykryciu nowego impulsu (a właściwie kroku bo impuls to tylko z nazwy - 4 kroki kodu graya) były uruchamiane funkcje moveForward lub moveBack. Teoretycznie miały pilnować clearance czyli luzu na śrubie i zwracać ruch o wartości 0 lub distance. Sęk w tym że zwracały typ byte czyli liczbę od 0 do 255 a nie typ int którym jest zmienna distance. Czyli zawsze upierdzielało liczbę ponad 255 i wstawiało jej końcowe bity. Stąd sie brały takie dziwne wartości...
Nie wiem natomiast dlaczego Tobie akurat staje zliczanie po pełnym obrocie.
Jednak wstawiam poprawiony program, wpisałem w distance 3125 ponieważ dla enkodera 400imp/obr jest tak naprawdę 1600 kroków (2 bitowy kod graya z dwóch przewodów, czyli 4 możliwości). Dlatego chcąc uzyskać na wyświetlaczu [00005.000] trzeba obliczyc distance:
5000/(400*4)*1000 = 3125
(odległość na obrót)/(liczba impulsów razy 4)*(mnożnik programowy wynoszący 1000) = distance
Ostrzegam tylko, przy enkoderze 400imp/obr trzeba kręcić bardzo wolno. Około 1 obrót na 4 sekundy.
Inaczej Arduino gubi kroki, naprawię to wymieniając wyświetlacz na taki z własnym sterownikiem.
Nie wiem natomiast dlaczego Tobie akurat staje zliczanie po pełnym obrocie.
Jednak wstawiam poprawiony program, wpisałem w distance 3125 ponieważ dla enkodera 400imp/obr jest tak naprawdę 1600 kroków (2 bitowy kod graya z dwóch przewodów, czyli 4 możliwości). Dlatego chcąc uzyskać na wyświetlaczu [00005.000] trzeba obliczyc distance:
5000/(400*4)*1000 = 3125
(odległość na obrót)/(liczba impulsów razy 4)*(mnożnik programowy wynoszący 1000) = distance
Ostrzegam tylko, przy enkoderze 400imp/obr trzeba kręcić bardzo wolno. Około 1 obrót na 4 sekundy.
Inaczej Arduino gubi kroki, naprawię to wymieniając wyświetlacz na taki z własnym sterownikiem.
- Załączniki
-
- DRO.zip
- (1.71 KiB) Pobrany 112 razy
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 48
- Posty: 1965
- Rejestracja: 15 sty 2011, 09:26
- Lokalizacja: Wyszków
Nie, nie pociągnie.
Nie chce mi się teraz szukać Twojego kodu ale skoro twierdzisz, że teraz Ci nie ciągnie to znaczy, że nie używasz przerwań od wejść enkoderowych. A to oznacza, że nawet jeśli nie będziesz miał wcale wyświetlaczy to nie obciągniesz niezawodnie nawet jednemu enkoderowi. Albo z drugiej strony: gdybyś używał przerwań to żaden wyświetlacz by Ci nie przeszkadzał w obciąganiu enkoderowi.
Nie chce mi się teraz szukać Twojego kodu ale skoro twierdzisz, że teraz Ci nie ciągnie to znaczy, że nie używasz przerwań od wejść enkoderowych. A to oznacza, że nawet jeśli nie będziesz miał wcale wyświetlaczy to nie obciągniesz niezawodnie nawet jednemu enkoderowi. Albo z drugiej strony: gdybyś używał przerwań to żaden wyświetlacz by Ci nie przeszkadzał w obciąganiu enkoderowi.
czilałt...
-
- Specjalista poziom 2 (min. 300)
- Posty w temacie: 2
- Posty: 443
- Rejestracja: 04 gru 2013, 08:31
- Lokalizacja: Ostrzeszów
Nie wiem czy to wina szkicu czy wyświetlacza (nie znam się aż tak) u Kol.strikexp.
Mogę tylko potwierdzić w tym temacie, że złożyłem zestaw na MAX7219 8 cyfr i enkoderze MOK40 2500/obrót oraz jakimś tanim klonie "funduino".
Na szkicu ze strony http://www.chipmaker.ru/topic/143676/ bez względu na szybkość obrotów enkodera układ działa bezbłędnie a "kręciłem" tak szybko jak umiałem. Sprawdzałem tylko pojedynczy enkoder i jeden wyświetlacz gdyż więcej nie mam (potrzebuję tylko pojedynczy zestaw).
Mogę tylko potwierdzić w tym temacie, że złożyłem zestaw na MAX7219 8 cyfr i enkoderze MOK40 2500/obrót oraz jakimś tanim klonie "funduino".
Na szkicu ze strony http://www.chipmaker.ru/topic/143676/ bez względu na szybkość obrotów enkodera układ działa bezbłędnie a "kręciłem" tak szybko jak umiałem. Sprawdzałem tylko pojedynczy enkoder i jeden wyświetlacz gdyż więcej nie mam (potrzebuję tylko pojedynczy zestaw).
-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 25
- Posty: 759
- Rejestracja: 13 sty 2010, 08:07
- Lokalizacja: Braniewo
W tym systemie można użyć max dwóch kanałów bo tyle przerwań zewnętrznych obsługuje NANO I UNO.logopeda pisze:Sprawdzałem tylko pojedynczy enkoder i jeden wyświetlacz gdyż więcej nie mam (potrzebuję tylko pojedynczy zestaw).
[ Dodano: 2017-08-09, 18:42 ]
Ba, on jest tak zaawansowany, że bez przerwań odczytuje stan zboczy sygnałów z enkoderów.upanie pisze:Bo strikexp jest zbyt zaawansowany żeby używać przerwań
Wszystko robi w pętli głównej i dziwi się, że nie wyrabia z odczytem enkodera.
Pozdrawiam
Krzysiek
Krzysiek