一、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 引脚 | 连接到 | 说明 |
---|---|---|
VCC | 5V | 连接至单片机的5V电源引脚,为传感器提供工作电源。确保电压为5V。 |
GND | GND | 连接至单片机的地线(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文库