亿加合和智能车制作

标题: 编码器的测速及辨向处理 [打印本页]

作者: 49741933o    时间: 2017-2-5 22:31
标题: 编码器的测速及辨向处理
本帖最后由 49741933o 于 2017-2-5 22:33 编辑

一、编码器简介编码器一般有5根线,分别是VCC,GND,A相,B相,Z相。有500线,1024线等等,线数即编码盘刻的槽数,线数越多,测速越准确。A,B两相均为测速脉冲,但他们相差90度相位,我们可以利用这90度相位差来实习辨向,具体作法请看下面。Z相是机械零位,编码器转一周,Z相输出一个脉冲,所以一般用它来测编码器转了几周或者告知微处理器已经回到机械零位。
二、如何辨向
1.软件方式
有些单片机本身具有正交解码功能,如飞思卡尔K60,STM32,可以直接把A,B相 接入正交解码模块,然后软件就可以处理了。对于没有正交解码模块的单片机,可以这样处理进行处理,将A相的下降沿作为中断触发端,当中断发生时判断B相的电平。如B想为高电平,则编码器正转(或反,看你自己怎么定义正反),若B相为低电平,则编码器反转。

2.硬件方式
电路如下图1所示,
                                               
                                                                                        图1

采用双路D触发器来辨向,以第1路为例,PULSEL_1(对应A相)一方面接到单片机的IO口上(配置其为下降沿触发),另一方便接在D触发器的1D脚上(至于为什么这么做,请看下面);PULSEL_2(对应B相)接在D触发器的1CLK上,由于A,B两相相位始终互差90度,关系如图2。关系很明了,编码器正转时,PULSEL_2(对应B相)的每一个上升沿(D触发器CLK端是上升沿触发),D触发器输入端PULSEL_1(1D,A相)都对应高电平,此时D触发器的输出端1Q输出高电平;同理,编码器反转都对应1Q端输出低电平,判断D触发器的输出端高低电平即可判断出转向,因此1Q接到单片机普通IO口即可。
                                            

                                                                                   图2
三、如何计转速
测转速就一句话,辨向中有提到,PULSEL_1(对应A相)一方面接到单片机的IO口上(配置其为下降沿触发),另一方便接在D触发器的1D脚上,为什么要这样呢?原因就是接到单片机上要测速,测速即测在一定时间内测出脉冲的个数,脉冲个数/一段时间,就是转速。如何测脉冲,将A相所接引脚配置为下降沿触发,如果说编码器是500线的,那么编码器转一圈产生500个下降沿脉冲。如何产生定时,用定时器即可。
举个例子来说,500线的编码器,100ms的定时,下降沿触发,单片机里定义整形变量pulse。正转时,每产生一个下降沿脉冲,pulse++;反转时,每产生一个下降沿脉冲,pulse--。定时100ms时间到,读取变量pulse的个数,换算之后即可得到转速。

四、单位换算
经过以上几步就可以得到一个这样的单位,脉冲数/一段时间。那么如何得到转速单位 r/s 呢?
编码器一转(1 r)产生500个脉冲,当100 ms定时时间到,读取到pulse = 50000 时,说明100 ms时间内编码器正转了50000/500 = 100转(r),即 100 r/100 ms,也即 1 r/ms = 1000 r/s。

五、说明
上述电路图已实际应用在电路中,实测可靠,既可得转速,又可判方向。大家可以看到我用K60的正交解码模块得到的编码器转速。

                                                






作者: luckner    时间: 2017-2-6 10:34
楼主  图片挂了

作者: じ~凝眸处    时间: 2017-2-6 11:06
:lol:lol
作者: 49741933o    时间: 2017-2-6 13:56
luckner 发表于 2017-2-6 10:34
楼主  图片挂了

怎么没法改啦?我在新浪博客里面写好了,然后全部复制过来了,就这样了。

作者: luckner    时间: 2017-2-6 14:09
49741933o 发表于 2017-2-6 13:56
怎么没法改啦?我在新浪博客里面写好了,然后全部复制过来了,就这样了。

你看看还能不能重新编辑一下 直接把图片贴过来

作者: 乡下土豆    时间: 2017-2-8 10:43
楼主把新浪的链接发上来就可以了
作者: 49741933o    时间: 2017-2-9 13:08
乡下土豆 发表于 2017-2-8 10:43
楼主把新浪的链接发上来就可以了

链接在这  http://blog.sina.com.cn/s/blog_12f1bb6bc0102wybg.html

作者: 冥西    时间: 2018-4-28 21:58
欧姆龙大编码器的白线(b相)可以作为时钟输出信号吗

作者: accnt    时间: 2018-5-30 09:05
:victory::victory:




欢迎光临 亿加合和智能车制作 (http://www.znczz.com/) Powered by Discuz! X3.2