DRO DIY

Na tym forum rozmawiamy o elektronice nie związanej bezpośrednio z tematem CNC

strikexp
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 105
Posty: 3671
Rejestracja: 31 mar 2017, 19:47
Lokalizacja: Warszawa

#281

Post napisał: strikexp » 02 sie 2017, 09:55

No to podaj model któregokolwiek :mrgreen:
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:

Awatar użytkownika

pioterek
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 69
Posty: 1706
Rejestracja: 27 gru 2012, 02:40
Lokalizacja: kujawsko-pomorskie

#282

Post napisał: pioterek » 02 sie 2017, 10:57

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
strikexp pisze:Ale teraz nie widzę u siebie żadnego błędu, poza tym że nie nadąża zliczać przy szybkich obrotach
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
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 105
Posty: 3671
Rejestracja: 31 mar 2017, 19:47
Lokalizacja: Warszawa

#283

Post napisał: strikexp » 08 sie 2017, 20:45

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.
Załączniki
DRO.zip
(1.71 KiB) Pobrany 64 razy


upanie
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 48
Posty: 1656
Rejestracja: 15 sty 2011, 09:26
Lokalizacja: Wyszków

#284

Post napisał: upanie » 08 sie 2017, 21:30

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.
Ty to na poważnie piszesz?
czilałt...


strikexp
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 105
Posty: 3671
Rejestracja: 31 mar 2017, 19:47
Lokalizacja: Warszawa

#285

Post napisał: strikexp » 08 sie 2017, 21:44

Tak bo odświeżanie wyświetlacza bez sterownika zjada tyle mocy obliczeniowej. Muszę wymienić na wyświetlacz ze strownikiem MAX7219 to bedzie kolosalna różnica. Pewnie pociągnie nawet 3 enkodery jednocześnie i to z dużą prędkością obracania.


upanie
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 48
Posty: 1656
Rejestracja: 15 sty 2011, 09:26
Lokalizacja: Wyszków

#286

Post napisał: upanie » 08 sie 2017, 22:04

Nie, nie pociągnie.
Nie chce mi się teraz szukać Twojego kodu ale skoro twierdzisz, że teraz Ci nie ciągnie :mrgreen: 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...

Awatar użytkownika

Yogi_
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 25
Posty: 759
Rejestracja: 13 sty 2010, 08:07
Lokalizacja: Braniewo

#287

Post napisał: Yogi_ » 09 sie 2017, 12:36

strikexp pisze:ze strownikiem MAX7219 to bedzie kolosalna różnica.
Nie będzie.
Pozdrawiam
Krzysiek


logopeda
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 237
Rejestracja: 04 gru 2013, 08:31
Lokalizacja: Ostrzeszów

#288

Post napisał: logopeda » 09 sie 2017, 17:26

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).


upanie
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 48
Posty: 1656
Rejestracja: 15 sty 2011, 09:26
Lokalizacja: Wyszków

#289

Post napisał: upanie » 09 sie 2017, 17:43

Bo strikexp jest zbyt zaawansowany żeby używać przerwań :razz:
Wszystko robi w pętli głównej i dziwi się, że nie wyrabia z odczytem enkodera.

Zdaje się, że w tym wątku polecałeś piterkowi jakąś książkę o programowaniu a siebie określiłeś zbyt zaawansowanym żeby ją czytać. Przeczytaj ją.
czilałt...

Awatar użytkownika

Yogi_
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 25
Posty: 759
Rejestracja: 13 sty 2010, 08:07
Lokalizacja: Braniewo

#290

Post napisał: Yogi_ » 09 sie 2017, 18:38

logopeda pisze:Sprawdzałem tylko pojedynczy enkoder i jeden wyświetlacz gdyż więcej nie mam (potrzebuję tylko pojedynczy zestaw).
W tym systemie można użyć max dwóch kanałów bo tyle przerwań zewnętrznych obsługuje NANO I UNO.

[ Dodano: 2017-08-09, 18:42 ]
upanie pisze:Bo strikexp jest zbyt zaawansowany żeby używać przerwań :razz:
Wszystko robi w pętli głównej i dziwi się, że nie wyrabia z odczytem enkodera.
Ba, on jest tak zaawansowany, że bez przerwań odczytuje stan zboczy sygnałów z enkoderów. :mrgreen:
Pozdrawiam
Krzysiek

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika ogólna”