旋转编码器编程原理实例

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何使用旋转编码器、编码开关,旋转编码开关、编码器的原理

在电子产品设计中,经常会用到旋转编码开关,也就是所说的旋转编码器、数码电位器、Rotary Encoder 。它具有左转,右转功能,有的旋转编码开关还有按下功能。为了使刚接触这种开关的朋友了解旋转开关的编程,我来介绍下它的原理和使用方法:

以我厂生产的EC11型编码开关为例:如图1:

三只脚:1 2 3脚一般是中间2脚接地,1、3脚上拉电阻后,当左转、右转旋转时,在1、3脚就有脉冲信号输出了。

两只脚:为按压开关,按下时导通,回复时断开。

在单片机编程时,左转和右转的判别是难点,用示波器观察这种开关左转和右转时两个输出脚的信号有个相位差,如图2。

由此可见,如果输出1为高电平时,输出2出现一个高电平,这时开关就是向顺时针旋转;当输出1 为高电平,输出2出现一个低电平,这时就一定是逆时针方向旋转。

所以,在单片机编程时只需要判断当输出1为高电平时,输出2当时的状态就可以判断出是左旋转或是右旋转了。

旋转编码开关(Rotary Encoder switch)

我前面介绍的2篇文章:“自己动手做收音机(LC72131)”和“电脑USB接口LCD液晶显示板(LCD Smartie)”都使用了这种旋转编码开关(Rotary Encoder switch),一个使用3脚的,后面一个使用5脚的,大家可能对这种玩意都不是很了解,但涉及到有调整的地方,这个玩意使用真是很爽,我弄了2个,研究了一下,供大家参考~

5脚的ALPS:

<-- ALPS Incremental Encoder (EC11 series)

具有左转,右转,按下三个功能。4、5脚是中间按下去的开关接线 1 2 3脚一般是中间2脚接地,1、3脚上拉电阻后,当左转、右转旋纽时,在1、3脚就有脉冲信号输出了。这是标准资料:

在单片机编程时,左转和右转的判别是难点,用示波器观察这种开关左转和右转时两个输出脚的

信号有个相位差,见下图:

由此可见,如果输出1为高电平时,输出2出现一个高电平,这时开关就是向顺时针旋转; 当输出

1 为高电平,输出2出现一个低电平,这时就一定是逆时针方向旋转.

所以,在单片机编程时只需要判断当输出1为高电平时,输出2当时的状态就可以判断出是左旋转

或是右旋转了。

还有另外一种3脚的,除了不带按钮开关外,和上面是一样的使用。

---------------------- 我是分隔线----------------------

编码器总结(类似音响上的音量调节旋钮)

1.要求旋转速度快,调节就快,速度慢,,调节就慢

2.机械的编码器要24脉冲/每转,勉强可以分辨3到4种速度(每隔100ms计算一次速度),,机械的缺点是有毛刺,,寿命短,,通常在1万转左右,,不过bounce的号称20万转

3.希望编码器每转的脉冲愈多愈好,霍尔的编码器和光电的编码器脉冲都很多,,但是价格都很高,,唉

4.cui的编码器最好了,啥都有,按钮功能也有,,配套的旋钮也有,,完美,,可是国内没有卖的

---------------------- 我是分隔线----------------------

旋转编码器检测转动方向的电路

---------------------- 我是分隔线----------------------

旋转编码器的抗抖动计数电路

摘要:旋转编码器应用于角度定位或测量时,由于旋转轴的晃动可能引起编码器输出波形的,从而引发误计数现象。介绍了一个抗抖动计数电路,滤除了旋转编码器因抖动而造成的误计数。

关键词:旋转编码器抗抖动电路数字电路

旋转编码器应用于角度定位或测量时,通常有A、B、Z三相输出。旋转编码器的输出波形见图1。A相和B相输出占空比为50%的方波。编码器每转一周,A相和B相输出固定数目的脉冲(如100个脉冲)。当编码器正向旋转时,A相比B相超前四分之一个周期;当编码器反向旋转时,B 相比A相超前四分之一个周期。A相和B相输出方波的相位差为90°。编码器每转一周,Z相输出一个脉冲。由于编码器每转一周,A相和B相输出固定数目的脉冲,则A相或B相每输出一个脉冲,表示编码器旋转了一个固定的角度。当Z相输出一个脉冲时,表示编码器旋转了一周。因此

旋转编码器可以测量角位移及位移方向。

问题出在伺服系统停止工作时,若无锁定,则旋转轴受外力(如风力影响)可能自由晃动,因而引起编码器输出波形抖动,如图2所示,从而引起误计数。在这种情况下,就不能对波形进行正确计数。虽然可以通过软件设置标志状态,用记录历史状态的变化来滤除误计数,但是程序耗费颇大。因此,本人设计了一个抗抖动计数电路。它能够自动消除抖动造成的误计数。

1 抗抖动计数电路原理图

图3是抗抖动计数电路原理图。此电路滤除了旋转编码器输出波形的抖动现象。该电路分为四个部分:译码电路U4A;互锁电路U5A、U5B;正旋计数链J1、J3、J5和反旋计数链J2、J4、J6。U4A为二四译码器,U5A、U5B为与门,J1~J6为D触发器。正旋计数链负责对编码器正向旋转的计数,反旋计数链负责对编码器反向旋转的计数。

2 抗抖动计数电路工作分析

图4为二四译码器输出的波形。译码器产生d、a、b、c四种不同的状态。在图3中当B=0、A=0时,译码器Q0输出为d状态,d状态为高电平。当B=0、A=1时,译码器Q1输入为a状态,a状态为高电平。当B=1、A=1时,译码器Q2输出为b状态,b状态为高电平。B状态不影响计数和方向确定,在图3电路中没有使用。当B=1、A=0时,译码器Q3输出为c状态,c状态为高电平。

当旋转编码器正向旋转时,译码器输出的状态顺序为d、a、b、c、d、a、b、c……。如图4所示。当B=0、A=0时,进入d状态,与门U5A的Pin2=a=0(Pin是管脚的意思),于是U5A的输出Pin3=0。D触发器J1的R=d=1、S=0,因此J1被清0.与门U5B的Pin5=c=0,于是U5B的输出Pin4=0。D触发器J2的R=d=1、S=0,因此J2也被清0。这时J1、J2的Q端都为1,与门U5的Pin1=Pin6=1,U5A和U5B都处于等待开门状态。当进入状态a

时,Q1=a=1,U5A的Pin2=a=1。

由于c=0,所以J2的Q端仍为1,U5A的Pin1=1,U5A的输出Pin3=1.J1的R=d=0、S=1,因此J1被置1。J1的Q=1,Q=0。J1的Q=1,正旋标志送到了J3的D端。时J1的Q端关闭了U5B。

相关文档
最新文档