W tym projekcie zamierzamy połączyć OBROTOWY ENKODER z ARDUINO. ARDUINO UNO to płytka rozwojowa oparta na kontrolerze ATMEGA przeznaczona dla elektroników i hobbystów. W ARDUINO mamy 20 pinów I / O, więc możemy zaprogramować 20 pinów UNO do wykorzystania jako wejście lub wyjście.
Pokrętło jest używane do znać pozycję ruchu i kątowego ruchu silnika lub osi. Zwykle jest to urządzenie z trzema zaciskami, z pinami zasilania i uziemienia jest łącznie 5 zacisków. Poniżej przedstawiono moduł KODERA 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.
Wymagane składniki
Sprzęt: płytka Arduino uno, piny łączące, rezystor 220Ω, dioda LED (osiem sztuk), rezystor 1KΩ, rezystor 220Ω (2 sztuki), kondensator 100nF (2 sztuki), płytka chlebowa.
Oprogramowanie: Arduino nightly
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. Arduino UNO 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.
Praca Arduino z Rotary Encoder jest wyjaśniona krok po kroku w kodzie C podanym poniżej.