1.传感器原理:
MP-2 烟雾检测气体传感器采用多层厚膜制造工艺 Al2O3 加热器和金属氧化物半导体气敏层分别制作在陶瓷基板的两侧,并封装 在金属外壳中。当环境空气中有被检测到的气体时,传感器的电导率 气体浓度越高,传感器的电导率越高。使用简单 该电路可以将该电导率的变化转换为与气体浓度对应的输出信号 MP-2技术手册
2.技术参数:
3.测试电路:
4.测试敏感曲线
6.思路:
根据测试电路和敏感特性曲线MP-2类似于铂电阻,内部电阻值会随浓度而变化,串联负载电阻会对地面产生电压,电压曲线是非线性的。因此,有必要根据曲线拟合曲线,获得拟合公式来计算真实的烟雾浓度。 拟合在线曲线 将采集到这个多项式中的电压带入y是当前浓度。
6.验证
- 原理图 2.代码
void adc1_thread_main(void *parameter) {
while(1) {
/* 滤波5次 */ for(rt_uint8_t i = 0;i < 5;i ) {
adc_read(); h2s_vol = h2s_a; yw_vol = yw_b; co_vol = co_c; o2_vol = o2_d; rt_thread_mdelay(100); } /* 换算 */ h2s_vol = h2s_vol / 5; yw_vol = yw_vol / 5; co_vol = co_vol / 5; o2_vol = o2_vol / 5; /* 计算浓度 */ yw_ppm_count(yw_vol); oc_ppm_count(co_vol); h2s_ppm_count(h2s_vol); o2_ppm_count(o2_vol); rt_kprintf("********换行*******\n"); h2s_vol = yw_vol == o2_vol = 0;
rt_thread_mdelay(500);
}
}
/* 烟雾浓度换算 */
static rt_uint16_t yw_ppm_count(double x)
{
double a =0 ,b = 0,c = 0,d = 0;
double ax =0 ,bx = 0,cx = 0,dx = 0;
double y;
a = x * x * x * x * x;
b = x * x * x * x;
c = x * x * x;
d = x * x ;
ax = 0.0001923 * a;
bx = 0.006017 * b;
cx = 0.07267 * c;
dx = 0.425 * d;
y = ax - bx + cx - dx + (1.267 * x) + 1.209;
y = y * 1000;
rt_kprintf("yw_y = %dppm\n",(int)y);
return (rt_uint16_t)y;
}
3.打印结果