[其他ST产品] Stm32-使用TB6612驱动电机及编码器测速

[复制链接]
5235|27
 楼主| caoyunhj2301 发表于 2024-1-30 16:57 | 显示全部楼层
2、如何判断正反转
可以通过判断CR1寄存器中的DIR位,这个位是计数方向位
9168565b8b9ed7bda9.png
正转就是CNT向上计数(DIR==0)

反转就是CNT向下计数(DIR==1)
 楼主| caoyunhj2301 发表于 2024-1-30 16:57 | 显示全部楼层
3、圈数如何计算
就是上方说的,把ARR设置为电机旋转一周产生的脉冲数

电机转一圈,CNT达到ARR,溢出,进中断,设置一个变量++(正转),–(反转)
 楼主| caoyunhj2301 发表于 2024-1-30 16:57 | 显示全部楼层
4、转速如何计算
规定某个某个时钟周期内,读取有多少脉冲,从而计算转速

这里采用的是M法测速,测出的是电机是多少转/s

脉冲相当于路程,某个时钟周期相当于时间

这个上方有描述,可以往上翻翻
 楼主| caoyunhj2301 发表于 2024-1-30 17:00 | 显示全部楼层
为什么我的编码器没有输出,获取到的脉冲数是0
检查一下接线,从硬件开始,一步一步排查,对应的引脚是否正确

检查电源,编码器的电源是否打开,相应的PWM波是否有效

硬件确认没有错误,检查软件,编码器接口是否打开,PWM模式是否输出,电机IN引脚是否配置
 楼主| caoyunhj2301 发表于 2024-1-30 17:00 | 显示全部楼层
测速硬件展示及测速现象
硬件展示 4984165b8bab86f41f.png
 楼主| caoyunhj2301 发表于 2024-1-30 17:00 | 显示全部楼层
测速展示
可以看到当转速为1的时候,产生的脉冲是66-68,而我设置的闸门时间是50ms,结合电机转一圈是1320个脉冲,也就是说测量的脉冲数几乎正确。
 楼主| caoyunhj2301 发表于 2024-1-30 17:01 | 显示全部楼层
(66*2=132) 和编码器的线数完全吻合,测速成功!!! 4151065b8bad1e7009.png
 楼主| caoyunhj2301 发表于 2024-1-30 17:01 | 显示全部楼层
八、总结
这个编码器花费了我几乎四天的时间,也可能是自己比较小白,不懂得如何通过电机转一圈产生的脉冲数来计算速度,第一天就实现了读取脉冲

但是后面几天执着于测速,没有采取正确的方法,导致自己无线内耗,浪费了大量时间。

由于网上资料繁杂,找不到自己想要的,浪费了很多时间,很多只是一笔带过,没有系统的讲解原理和方法,我也不知道自己这篇文章是否正解

所以将这个学习总结分享给大家

当然,这都是在借鉴了前人的肩膀下,谢谢各位大佬和优秀的文章,我会在下方贴出自己觉得值得一看大佬们的链接,大家可以一看

欢迎大家指错,看到了就会修改,大家一起共同进步。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部