- Vmotor的电路引脚

![]()
Vmotor引脚采集电机实时电压,然后通过MON4引脚传给单片机
2、VBATT的电路引脚


![]()
VBATT给继电器供电,透传给VSENSE,VSENSE通过VBAT_SENSE引脚传给单片机
3、ADC1通道值分布

VBAT_SENSE的值传给CH0
MON4的值传给CH5
4、获取ADC1中的通道值
UWORD uwADCData;
if (ADC1_GetChResult(&uwADCData,ADC1_CH0)) //vbat factor 0.047
{
uwVbatteryData = uwADCData;
PowerVoltage = (ULONG)uwVbatteryData;
}
if (ADC1_GetChResult(&uwADCData,ADC1_CH5)) //mon4 factor 0.039
{
MotorVoltage = uwADCData;
}
5、获取ADC的增益系数

从上图可以看出,CH0的增益系数为 0.047,CH5的增益系数为 0.039。

更准确的增益系数为:
CH0为12/256
CH5为10/256
由增益系数可以获得:
VBAT_SENSE * 12/256 = PowerVoltage
VMOTOR * 10/256 = MotorVoltage
6、电机正常工作与否的判断
¼ * VBAT_SENSE < VMOTOR < ¾ * VBAT_SENSE
一般设置VMOTOR值为VBAT_SENSE的(1/4, 3/4)之间时,表示电机正常工作
¼ * 256/12 * PowerVoltage < 256/10 * MotorVoltage < ¾ * 256/12 * PowerVoltage
PowerVoltage < 48/10 * MotorVoltage < 3 * PowerVoltage
即需要保证MotorVoltage、PowerVoltage两个值满足上边的式子,才能确定电机正常工作。

本文详细解析了Vmotor和VBATT电路引脚的功能,以及如何通过单片机监测电机实时电压和供电状态。介绍了ADC1通道值的分布及获取方法,深入分析了增益系数的计算,并提供了一种判断电机是否正常工作的数学模型。
1万+

被折叠的 条评论
为什么被折叠?



