用STM32输入捕获测量电机出现速度太大
我用霍尔传感器测量PWM可调的小马达速度,并将速度串口发送液晶屏,霍尔传感器的电平用的是定时器的输入捕获,发现速度有时过大本来最大135,有时候有个573280,请问是什么问题 可能的原因包括噪声和抖动,这时我们可以考虑加滤波,软件硬件都可以;
定时器发声溢出没有考虑进去;
计算速率的相关代码逻辑有问题;
确认传感器本身有无问题; 这个速度明显不正常,可能是 计时器溢出 了,检查一下你的定时器计数范围和预分频器设置。 你是用 上升沿捕获 还是 双边沿捕获?如果用了双边沿,计算时可能要注意周期的一致性。 速度突变可能是 霍尔传感器信号抖动,建议打开输入滤波器(ICF),看看能不能稳定测量值。 试试在 输入捕获中断 里增加一个异常值过滤,比如如果测出的时间间隔比上一次小很多,就丢弃。 这个霍尔传感器的信号是稳定的吗?可以用示波器看看输出波形,看看有没有毛刺或者错误脉冲。 定时器的 时钟源 设置对了吗?如果用了 APB1 或 APB2 时钟,要确保它们的频率是你期望的值。 你是如何计算速度的?如果是 速度 = 1 / 周期,那必须确保周期不会被除零或者计算溢出。 试试 开个低通滤波,比如取最近几次的平均值,这样可以减少偶发的错误测量带来的影响。 如果测量结果偶尔跳变,可能是 霍尔传感器接线松动 或者 接触不良,导致信号丢失或者误触发。 速度计算是否考虑了 定时器翻转?如果定时器计数器溢出但没有正确处理,就可能导致测量值异常大。 这个大概率是抖动产生的噪声,可以软件平滑滤波处理一下。
页:
[1]