unsigned int Get_ADCValue_MQ2(u8 times)//得到ADC采样内部传感器的值 取n次,然后平均
{
u32 val = 0;
u8 count;
for(count = 0; count < times; count++)
{
val += analogRead(MQ2_IO);//获取模拟量数值
delay(5);
}
return val/times;
}
void MQ2_PPM_Calibration(float RS)// 传感器校准函数
{
R0 = RS / pow(CAL_PPM / 613.9f, 1 / -2.074f);
}
float MQ2_GetPPM(void)// MQ2传感器数据处理
{
float Vrl = 5.0f * Get_ADCValue_MQ2(10) / 1024.f;
Vrl = ( (float)( (int)( (Vrl+0.005)*100 ) ) )/100;
float RS = (5.0f - Vrl) / Vrl * RL;
if(millis() < 5000) // 获取系统执行时间,10s前都进行校准
{
R0 = RS / pow(CAL_PPM / 613.9f, 1 / -2.074f);
}
float ppm = 613.9f * pow(RS/R0, -2.074f); //根据转化公式
return ppm;
请问标红代码的公式和“POW”、“613.9f”、什么意思
|