智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3369|回复: 8
打印 上一主题 下一主题

[硬件类] 编码器的测速及辨向处理

[复制链接]

4

主题

28

帖子

0

精华

高级会员

Rank: 4

积分
623
威望
304
贡献
187
兑换币
196
注册时间
2015-8-1
在线时间
66 小时
跳转到指定楼层
#
发表于 2017-2-5 22:31:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 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的正交解码模块得到的编码器转速。

                                                





回复

使用道具 举报

1

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
240
威望
132
贡献
76
兑换币
87
注册时间
2018-5-18
在线时间
16 小时
8#
发表于 2018-5-30 09:05:44 | 只看该作者
:victory::victory:
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
499
威望
254
贡献
155
兑换币
168
注册时间
2017-12-2
在线时间
45 小时
7#
发表于 2018-4-28 21:58:33 | 只看该作者
欧姆龙大编码器的白线(b相)可以作为时钟输出信号吗
回复 支持 反对

使用道具 举报

4

主题

28

帖子

0

精华

高级会员

Rank: 4

积分
623
威望
304
贡献
187
兑换币
196
注册时间
2015-8-1
在线时间
66 小时
6#
 楼主| 发表于 2017-2-9 13:08:34 | 只看该作者
乡下土豆 发表于 2017-2-8 10:43
楼主把新浪的链接发上来就可以了

链接在这  http://blog.sina.com.cn/s/blog_12f1bb6bc0102wybg.html
回复 支持 反对

使用道具 举报

0

主题

62

帖子

0

精华

高级会员

Rank: 4

积分
949
威望
497
贡献
292
兑换币
340
注册时间
2016-11-28
在线时间
80 小时
毕业学校
河南科技大学
5#
发表于 2017-2-8 10:43:27 | 只看该作者
楼主把新浪的链接发上来就可以了
回复 支持 反对

使用道具 举报

12

主题

2039

帖子

2

精华

顶级版主

只好把岁月化成歌 留在山河

Rank: 11Rank: 11Rank: 11Rank: 11

积分
43740

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章资源大师奖章优秀版主奖章

威望
26000
贡献
9354
兑换币
6551
注册时间
2011-9-30
在线时间
4193 小时
毕业学校
南京动专
4#
发表于 2017-2-6 14:09:22 | 只看该作者
49741933o 发表于 2017-2-6 13:56
怎么没法改啦?我在新浪博客里面写好了,然后全部复制过来了,就这样了。

你看看还能不能重新编辑一下 直接把图片贴过来
回复 支持 反对

使用道具 举报

4

主题

28

帖子

0

精华

高级会员

Rank: 4

积分
623
威望
304
贡献
187
兑换币
196
注册时间
2015-8-1
在线时间
66 小时
3#
 楼主| 发表于 2017-2-6 13:56:56 | 只看该作者
luckner 发表于 2017-2-6 10:34
楼主  图片挂了

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

使用道具 举报

56

主题

1684

帖子

2

精华

版主

有所思,有所为。

Rank: 9Rank: 9Rank: 9

积分
9497

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章资源大师奖章论坛骨干奖章

威望
6762
贡献
83
兑换币
3601
注册时间
2014-10-31
在线时间
1326 小时
2#
发表于 2017-2-6 11:06:12 | 只看该作者
:lol:lol
回复 支持 反对

使用道具 举报

12

主题

2039

帖子

2

精华

顶级版主

只好把岁月化成歌 留在山河

Rank: 11Rank: 11Rank: 11Rank: 11

积分
43740

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章资源大师奖章优秀版主奖章

威望
26000
贡献
9354
兑换币
6551
注册时间
2011-9-30
在线时间
4193 小时
毕业学校
南京动专
1#
发表于 2017-2-6 10:34:28 | 只看该作者
楼主  图片挂了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-4-25 16:00 , Processed in 0.074905 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表