发新帖我要提问
12
返回列表
打印
[其他ST产品]

Stm32-使用TB6612驱动电机及编码器测速

[复制链接]
楼主: caoyunhj2301
手机看帖
扫描二维码
随时随地手机跟帖
21
caoyunhj2301|  楼主 | 2024-1-30 16:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
2、如何判断正反转
可以通过判断CR1寄存器中的DIR位,这个位是计数方向位

正转就是CNT向上计数(DIR==0)

反转就是CNT向下计数(DIR==1)

使用特权

评论回复
22
caoyunhj2301|  楼主 | 2024-1-30 16:57 | 只看该作者
3、圈数如何计算
就是上方说的,把ARR设置为电机旋转一周产生的脉冲数

电机转一圈,CNT达到ARR,溢出,进中断,设置一个变量++(正转),–(反转)

使用特权

评论回复
23
caoyunhj2301|  楼主 | 2024-1-30 16:57 | 只看该作者
4、转速如何计算
规定某个某个时钟周期内,读取有多少脉冲,从而计算转速

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

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

这个上方有描述,可以往上翻翻

使用特权

评论回复
24
caoyunhj2301|  楼主 | 2024-1-30 17:00 | 只看该作者
为什么我的编码器没有输出,获取到的脉冲数是0
检查一下接线,从硬件开始,一步一步排查,对应的引脚是否正确

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

硬件确认没有错误,检查软件,编码器接口是否打开,PWM模式是否输出,电机IN引脚是否配置

使用特权

评论回复
25
caoyunhj2301|  楼主 | 2024-1-30 17:00 | 只看该作者
测速硬件展示及测速现象
硬件展示

使用特权

评论回复
26
caoyunhj2301|  楼主 | 2024-1-30 17:00 | 只看该作者
测速展示
可以看到当转速为1的时候,产生的脉冲是66-68,而我设置的闸门时间是50ms,结合电机转一圈是1320个脉冲,也就是说测量的脉冲数几乎正确。

使用特权

评论回复
27
caoyunhj2301|  楼主 | 2024-1-30 17:01 | 只看该作者
(66*2=132) 和编码器的线数完全吻合,测速成功!!!

使用特权

评论回复
28
caoyunhj2301|  楼主 | 2024-1-30 17:01 | 只看该作者
八、总结
这个编码器花费了我几乎四天的时间,也可能是自己比较小白,不懂得如何通过电机转一圈产生的脉冲数来计算速度,第一天就实现了读取脉冲

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

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

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

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

欢迎大家指错,看到了就会修改,大家一起共同进步。

使用特权

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

本版积分规则