- 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两个值满足上边的式子,才能确定电机正常工作。