Wychodzi mi, że procedura ma jakieś 14 mikrosekund pomiędzy przerwaniami.
To już chyba nie Bascom i tak jak pisałem wyżej dedykowany procek tylko do konwertowania stanów enkodera na DIR/STEP albo inny protokół komunikacji.
Natomiast serwo nigdy nie jest tam, gdzie być powinno.
Zasada działania polega bowiem na porównaniu sygnału błędu z wartością zadaną.
Krótko mówiąc serwo kręci się tym szybciej, im dalej jest od założonego położenia.
Dodatkowo stosuje się algorytm PID i strojenie całego układu kinematycznego.
Coś jak z kierowcą, który musi przecież zacząć hamować przed miejscem w którym chce się zatrzymać.
Jak zacznie za wcześnie, to nie dojedzie, a jak za późno to przejedzie.
W pierwszym przypadku traci się czas, w drugim układ wpada w oscylacje.
Taka jest zasada, a konkretna implementacja zależy od pomysłowości projektanta.
.
Znaleziono 4 wyniki
Wróć do „Enkoder kwadraturowy - szybki "algorytm odczytu"”
- 18 wrz 2011, 11:00
- Forum: Automatyka przemysłowa
- Temat: Enkoder kwadraturowy - szybki "algorytm odczytu"
- Odpowiedzi: 18
- Odsłony: 6364
- 17 wrz 2011, 23:50
- Forum: Automatyka przemysłowa
- Temat: Enkoder kwadraturowy - szybki "algorytm odczytu"
- Odpowiedzi: 18
- Odsłony: 6364
Atmega ma parę mipsów i powinna się wyrabiać.
Bascom produkuje fatalny kod, ale bez przesady.
Mi się nie podoba układ formowania impulsów z dwiema gałęziami RC jedna po drugiej.
Trzeba by znaleźć maksymalną prędkość przy której liczy dobrze i popatrzeć oscyloskopem co się dzieje.
A tak w ogóle to ile obrotów na sekundę próbujesz zmierzyć ?
.
Bascom produkuje fatalny kod, ale bez przesady.
Mi się nie podoba układ formowania impulsów z dwiema gałęziami RC jedna po drugiej.
Trzeba by znaleźć maksymalną prędkość przy której liczy dobrze i popatrzeć oscyloskopem co się dzieje.
A tak w ogóle to ile obrotów na sekundę próbujesz zmierzyć ?
.
- 16 wrz 2011, 19:29
- Forum: Automatyka przemysłowa
- Temat: Enkoder kwadraturowy - szybki "algorytm odczytu"
- Odpowiedzi: 18
- Odsłony: 6364
Algorytm i jego implementacja są rzeczywiście bardzo proste.
Na jednym pinie enkodera badamy zbocza, a na drugim stany.
Chodzi o to czy na rosnącym zboczu jest stan wysoki czy niski i czy na opadającym jest na odwrót.
Taki układ można zrobić tak jak podano, łącząc oba wejścia INT i ustawiając jedno przerwanie od zbocza rosnącego a drugie od opadającego, albo na jedno wejście INT podać sygnał bezpośrednio, a na drugie po zanegowaniu.
Trzecim rozwiązaniem jest zbudować układ wystawiający impuls po każdej zmianie sygnału i tymi impulsami sterować jedno wejście INT.
Układ można sprawdzić w ten sposób, że z programu wywalić wszystko oprócz zwiększania/zmniejszania zmiennej IMP, wartość zmiennej wysyłać na wyświetlacz (może być nawet pojedyńczy LED), a na wejściach dać przyciski.
Przycisk podłączony do wejść INT powinien zmieniać wartość zmiennej IMP po każdym wciśnięciu i każdym puszczeniu.
Wciskając i puszczając przyciski we właściwej kolejności można zasymulować enkoder CW i CCW.
.
Na jednym pinie enkodera badamy zbocza, a na drugim stany.
Chodzi o to czy na rosnącym zboczu jest stan wysoki czy niski i czy na opadającym jest na odwrót.
Taki układ można zrobić tak jak podano, łącząc oba wejścia INT i ustawiając jedno przerwanie od zbocza rosnącego a drugie od opadającego, albo na jedno wejście INT podać sygnał bezpośrednio, a na drugie po zanegowaniu.
Trzecim rozwiązaniem jest zbudować układ wystawiający impuls po każdej zmianie sygnału i tymi impulsami sterować jedno wejście INT.
Układ można sprawdzić w ten sposób, że z programu wywalić wszystko oprócz zwiększania/zmniejszania zmiennej IMP, wartość zmiennej wysyłać na wyświetlacz (może być nawet pojedyńczy LED), a na wejściach dać przyciski.
Przycisk podłączony do wejść INT powinien zmieniać wartość zmiennej IMP po każdym wciśnięciu i każdym puszczeniu.
Wciskając i puszczając przyciski we właściwej kolejności można zasymulować enkoder CW i CCW.
.
- 15 wrz 2011, 21:42
- Forum: Automatyka przemysłowa
- Temat: Enkoder kwadraturowy - szybki "algorytm odczytu"
- Odpowiedzi: 18
- Odsłony: 6364
Przy dzisiejszych cenach mikrokontrolerów warto poświęcić jeden układ wyłącznie na obsługę enkodera, a resztę robić na drugim.
Na wyjściu "dekodera" wystawiać DIR/STEP, które to sygnały są szybko i bezproblemowo obsługiwane przez przerwania, bo jak dasz STEP na wejście INT, to tylko stan DIR musisz sprawdzić żeby wiedzieć czy licznik zwiększyć czy zmniejszyć.
.
Na wyjściu "dekodera" wystawiać DIR/STEP, które to sygnały są szybko i bezproblemowo obsługiwane przez przerwania, bo jak dasz STEP na wejście INT, to tylko stan DIR musisz sprawdzić żeby wiedzieć czy licznik zwiększyć czy zmniejszyć.
.