Cześć,
po analizie działania enkodera obrotowego (mechanicznego) i ilości problemów, jakie on dostarcza,
postanowiłem skonstruować prosty układ elektroniczny, który "wygładzi" impulsy enkodera.
Układ posiada dwie wersje. Obie są na przerzutnikach Schmitta.
Pierwszy na pojedynczych układach TI SN74LVC1G17:
a drugi na układzie 74HC14PW:
Sama płytka miała być mała i nie zajmować więcej miejsca niż sam encoder.
Uzyte zostały rezystory i kondensatory o rozmiarze 0603.
Układ testowany na atmega328p z zegarem wewnętrznym ustawionym na 8MHz.
Załączam również kod programu, który odczytuje pozycje enkodera:
Przy układzie HC74HC14 trzeba negować wejścia, stąd #define SCHMITT_NEG
Enkoder zlicza poprawnie impulsy i rozpoznaje kierunek obrotu.
Częstotliwość próbkowania enkodera to 7kHz.
Testowanie enkodera odbywa się za pomocą przerwania zegarowego (ustawiane na początku).
Zasilanie 3.3V oraz 5V
Użylem dwóch różnych enkoderów:
1. Alps EC11B2024304 (20 impulsów)
2. Bourns PEC114125FS0018 (18 impulsów)
Przy bardzo powolnym kręceniu, bourns potrafi zgubić impuls, alps nie gubi.
Maksymalna prędkość obrotowa enkoderów to 60rpm. Przy szybszym kręceniu jedynie alps da dobry odczyt.
Alps wymaga większego prądu 5mA, gdy Bourns 1mA.
Układ podciąga napięcie 5V do enkoderów przez rezystory 10k, co daje prąd 0,5mA
Pozdrawiam
Maciek
po analizie działania enkodera obrotowego (mechanicznego) i ilości problemów, jakie on dostarcza,
postanowiłem skonstruować prosty układ elektroniczny, który "wygładzi" impulsy enkodera.
Układ posiada dwie wersje. Obie są na przerzutnikach Schmitta.
Pierwszy na pojedynczych układach TI SN74LVC1G17:
a drugi na układzie 74HC14PW:
Sama płytka miała być mała i nie zajmować więcej miejsca niż sam encoder.
Uzyte zostały rezystory i kondensatory o rozmiarze 0603.
Układ testowany na atmega328p z zegarem wewnętrznym ustawionym na 8MHz.
Załączam również kod programu, który odczytuje pozycje enkodera:
Code: c
Przy układzie HC74HC14 trzeba negować wejścia, stąd #define SCHMITT_NEG
Enkoder zlicza poprawnie impulsy i rozpoznaje kierunek obrotu.
Częstotliwość próbkowania enkodera to 7kHz.
Testowanie enkodera odbywa się za pomocą przerwania zegarowego (ustawiane na początku).
Zasilanie 3.3V oraz 5V
Użylem dwóch różnych enkoderów:
1. Alps EC11B2024304 (20 impulsów)
2. Bourns PEC114125FS0018 (18 impulsów)
Przy bardzo powolnym kręceniu, bourns potrafi zgubić impuls, alps nie gubi.
Maksymalna prędkość obrotowa enkoderów to 60rpm. Przy szybszym kręceniu jedynie alps da dobry odczyt.
Alps wymaga większego prądu 5mA, gdy Bourns 1mA.
Układ podciąga napięcie 5V do enkoderów przez rezystory 10k, co daje prąd 0,5mA
Pozdrawiam
Maciek
Cool? Ranking DIY