In this tutorial we are going to interface a rotary encoder with ATmega8 microcontroller. ATmega8 is atmel’s microcontroller series designed for embedded applications. Rotary encoder is used to know the position of movement and angular movement of a motor or axis. It’s a three terminal device usually, with power and ground pin counts to five. A rotary encoder mo
The pins of a rotary encoder are:
- Positive connected to +5V
- Output signal A pin
- Output signal B pin
- Clock pin or common pin.
The ENCODER provides pulses representing the change in the shaft position for the systems to understand. Consider a ROTATORY ENCODER is powered up and the shaft is moved.
As shown in above table, consider the shaft is moved clock wise. With this there will be Falling Edge at the A terminal then at B terminal.
Consider the shaft is moved Anti clock wise. With this there will be Falling Edge at the B terminal then at A terminal.
This edge will occur once for 360/20 = 18 degrees (This is for a Encoder with 20 position, this changes from type to type, higher the count greater the accuracy).
With both above conditions, we can get direction and degree of rotation. Thus we get required parameters for getting the position of a shaft.
Hardware: ATMEGA8, connecting pins, AVR-ISP PROGRAMMER, 220Ω resistor, LED (eight pieces), 1KΩ resistor, 220Ω resistor (2pieces), 100nF capacitor (2 pieces ), bread board.
Software: Atmel studio 6.1, progisp or flash magic.
For more detail: Rotary Encoder Interfacing with ATmega8 Microcontroller