我正在建造四轮流浪者,并为后轮组使用PID DC电动机控制。速度反馈由霍尔效应传感器提供,每旋转两个脉冲。

这意味着在电动机为100%占空比的情况下,传感器返回240Hz信号(脉冲之间为4.2ms),并在当车轮转动20%占空比时的最低占空比,传感器会返回14.33 Hz信号(脉冲之间为74.2 ms)。定时器以捕获霍尔效应输入并将其转换为频率。这是通过在每个上升沿触发的ISR比较两个捕获样本来完成的。速度和计时器比较尚未完成,它将返回最后的计算值。很好,但是我也发现自己处于电动机停止旋转并且由于第二个脉冲尚未到达而无法更新捕获频率的情况。

我只是想知道是否有一种明智的处理方法?

谢谢。

评论

每转两次计数似乎很小,但如果在100%的占空比下获得240Hz,难道不是在20%的占空比下获得20%的频率(48Hz)吗?您永远不会明确声明自己的速度。

谢谢查克。我不知道速度,我只知道霍尔效应传感器在电机轴上有一个简单的磁铁,我认为这会触发磁铁的南极和北极的霍尔传感器(因此每转两个)。我还假设电动机的速度不是完全线性的。因此,当电动机在100%占空比下变平时,驱动电动机的20%占空比将不是全速的20%。

#1 楼

我最终提出了一个解决方案。在用于1ms计时器的ISR中,将全局变量递减至零(在零处停止)
在用于比较和捕获计时器的ISR中,该计时器检测来自霍尔效应传感器的脉冲,将上述相同的全局变量设置为“超时值”(在我的情况下为100),这是表示脉冲最大周期的毫秒值。
在轮询霍尔效应传感器的频率时,我现在检查全局变量是否为零如果是,我将返回零(如果100毫秒内未接收到任何脉冲,则将减为零),否则我将返回上次测量的频率。电机静止之前的时间为73.2毫秒,因此100毫秒的超时为我提供了一些缓冲,例如,如果机器人正在下坡,并且实际上可以记录较慢的速度在这个

评论


$ \ begingroup $
很高兴您找到解决问题的方法!请单击答案左侧的对勾,以接受您自己的答案。这样可以解决网站上的问题,并帮助将来的访问者更快地找到高质量的答案。
$ \ endgroup $
–卡盘
17年7月31日在13:39