jaka rozdzielczość enkodera pod arduino, żeby się wyrobiło z odczytem

Rozmowy na temat układów elektronicznych sterowania obrabiarek CNC

Autor tematu
therion
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 1
Posty: 54
Rejestracja: 10 sty 2018, 11:32

jaka rozdzielczość enkodera pod arduino, żeby się wyrobiło z odczytem

#1

Post napisał: therion » 10 sty 2022, 02:05

Witam
Proszę o pomoc w doborze enkodera.

Enkoder będzie zamontowany w maszynce do wyginania drutu, ma mierzyć ile drutu dał podajnik.
Chciałbym jak największą dokładność, to dla mnie ważne, ale nie wiem jak ocenić czy arduino wyrobi się z odczytem sygnału.
Chińczyk sprzedaje w tej samej cenie różne enkodery od 100 do 1000 P/R i nie wiem który wybrać.
Jeszcze do końca nie wiem jakie będą obroty enkodera, minimalnie ok 100 obr/min, ale chciałbym kilkukrotnie więcej.

Mam trzy podstawowe pytania:
1. Jak się liczy ilosć impulsów na obrót? Czy te 1000P/R oznacza 1000 impulsów na obrót na każdy kanał? Jeśli dobrze rozumiem kanał A na obrót ma 1000 zmian ze stanu niskiego w wysoki i drugi raz 1000 z wysokiego na niski tak samo kanał B. Czyli z enkodera 1000P/R można odczytać maksymalnie do 4000 impulsów na obrót?
2. Jaką rozdzielczość może obsłużyć arduino? w sensie prędkości danych, żeby nie pomijało żadnego odczytu. Czy arduino da sobie radę z enkoderem 1000P/R przy obrotach 2 obr/sek? Na ile obr/s mogę liczyć? Oceniam, że 10 obr/s by było super.
(Zakładając wykorzystanie 2 kanałów w pełni tj 4000 impulsów na obrót.)
3. Czy muszę podłączać każdy kanał? np jakby te 1000 P/R z kanału A mi wystarczyło, to kabelek od kanału B może zostać niepodłączony i nic nie będzie enkoderowi?



Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 7874
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: jaka rozdzielczość enkodera pod arduino, żeby się wyrobiło z odczytem

#2

Post napisał: tuxcnc » 10 sty 2022, 05:36

therion pisze:
10 sty 2022, 02:05
Jaką rozdzielczość może obsłużyć arduino?
Arduino Due ma sprzętową obsługę enkodera, jeden kanał, ale jest stosunkowo drogie.
Lepiej użyć STM32F103, a jeszcze lepiej STM32F401, do kupienia na Aliexpress za kilkanaście PLN.
Użycie procesora ze sprzętową obsługą enkodera uwolni Cię od co najmniej trzech pytań, czy się czasowo wyrobi, czy program zmieści się w pamięci i co zrobić gdy wystarczy mniejsza rozdzielczość..
Arduino Uno/Nano/Mega do takiego zastosowania się z zasady nie nadają.
Enkodery kwadraturowe jako parametr CPR mają podaną ilość kresek na tarczy, przy odczycie kwadraturowym dokładność mnoży się razy cztery i rozpoznaje się kierunek obrotów. czytanie jednego kanału to partactwo i druciarstwo, choć w niektórych zastosowaniach wystarczy.
Sprzętowa obsługa enkodera polega w zasadzie na tym, że czytasz kiedy Ci pasuje stan licznika, a sam enkoder może dawać miliony impulsów na sekundę i żadnego nie zgubisz.
W układach które nie mają sprzętowej obsługi enkodera trzeba używać przerwań, obsługiwać je programowo, i zapewnić żeby inne procedury nie zakłócały pomiaru. Przy odczycie kwadraturowym jest to przyjęcie przerwania, sprawdzenie stanu na drugim kanale podjęcie decyzji czy dodać czy odjąć i zmiana stanu licznika. W ośmiobitowym procesorze dojdzie jeszcze szesnastobitowa arytmetyka, czyli dodatkowe instrukcje do wykonania, bo ośmiobitowy licznik na pewno Ci nie wystarczy. Teoretycznie da się czas wykonania tego wszystkiego policzyć, tylko nie wiadomo po co...


skmskm
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 1
Posty: 319
Rejestracja: 15 lis 2014, 20:21
Lokalizacja: Gliwice

Re: jaka rozdzielczość enkodera pod arduino, żeby się wyrobiło z odczytem

#3

Post napisał: skmskm » 10 sty 2022, 08:28

therion pisze:
10 sty 2022, 02:05
Witam
Proszę o pomoc w doborze enkodera.

Enkoder będzie zamontowany w maszynce do wyginania drutu, ma mierzyć ile drutu dał podajnik.
Chciałbym jak największą dokładność, to dla mnie ważne, ale nie wiem jak ocenić czy arduino wyrobi się z odczytem sygnału.
Chińczyk sprzedaje w tej samej cenie różne enkodery od 100 do 1000 P/R i nie wiem który wybrać.
Jeszcze do końca nie wiem jakie będą obroty enkodera, minimalnie ok 100 obr/min, ale chciałbym kilkukrotnie więcej.

Mam trzy podstawowe pytania:
1. Jak się liczy ilosć impulsów na obrót? Czy te 1000P/R oznacza 1000 impulsów na obrót na każdy kanał? Jeśli dobrze rozumiem kanał A na obrót ma 1000 zmian ze stanu niskiego w wysoki i drugi raz 1000 z wysokiego na niski tak samo kanał B. Czyli z enkodera 1000P/R można odczytać maksymalnie do 4000 impulsów na obrót?
2. Jaką rozdzielczość może obsłużyć arduino? w sensie prędkości danych, żeby nie pomijało żadnego odczytu. Czy arduino da sobie radę z enkoderem 1000P/R przy obrotach 2 obr/sek? Na ile obr/s mogę liczyć? Oceniam, że 10 obr/s by było super.
(Zakładając wykorzystanie 2 kanałów w pełni tj 4000 impulsów na obrót.)
3. Czy muszę podłączać każdy kanał? np jakby te 1000 P/R z kanału A mi wystarczyło, to kabelek od kanału B może zostać niepodłączony i nic nie będzie enkoderowi?
2:
Arduino zwykłe dojdzie do 20KHz max. Tylko wtedy nic innego nie zrobi.
3:
Jeśli wiesz że silnik będzie jechał zawsze w tym samym kierunku to tak. Tylko stracisz wiedze o kierunku.

Teoretyczne do 3200rpm powinno dać rade(licząc 1000P/R tylko jeden kanał).
Tylko max wartość licznika to (16Bit)65536. w ciągu 3 sekund przepełnisz musisz zerować regularnie.
Polecam PiD do sterowania silnikiem jeśli posiadasz płyną regulacje obrotów będzie dojeżdżać do celu ok +-10 pozycji.


qqaz
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 2123
Rejestracja: 28 sty 2007, 16:12
Lokalizacja: Łódź

Re: jaka rozdzielczość enkodera pod arduino, żeby się wyrobiło z odczytem

#4

Post napisał: qqaz » 10 sty 2022, 08:39

therion pisze:
10 sty 2022, 02:05
Enkoder ... ma mierzyć ile drutu dał podajnik.
Chciałbym jak największą dokładność,
Spróbuj określić jaki błąd w długości drutu jest dopuszczalny i ze średnicy rolki napędowej (zespołu rolek) wyjdzie Ci ilość impulsów.
Przyjmowanie na pałę że koniecznie musi być dużo prowadzi do niepotrzebnego napinania się w rozwiązaniu.
Poślizgi na rolkach wyliczyłeś?

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika CNC”