打印

用过旋转编码器的进来指导下,这样做能减少误判吗?

[复制链接]
20157|49
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Jack602|  楼主 | 2010-11-12 09:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Jack602 于 2010-11-13 21:21 编辑

旋转 编码器中间脚还是接地,A相B相分别接单片机外部中断0、外部中断1

中断触发方式为下降沿

根据中断后,判断另一角是高还是低...不过精度不高,不知道有没有更好的方法

相关帖子

沙发
yewuyi| | 2010-11-12 10:16 | 只看该作者
不行。

使用特权

评论回复
板凳
自然的天逸| | 2010-11-12 10:30 | 只看该作者
手动编码器 很多出来的波形抖动还有就是 A B两相电压停止的时候不确定 有时为高有时为低

使用特权

评论回复
地板
Jack602|  楼主 | 2010-11-12 11:43 | 只看该作者
2# yewuyi

请指教...

使用特权

评论回复
5
yewuyi| | 2010-11-12 11:48 | 只看该作者
A相下降沿中断后如果B相为高电平则正转,否则反转。

使用特权

评论回复
6
coody| | 2010-11-12 11:49 | 只看该作者
一般的手动旋转编码器内部是机械触点,有抖动的。用外中断估计比较麻烦。
我一般用定时查询,很少误码,除非编码器特别差。。。

使用特权

评论回复
7
Jack602|  楼主 | 2010-11-12 11:57 | 只看该作者
6# coody

用定时器怎么查询? 能给个思路吗?谢谢...

使用特权

评论回复
8
Jack602|  楼主 | 2010-11-12 11:59 | 只看该作者
3# 自然的天逸

这时候高低应该没关系的吧...又不会触发中断...

使用特权

评论回复
9
coody| | 2010-11-12 12:22 | 只看该作者
7楼,中断查询,比较上一次的状态,可以得到边沿信息。比如检测A相下降沿时B相的电平,就可以知道方向,而下降沿的个数就是步数。我一般按最高一秒5圈的速度来设计,所以一般查询速度是100us~1ms。查询可以方便的滤掉抖动。

使用特权

评论回复
10
ar_dong| | 2010-11-12 12:27 | 只看该作者
还是找带编码器接口的mcu吧

使用特权

评论回复
11
armmage| | 2010-11-12 16:58 | 只看该作者
5楼大侠说的办法可行 我以前就这么做的,能判断正反就不太怕抖动,因为正反记数可以抵消的,硬件上不用两个中断,A线中断时读B的状态就可以了,当然细微的抖动还是会造成误差的 话说我用的是2000脉冲/圈的,细微抖动太小,实际不可能。

使用特权

评论回复
12
yewuyi| | 2010-11-12 20:25 | 只看该作者
5楼大侠说的办法可行 我以前就这么做的,能判断正反就不太怕抖动,因为正反记数可以抵消的,硬件上不用两个中断,A线中断时读B的状态就可以了,当然细微的抖动还是会造成误差的 话说我用的是2000脉冲/圈的,细微抖动 ...
armmage 发表于 2010-11-12 16:58


如果很担心抖动,可以在进入中断,可以连读A、B两相电平3次,如果3次值均不相等,则放弃本次计数,根据3中取2的原则确定A、B电平值,再判断A的电平是否为低(A相取下降沿中断触发),如果不为低,即为抖动错误进行放弃,如果为低,则根据B相电平值进行正反转计数判断。

使用特权

评论回复
13
yewuyi| | 2010-11-12 20:27 | 只看该作者
如果转动频率不是很高,其实用中断不如用查询,用定时查询方式能‘天然’的抑制很多干扰,再结合上一楼的方法,可以很有效的工作。

使用特权

评论回复
14
armmage| | 2010-11-12 21:18 | 只看该作者
很多细节叶大侠都讲明了,首先你先确认下你编码器是多少脉冲/转的,这个值越大,抖动误差越小,如果你的编码器是朝一个方向转很少正反切换转,那么抖动影响更小,如果你是想做360度定位,我建议用绝对值编码器而不是旋转编码器。**中我那个2000脉冲的做的项目,误差很小,你不用太担心

使用特权

评论回复
15
Jack602|  楼主 | 2010-11-12 22:03 | 只看该作者
11# armmage

这位大侠,“正反记数可以抵消”是什么意思? 本人脑袋配置低了点..能..再解释解释?

使用特权

评论回复
16
zjw5000| | 2010-11-12 22:06 | 只看该作者
不需要中断,直接把a b 接2个普通io,最好用小于2ms的时基进行定时查询,然后看你用的飞梭的脉冲数,即360度有多少脉冲。 几乎是不会出现误码的。

使用特权

评论回复
17
自然的天逸| | 2010-11-12 22:42 | 只看该作者
我写的也是定时器查询

使用特权

评论回复
18
自然的天逸| | 2010-11-12 22:43 | 只看该作者
明天可以把代码贴上

使用特权

评论回复
19
QuakeGod| | 2010-11-13 00:44 | 只看该作者
用不用中断也无所谓,
但是关键是 正负要相抵,而且不能丢脉冲。
这次的状态必须和上次的状态相关,
这样再怎么抖动也不会产生误差。

使用特权

评论回复
20
isoar| | 2010-11-13 07:56 | 只看该作者
楼主用的什么牌子型号的编码器

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

209

帖子

2

粉丝