标题: 正交编码器,直流电机测速异常 [打印本页]

作者: hzxyy    时间: 2025-8-3 21:50
标题: 正交编码器,直流电机测速异常
最近学习STM32,参考的是江协科技例程。
有个 正交编码器 的例程,使用STM32定时器内的编码器接口,例程中硬件是使用的减速电机。
我手头没有那样的减速电机,就连接到旋转编码器上,程序运行正常,效果也正常。


就是左右旋转编码器,OLED显示屏上的显示的数值也是递减或递增的,与预期效果一致。

若硬件连接的是 金属码盘测速马达 编码器 30线AB相编码。


程序运行时候,用手指拨动码盘,显示屏上的数值就乱了,有时增加,有时减少的,数值变化大,不知是什么原因导致的?




作者: GlenXu    时间: 2025-8-4 08:47
两组光电检测的相对位置对吗,检查过吗?
提供完整的码盘光电检测电路图,帮你分析。
可能问题在光电管的接收电路处理上。脉冲边缘不齐导致计数混乱。
作者: hzxyy    时间: 2025-8-4 10:20
GlenXu 发表于 2025-8-4 08:47
两组光电检测的相对位置对吗,检查过吗?
提供完整的码盘光电检测电路图,帮你分析。
可能问题在光电管的 ...

非常感谢你的回复,给我提醒了!


这是店家提供的电路图,我用万用表测,是一致的。
用江协科技例程原始程序,手动码盘,数字基本不变的;
后来把改成浮空输入,数值有变化了,变化趋势是对的,但数值跳变没规律。
程序基本没调整,所以估计到是硬件导致的异常。
你说的脉冲边缘不齐,让我想到了,可能实际输出波形并非滞后90度的,那得用示波器看看实际输出波形的。
晚点再实测看看的,多谢!


作者: 一事无成    时间: 2025-8-4 21:31
EC11一般是上拉的,默认是高电平,输出是低电平。
你这个是下拉的,默认是低电平,输出是高电平。
作者: xiaobendan001    时间: 2025-8-5 07:34
一事无成 发表于 2025-8-4 21:31
EC11一般是上拉的,默认是高电平,输出是低电平。
你这个是下拉的,默认是低电平,输出是高电平。

无所谓高低输出吧,AB相差90度,就算是边沿有毛刺,正交信号的最大优势就是抗干扰。因为必定有一个信号是稳定的。
作者: a399288395    时间: 2025-8-5 08:19
本帖最后由 a399288395 于 2025-8-5 09:04 编辑

(补充编辑一下,我以为是单光电传感器,我看错了;发完后才看到后面的电路图,)编码器是AB两根线 以相位差的形式输出信号; 而这个码盘,是靠缺口和实心部分对光电二极管进行遮挡和透射 使光电管输出0和1; 只用1根线, 那么程序和两根线的编码器肯定是不一样了;   码盘只需要用1个IO口外部中断就可以进行计数了;;
作者: GlenXu    时间: 2025-8-5 08:40
其实你可以用收轻轻转动码盘,用万用表看看信号的变化。
估计是整体电位偏低,所以信号不可靠,可以尝试加大1。6k到4.7k.
另外R1太小也会导致接收管的脉冲宽度不稳定,因为太亮了。
另外码盘是有厚度的,所以码盘最好是黑色的,否则码盘齿的侧面反光会影响输出脉冲的数量。
作者: rundstedt    时间: 2025-8-5 15:54
楼主图下面显然不是正交编码器,要么码盘上面图案是两个相差90°的(显然不是),要么是接收传感器是两个错位90°的接收管,这要求码盘图案遮光和不遮光各占50%,也不符合要求。所以只能测速无法测出方向,楼主显然是种瓜得瓜种豆得豆,最后的现象符合你用的传感器。
作者: GlenXu    时间: 2025-8-6 09:19
不是正交码盘也可以自己调整位置和角度,然他有相差就可以.
我们平时用的首轮、鼠标中轮等都是这个原理,但相差多不是90度,
不管是AB还是BA,相差都非常小,但也能很好的工作。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1