• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Uno + enkoder. Pętla zwrotna do określenia pozycji
#1
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
 
Odpowiedź
#2
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
 
Odpowiedź
#3
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
 
Odpowiedź
#4
Patrząc na kod stwierdzam, ze jesteś laikiem.
Chcesz podpowiedzi to masz: https://www.arduino.cc/reference/en/lang...interrupt/
 
Odpowiedź
#5
O ile o obsłudze przerwania można tam znaleźć informacje to jednak dalej nie wiem jak przyśpieszyć odczyt przerwania. Jakiś pomysł ?
 
Odpowiedź
#6
(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.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości