STM32单片机+MQ9可燃气体传感器+OLED屏幕+蜂鸣器报警+可燃气体数据发送到串口调试助手+源代码

一、MQ9可燃气体传感器介绍

        MQ-9 是一款用于检测多种可燃气体的气体传感器,特别适用于检测一氧化碳(CO)、甲烷(CH₄)、液化石油气(LPG)等常见的可燃气体。该传感器采用半导体气敏元件,具有高灵敏度和较宽的气体检测范围,广泛应用于家庭安全、工业检测、环境监控等领域。

MQ-9 可燃气体传感器基本介绍:

工作原理:

        MQ-9传感器的核心部分是一个氧化锡(SnO₂)半导体气敏材料。当气体(如一氧化碳、甲烷等)与传感器表面的气敏材料接触时,气体分子会与气敏材料发生化学反应,改变传感器表面电阻。电阻的变化会被转换为电信号输出。传感器的电阻变化与气体浓度成正比,从而实现气体浓度的检测。

主要特点:
  • 广泛的气体检测范围:MQ-9可以检测多种可燃气体,特别是一氧化碳(CO)、甲烷(CH₄)、液化石油气(LPG)等。
  • 高灵敏度:对低浓度的可燃气体也具有较高的灵敏度。
  • 模拟和数字输出:提供模拟信号(AO)和数字信号(DO),可以根据应用需求选择适合的输出方式。
  • 低功耗设计:适合长期运行,尤其是在电池供电的应用场景中。
  • 稳定性和耐久性:传感器具有较好的长期稳定性和耐久性,适用于长时间运行的设备。

二、MQ9可燃气体传感器接线说明

        以下是 MQ-9 可燃气体传感器 的接线说明表,详细描述了每个引脚的功能以及如何连接到控制器(如Arduino等):

MQ-9 可燃气体传感器接线说明表:

MQ-9 引脚连接到说明
VCC5V连接至单片机的5V电源引脚,为传感器提供工作电源。确保电压为5V。
GNDGND连接至单片机的地线(GND),作为电路的公共地,确保电流回流正常。
AO模拟输入引脚(如A0)模拟输出,连接至单片机的模拟输入引脚(如Arduino的A0)。输出的电压与气体浓度成正比,通常在0V到5V之间。
DO数字输入引脚(如D2)数字输出,连接至单片机的数字输入引脚(如Arduino的D2)。当气体浓度超过设定阈值时,DO引脚输出高电平(1)或低电平(0)。

三、测试说明、MQ9可燃气体传感器驱动代码

编译环境:keil5

测试单片机: STM32F103C8T6

功能:功能1:采集可燃气体数据在OLED屏幕上显示出来,超过阈值触发蜂鸣器报警

           功能2:把采集可燃气体数据发送到串口调试助手上

MQ9.c文件编写可燃气体传感器驱动代码如下:

u8 times;
void MQ9_Adc_Init()
{ 
 GPIO_InitTypeDef GPIO_Initstructre;     
 ADC_InitTypeDef ADC_InitStruct;
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1,ENABLE);
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
 GPIO_Initstructre.GPIO_Mode=GPIO_Mode_AIN; 
 GPIO_Initstructre.GPIO_Pin=MQ9_PIN;
 GPIO_Initstructre.GPIO_Speed=GPIO_Speed_50MHz;
 GPIO_Init(MQ9_PORT,&GPIO_Initstructre);
 GPIO_SetBits(MQ9_PORT,GPIO_Pin_1);
 
 RCC_ADCCLKConfig(RCC_PCLK2_Div6);
 ADC_DeInit(ADC1);
 ADC_InitStruct.ADC_ContinuousConvMode = DISABLE;
 ADC_InitStruct.ADC_DataAlign=ADC_DataAlign_Right;
 ADC_InitStruct.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;
 ADC_InitStruct.ADC_Mode=ADC_Mode_Independent;
 ADC_InitStruct.ADC_NbrOfChannel = 1;
 ADC_InitStruct.ADC_ScanConvMode = DISABLE;
 ADC_Init(ADC1,&ADC_InitStruct);
 ADC_Cmd(ADC1,ENABLE);
 ADC_ResetCalibration(ADC1);
  
 while(ADC_GetResetCalibrationStatus(ADC1));
 
 ADC_StartCalibration(ADC1);
                 
 while(ADC_GetCalibrationStatus(ADC1));	
}
	  
u16 Get_Adc(u8 ch)
{
 ADC_RegularChannelConfig(ADC1,ch,1,ADC_SampleTime_239Cycles5);

 ADC_SoftwareStartConvCmd(ADC1,ENABLE);

 while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));

 return ADC_GetConversionValue(ADC1);

}


u16 Get_Adc_Average(u8 ch,u8 times)
{
 u32 temp_val=0;
 u8 t;
 for(t=0;t<times;t++)
  {
   temp_val+=Get_Adc(ch);
   Delay_ms(5);
  }
 return temp_val/times;

}
	

四、串口调试助手把采集的可燃气体数据发送出来

五、串口调试助手软件下载

串口调试助手-keil5调试工具_stm32水位传感器资源-CSDN文库

六、源代码

STM32单片机+MQ9传感器+OLED屏幕+蜂鸣器报警+MQ9数据发送到串口调试助手+源代码资源-CSDN文库

七、MQ9可燃气体传感器资料文档

MQ9传感器文档资料文档资料资源-CSDN文库

八、硬件实物接线图

MQ9接线图资源-CSDN文库

九、原理图

MQ-9可燃气体传感器原理图.pdf资源-CSDN文库 

MQ9气体检测模块Gas Sensor适用于检测 LPG,CO,CH4。Gas Sensor(MQ9)模块可用于气体泄漏检测(可以在家里和工厂中使用)。由于其的灵敏度高,响应时间快,所以能够时时进行测量。 传感器的灵敏度可以通过使用电位器进行调整。 MQ9 气体检测模块特点: 检测范围广 能够稳定和长时间使用 响应快,灵敏度高 MQ9 气体检测模块规格参数: 硬件连接: 气体检测:基本例子 在这个例子中,传感器连接到A0引脚。 从传感器读取到的电压可以显示出来。 并且该值可以用作检测气体浓度是否增加/减少的基准。 测量:近似值 这个例子介绍了一种知道气体近似浓度的方法。 根据MQ9传感器数据表,在标准条件下对这些方程计算的结果进行测试,不需要进行校准。 不过它可能会根据温度或湿度的变化而变化。 将气体传感器保持在清洁的空气环境中。 上传以下程序。 然后打开Arduino IDE的串行监视器。 记下R0的值,这需要在下一个程序中使用。 读取稳定后,请将R0放在下方。 将下面的R0替换为上面测试的R0值 . 将下面的R0替换为上面测试的R0值。 将传感器放置在上述任何一种气体中。 现在,我们可以从下图获得气体的浓度。 根据该图可以看出,我们可以测试的最小浓度为200ppm,最大值为10000ppm,换句话说,我们可以得到0.02%〜1%之间的气体浓度。 然而,我们不能得到一个公式,因为比例和浓度之间的关系是非线性的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式Dora

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值