来源于小伙伴提问。
以下是我的一些看法。
你这个问题听起来像是供电不足的问题,也许是12V转5V的电压降压模块无法提供足够的电流来同时驱动多个电机。
1
电流供应不足的深入分析
你用12V锂电池通过降压模块提供5V电压给电机。如果两个电机可以正常运行,但第三个电机加入后所有电机都停止工作,且主板指示灯开始乱闪,这很可能是电流不足导致的。
电源问题的可能性:
电机瞬时启动电流:电机在启动瞬间的电流需求远高于正常运行电流。例如,假设你的每个电机空载运行电流为500mA,但启动时可能需要2A甚至更多。如果你同时启动多个电机,降压模块可能无法提供足够的电流。
降压模块的输出能力:大多数DC-DC降压模块都有电流上限,你需要确保你的模块能够同时驱动四个电机的启动电流以及持续运行电流。
如何检查:
使用万用表测量5V供电线路上的电压,特别是在电机启动时,看看电压是否显著下降。如果电压低于5V,甚至接近或低于4.5V,这就说明你的降压模块不能提供足够的电流。
查阅降压模块的规格,检查它的最大输出电流能力是否足以驱动所有电机。你可以通过查阅电机的规格书或实测启动电流,估算出总电流需求。
解决方案:
升级降压模块:如果确认电流不足,可以更换一个电流容量更大的DC-DC降压模块,确保它能够提供所有电机的最大启动电流。
逐步启动电机:你可以通过STM32分时启动电机,避免瞬时电流过大。例如,延迟每个电机的启动时间,这样每个电机的启动电流不会叠加在一起。
2
电源供电线路的细节排查
在高电流情况下,电源线的线径和接线的可靠性都非常重要。
如果电源线电阻过大,或者接线不良,会导致电压跌落,影响电机和主板的稳定运行。
如何检查:
检查电源线的线径:确保使用的电源线足够粗,能承载所有电机运行时所需的电流。一般来说,电流越大,线径就需要越粗。
检查接线头:松动的接线头会引起电阻增大和电压不稳定。确保所有电源线接头都牢固无松动。
解决方案:
使用粗线:根据电流需求选择合适的线径。如果每个电机的电流需求是2A,总共需要8A以上的电流,建议使用至少16AWG甚至14AWG的线材。
减少接线长度:过长的电源线也会引起电压降,尽量缩短电源线长度,降低线材的电阻。
3
电机驱动芯片过载或过热保护
TB66和L9110S都是桥式电机驱动芯片,它们都有过载和过热保护机制。
如果电流过大,或者芯片温度过高,驱动芯片会进入保护模式,暂时关闭输出,从而导致电机停止工作。
如何检查:
监测温度:你可以通过触摸芯片表面或者使用红外温度计,检查驱动芯片是否在运行时温度过高。如果芯片温度接近其工作极限,说明可能进入了热保护模式。
过流保护:驱动芯片在面对电机瞬间过大电流时,也可能触发过流保护。你可以查阅TB66和L9110S的规格书,看看它们的最大电流是否满足你电机的要求。
解决方案:
加强散热:给驱动芯片加装散热片或使用小型散热风扇,确保芯片在工作时保持较低的温度。
更换驱动芯片:如果芯片的电流能力不够,可以考虑使用更大功率的驱动芯片,例如DRV8833、L298N等,它们能提供更高的电流并且散热设计更好。
4
主控板电压异常复位问题
主板指示灯乱闪,可能是因为STM32的供电出现问题,导致微控制器复位或失去控制。
由于你同时使用电机驱动和主板供电,电压的不稳定可能会干扰STM32的正常运行。
如何检查:测量STM32主板供电的电压,看是否稳定在3.3V。如果电机启动时,主板电压大幅波动,STM32可能会复位,导致你看到指示灯乱闪的现象。
解决方案:如果电机电流需求大,建议使用独立的电源模块分别为电机和主板供电。你可以使用一个12V锂电池专门供电给电机,而主板使用独立的稳压电源来确保稳定运行。
所以,你可以通过以下步骤,更有效地排查和解决多电机驱动的稳定性问题。
首先测量电源电压,尤其是在电机启动时,确认是否供电不足。如果是,考虑更换更大功率的DC-DC降压模块。
检查驱动芯片的温度,确保不过热并且没有触发保护机制。增加散热或更换更强的驱动芯片。
如果问题仍未解决,考虑使用独立电源为主板和电机分别供电,确保STM32的运行稳定。
最后,问题已经解决,是供电存在问题。