Dnia 10.10.2008 w Elektronika
2 komentarze »


Enkoder obrotowy wykorzystywany jest do pomiaru aktualnego położenia wału (zwykle silnika elektrycznego), informacja ta może być wykorzystywana do precyzyjnego ustawiania wału w zadanej pozycji lub/i pomiaru jego prędkości obrotowej. Mikrokontroler LM3S2965 wyposażony został w dwa hardwarowe dekodery sygnałów z dwóch enkoderów, co w zupełności wystarcza np. gdy chcemy zbudować za jego pomocą sterownik silnika BLDC. W moim przypadku uC ma posłużyć jako sterownik czterech silników DC. W związku z czym obsługę pozostałych dwóch enkoderów musiałem zrealizować softwarowo. Ponieważ docelowo enkodery będą niskiej rozdzielczości (100 pozycji na obrót), skorzystałem z funkcji uC która pozwala na wywołanie przerwania na wejściu przy wykryciu zbocza narastającego.

Enkoder posiada dwa kanały A i B a ich sygnały są przesunięte względem siebie o 90 stopni w fazie, ustawiając przerwanie na kanale A zostaje ono wywoływane przy pojawieniu sie narastającego zbocza (zmiana sygnału z niskiego na wysoki), następnie sprawdzany jest poziomu sygnału na kanale B. W zależności od podłączenia, podczas obrotów w lewo będziemy zawsze odczytywać stan wysoki na kanale B a dla obrotów w prawo zawsze stan niski, w zależności od tej wartości inkrementujemy lub dekrementujemy licznik dla danego enkodera.

2 komentarze do “Stellaris® LM3S2965 Evaluation Board – Osługa czterech obrotowych enkoderów”
 

How do you handle soft encoder decoding. Could you please send ypur code.

Best regards

Napisane przez Ahmet, dnia 10.11.2012 o 09:44

 

I cant find this code but it was done very quick and dirt. I set up interrupt and wait for rising edge on channel A, when it occurred I was checking state of channel B. Nothing special.

Napisane przez admin, dnia 12.11.2012 o 23:40

Napisz komentarz