Arduino Polska Forum
Uno + enkoder. Pętla zwrotna do określenia pozycji - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Uno + enkoder. Pętla zwrotna do określenia pozycji (/watek-uno-enkoder-p%C4%99tla-zwrotna-do-okre%C5%9Blenia-pozycji)



Uno + enkoder. Pętla zwrotna do określenia pozycji - michalt13 - 25-10-2018

Chce odczytać na arduino pozycje, która to później będzie wysłana po jakiejś magistrali. Do określenia pozycji użyłem enkodera optycznego 600 impulsowego dwu kanałowego. Po wielu próbach nie udaje mi się uzyskać odpowiedniego odczytu sygnału. Enkoder podpięty jest do wejścia przerwania, które to sprawdzam na zbocze i w funkcji przerwania mam tylko sprawdzenie stanu na drugim wejściu i dodanie mu  zmniejszenie wartości licznika. Praktycznie przy minimalnie szybszych obrotach kręcąc ręka kierunek już nie jest poprawne określony o braku poprawności zliczenia wszystkich impulsów nie wspominając. 


Żaden przetwornik częstotliwość napięcie nie wchodzi w grę gdyż zależy mi na pozycji a nie prędkości. 
Czy istnieje jakiś sposób ażeby to wszystko sparować żeby wszystko działało?  Dodam że finalnie interesowały by mnie obroty około 300 rpm. 
Czy konieczne będzie użycie całkiem innej rodziny mikroprocesorów lecz no nie chciałbym strzelać z armaty do komara stąd moj post. 
Pozdrawiam


RE: Uno + enkoder. Pętla zwrotna do określenia pozycji - es2 - 25-10-2018

Widzę (albo nie bo nie ma), że w kodzie programu masz błąd.
Skoro nie umieszczasz kodu, to znaczy, ze albo jesteś kompletnym laikiem i potrzebujesz podstawowych kursów, albo robisz komercję i za poradę musisz zapłacić. W pcji2 z chęcią pomogę. Mam wyjątkowo niskie ceny. W tym tym tygodniu tylko10zł/h. W przyszłym pewnie też (ewentualnie wzrośnie do 150) ale od ok 15 to już będzie 400 za godzinę. Jeśli więc masz komercję to się spiesz ze zleceniem


RE: Uno + enkoder. Pętla zwrotna do określenia pozycji - michalt13 - 25-10-2018

https://pastebin.com/xP85Hzcx to jest mój kod.
Myślę że nie jestem ani laikiem ani nie robię tego pod sprzedaż tylko nie umieszczałem kodu ponieważ nie uważam żeby on miał jakieś znaczenie. Bardziej by mi zależało na podpowiedzi a nie odpowiedzi z konkretnymi funkcjami.
Chcę spróbować sprzęgnąć silnik krokowy w ujemnej pętli sprzężenia zwrotnego z enkoderem, który to będzie wzorcem do sterowania


RE: Uno + enkoder. Pętla zwrotna do określenia pozycji - es2 - 25-10-2018

Patrząc na kod stwierdzam, ze jesteś laikiem.
Chcesz podpowiedzi to masz: https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/


RE: Uno + enkoder. Pętla zwrotna do określenia pozycji - michalt13 - 25-10-2018

O ile o obsłudze przerwania można tam znaleźć informacje to jednak dalej nie wiem jak przyśpieszyć odczyt przerwania. Jakiś pomysł ?


RE: Uno + enkoder. Pętla zwrotna do określenia pozycji - es2 - 25-10-2018

(25-10-2018, 17:58)michalt13 napisał(a): O ile o obsłudze przerwania można tam znaleźć informacje to jednak dalej nie wiem jak przyśpieszyć odczyt przerwania. Jakiś pomysł ?
A z jaka prędkością kręci się ten enkoder? Bardziej skomplikowane przerwanie działało mi do ponad 20kHz, ten kod, strzelam, jakieś 50..70kHz.
Jeśli jest więcej, to uzyj timera i przechwytywania.