在本教程中,我们将使旋转编码器与ATmega8微控制器接口。ATmega8是atmel的用于嵌入式应用的微控制器系列。 旋转编码器 用于了解电机或轴的运动位置和角运动。它通常是一个三端子设备,电源和接地引脚数为五。旋转编码器模块如下所示。
旋转编码器的引脚为:
- 地面。
- 正连接至+ 5V
- 输出信号A针
- 输出信号B针
- 时钟引脚或公共引脚。
ENCODER提供代表轴位置变化的脉冲,以供系统理解。考虑旋转编码器已通电并且轴已移动。
如上表所示,考虑将轴顺时针方向移动。这样,A端然后B端将有下降沿。
考虑将轴逆时针移动。这样,在B端子然后在A端子将有下降沿。
对于360/20 = 18度,此边缘将出现一次(这对于20位编码器,此类型因类型而异,计数越高,精度越高)。
在以上两个条件下,我们可以获得方向和旋转度。因此,我们获得了获取轴位置所需的参数。
组件
硬件: ATMEGA8,连接引脚,AVR-ISP编程器,220Ω电阻器,LED(八个),1KΩ电阻器,220Ω电阻器(2个),100nF电容器(2个),面包板。
软体: Atmel studio 6.1,progisp或flash magic。
电路图和工作说明
此处的电容器用于抵消ENCODER中的触点弹跳效应。没有这些电容器,位置读取会出现一些严重的问题。
当轴移动时,两个输出引脚输出之间会有时间差。对于逆时针旋转,ATMEGA8将识别出该时差。
如果顺时针旋转,二进制计数将增加一,该计数将在LED端口中显示,如图所示。
如果旋转为逆时针,则二进制计数减一,并且二进制计数显示在LED字节处。
记住这里我们没有设置atmega8的任何保险丝位,因此控制器将在1Mhz默认内部晶体上工作。
以下代码说明了旋转编码器与ATmega8微控制器的接口工作。