STM32定时器捕获编码器模式测速和方向测不准问题

探讨使用STM32定时器的编码器模式在低速下测速不准的问题,通过调整传感器位置和采用波形周期测速的方法解决了这一难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**

STM32定时器捕获编码器模式测速和方向测不准问题

  1. 问题概述

关于STM32编码器模式电机测速的资料网上一抓一大把,却发现真的拿过来用还是有问题的,比如刚刚做了个东西,是个个头比较大的麦克纳姆轮车,控制运动就需要精确的测量转速和方向,我用的是直流有刷、减速比90、11线霍尔编码器的减速电机。
原本想着用个定时器的编码器模式直接把速度和方向读回来多省事,后面花点时间去调PID,然而问题来了,编码器我知道,定时器编码器模式我也知道,但是凑在一起就是不好好工作我就知道为什么了。
问题表现是什么样的呢:
接法是这样的,我用的STM32F103,TIM2、3、4、5的CH1、2分别接四个直流电机霍尔编码器的A/B信号,然后开了四个TIM的编码器模式捕获,计数器上限值设最大,起始值设中间值。
再开个TIM6,100模式溢出读四个定时器的计数值,来求转速和方向,计划很好,现实却让人无法理解。
调试嘛,我先用手拧轮子,想看看准不准,然而就发现,没有速度、也没有方向,中间值设的32767,拧完轮子发现计数值要么是32768要么就是32765,这也不对啊。
尝试着拧快点,多拧会,发现计数值确实变了,正常情况下减速比90、11线的电机轮子转一圈编码器出脉冲990个,但计数值明显不符,比实际少了很多。

  1. 问题分析

那么问题来了,为什么会少呢?线没问题,脉冲好像也没问题,我用单个编码器的A信号直接用定时器捕获上升沿测频率,并保存数据

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值