感谢各位的回复。 让各位 见笑了,图片是从网上抓了,不是我自己的啦。
to ocon:我思路是这样的:12个脉冲/360度,以360度/s的速度旋转,则大约83ms输出一个完整的脉冲,每2ms循环检测一次,应该不会漏检测吧(不是很肯定,毕竟没有做过)。只要AB出现低电位就延时1ms左右再读取AB的数据,应该也算有去抖动吧。
to hellomcu :“正转与反转的判断周期可以拉长一点。如你所述,11-01-00-10或者11-10-00-01即可判断正转/反转。
如:01->00: 出现一次加1,设为N
01->11: 出现一次加1,设为M
当N或M比对方大,同时也大于一个设定的周期数,即可以准确判断是正转或反转呀”这个思路不错,现在我实际仿真发现编码器在停止时未必是11,可能是10或者01,取决于停止前旋转的方向---大概是编码器质量的原因,一分钱一分货。而且在停转的瞬间“手抖动”会读得 一个与旋转方向相反的数据,快速旋转也偶尔会有,快速旋转时大概10次有4次会有相反的数据。只是单识别的方向还要知道转了多少格啊?这个有点难度。
“不要用手直接去转编码器转动轴,因为手的接触会带来抖动”。这个东西本来就是用手旋转的啊,不过实际是要加塑胶旋钮在上面的,下星期装个上去看是否会好点。
to 5880527:我现在用的是12个脉冲/360度的,也有18&24个脉冲/360度的,不过我没有用。
to 农民讲习所 "加个时间限制,在时间限制内反方向无效 100ms就可以 "我不是很明白这句话的意思。或者向hellomcu说的那样,正转反转谁的数据多就以谁为准。
“101电容对地去掉”看见别人的电路也是如此,不过别人不告诉我软件的写法---台湾的软体工程师就是这样,比较保守了。
to zusen:可否提供思路,指点一下?不需源码,只需思路,软件我自己慢慢摸索。谢谢了
还望各位有用过编码器的,指点一二,感激不尽~~~ |