W tym samouczku zamierzamy połączyć enkoder obrotowy z mikrokontrolerem ATmega8. ATmega8 to seria mikrokontrolerów firmy Atel przeznaczona do zastosowań wbudowanych. Enkoder obrotowy służy do poznania położenia ruchu i ruchu kątowego silnika lub osi. Zwykle jest to urządzenie z trzema zaciskami, a pin zasilania i uziemienia liczy do pięciu. Poniżej przedstawiono moduł enkodera obrotowego.
Kołki enkodera obrotowego to:
- Ziemia.
- Dodatni podłączony do + 5V
- Sygnał wyjściowy A pin
- Sygnał wyjściowy pin B.
- Pin zegara lub wspólny pin.
ENKODER dostarcza impulsy reprezentujące zmianę położenia wału, aby systemy mogły je zrozumieć. Rozważmy, że ENKODER OBROTOWY jest zasilany, a wałek jest poruszany.
Jak pokazano w powyższej tabeli, należy wziąć pod uwagę, że wałek jest przesuwany zgodnie z ruchem wskazówek zegara. Dzięki temu na terminalu A pojawi się Falling Edge, a następnie na terminalu B.
Weź pod uwagę, że wał został przesunięty w kierunku przeciwnym do ruchu wskazówek zegara. Dzięki temu na terminalu B pojawi się Falling Edge, a następnie na terminalu A.
To zbocze wystąpi raz dla 360/20 = 18 stopni (dotyczy to enkodera z pozycją 20, zmienia się z typu na typ, im wyższa liczba, tym dokładność).
Przy obu powyższych warunkach możemy uzyskać kierunek i stopień obrotu. W ten sposób otrzymujemy wymagane parametry do ustalenia położenia wału.
składniki
Sprzęt: ATMEGA8, piny łączące, PROGRAMATOR AVR-ISP, rezystor 220Ω, dioda LED (osiem sztuk), rezystor 1KΩ, rezystor 220Ω (2 sztuki), kondensator 100nF (2 sztuki), płytka chlebowa.
Oprogramowanie: Atmel studio 6.1, progisp lub flash magic.
Schemat obwodu i objaśnienie robocze
Tutaj kondensatory neutralizują efekt odbijania się styków w KODERZE. Bez tych kondensatorów wystąpią poważne problemy z odczytem położenia.
Gdy wał zostanie przesunięty, wystąpi różnica czasu między wyjściami dwóch pinów wyjściowych. ATMEGA8 rozpozna tę różnicę czasu dla ruchu wskazówek zegara w kierunku przeciwnym do ruchu wskazówek zegara.
Jeśli obrót jest zgodny z ruchem wskazówek zegara, liczba binarna jest zwiększana o jeden, a ta liczba jest wyświetlana w porcie LED, jak pokazano na rysunku.
Jeśli obrót jest przeciwny do zegara, liczba binarna jest zmniejszana o jeden, a liczba binarna jest wyświetlana w bajcie diody LED.
Pamiętaj, że tutaj nie ustawiamy żadnych bitów bezpiecznika atmega8, więc kontroler będzie działał na domyślnym krysztale wewnętrznym 1Mhz.
Działanie sprzężenia enkodera obrotowego z mikrokontrolerem ATmega8 jest wyjaśnione w poniższym kodzie.