一、烟雾+土壤湿度传感器模块分析
·
一、模块
1、烟雾传感器模块
2、土壤湿度传感器模块
…
其基本都是通过检测电压变化而进行的,使用adc进行采集数字信号的变化,进而得到想要的模拟量值来。其中涉及到很多数字信号和模拟量之间的关系,例如温度变化到导致的电压改变,又或是重量变化导致电压发生改变等等,这些变化在特定环境(如常温常压)与电压呈现出一点的线性关系。通过adc采集电压变化的数字信号,就能得到与之对应的模拟量值来。
二、adc配置与传感器配置
//开启adc+dma传输
uint16_t ADC_ConvertedValue[2]={0};
HAL_ADC_Start_DMA(&hadc1, (uint32_t *)ADC_ConvertedValue, 2);
//土壤湿度传感器
uint32_t TS_read()
{
uint32_t date=0;
for(int i=0;i<10;i++)
{
date+=ADC_ConvertedValue[1];
}
date/=10;
return date;
}
//烟雾传感器
float mq2_read_ppm()
{
float date=0;
for(int i=0;i<10;i++)
{
date+=ADC_ConvertedValue[0];
}
date/=10;
float vol=(date*5/65536);
float rs=(5-vol)/(vol*0.5);
float ro=6.64;
float ppm=pow(11.5428*ro/rs,0.6549f);
return ppm;
}
//调用
uint32_t value;
value =TS_read();
printf("土壤湿度百分比:%f \n",(1-((float)value/65536))*100);
printf("烟雾浓度 %fppm\n",mq2_read_ppm());


更多推荐


所有评论(0)