Sa tutorial na ito pupunta kami sa isang rotary encoder na may ATmega8 microcontroller. Ang ATmega8 ay serye ng microcontroller ng atmel na dinisenyo para sa mga naka-embed na application. Ginagamit ang rotary encoder upang malaman ang posisyon ng paggalaw at angular na paggalaw ng isang motor o axis. Karaniwan ito ay isang tatlong aparato ng terminal, na may bilang ng lakas at ground pin na limang. Ang isang rotary encoder module ay ipinapakita sa ibaba.
Ang mga pin ng isang rotary encoder ay:
- Lupa
- Positive na konektado sa + 5V
- Output signal Isang pin
- Output signal B pin
- Clock pin o karaniwang pin.
Nagbibigay ang ENCODER ng mga pulso na kumakatawan sa pagbabago sa posisyon ng baras para maunawaan ng mga system. Isaalang-alang ang isang ROTATORY ENCODER ay pinalakas at ang baras ay inilipat.
Tulad ng ipinakita sa talahanayan sa itaas, isaalang-alang ang poste ay inilipat ng orasan na matalino. Sa pamamagitan nito magkakaroon ng Falling Edge sa A terminal pagkatapos ay sa B terminal.
Isaalang-alang ang baras ay inilipat Anti orasan matalino. Sa pamamagitan nito magkakaroon ng Falling Edge sa B terminal pagkatapos ay sa A terminal.
Ang gilid na ito ay magaganap minsan para sa 360/20 = 18 degrees (Ito ay para sa isang Encoder na may 20 posisyon, nagbabago ito mula sa uri hanggang sa uri, mas mataas ang bilang na mas malaki ang kawastuhan).
Sa parehong mga kondisyon sa itaas, makakakuha tayo ng direksyon at antas ng pag-ikot. Sa gayon nakukuha namin ang mga kinakailangang parameter para sa pagkuha ng posisyon ng isang baras.
Mga Bahagi
Hardware: ATMEGA8, pagkonekta ng mga pin, AVR-ISP PROGRAMMER, 220Ω risistor, LED (walong piraso), 1KΩ risistor, 220Ω risistor (2 piraso), 100nF capacitor (2 piraso), tinapay board.
Software: Atmel studio 6.1, progisp o flash magic.
Circuit Diagram at Paggawa ng Paliwanag
Ang mga capacitor dito ay para sa pag-neutralize ng contact bouncing effect sa ENCODER. Nang walang mga capacitor magkakaroon ng ilang mga seryosong problema sa pagbabasa ng posisyon.
Kapag ang poste ay inilipat magkakaroon ng oras pagkakaiba sa pagitan ng dalawang output pin output. Makikilala ng ATMEGA8 ang pagkakaiba sa oras na ito para sa pakaliwa ng Anti na karunungan sa pag-ikot.
Kung ang pag-ikot ay pakanan sa pag-ikot ang bilang ng binary ay nadagdagan ng isa, at ang bilang na ito ay ipinapakita sa LED port tulad ng ipinakita sa pigura.
Kung ang pag-ikot ay Anti orasan na matalino ang bilang ng binary ay nabawasan ng isa at ang bilang ng binary ay ipinapakita sa LED byte.
Tandaan dito hindi kami nagtatakda ng anumang mga piyus ng fuse ng atmega8, Kaya gumagana ang controller sa 1Mhz default na panloob na kristal.
Ang pagtatrabaho ng interfacing rotary encoder sa ATmega8 microcontroller ay ipinaliwanag sa ibaba code.