目录
一、MQ-3酒精浓度感器介绍
MQ-3酒精浓度传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(Sn02)。当传感器所处环境中存在酒精蒸汽时,传感器的电导率随空气中酒精气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。MQ-3气体传感器对酒精的灵敏度高,可以抵抗汽油、烟雾、水蒸气的干扰。这种传感器可检测多种浓度酒精气氛,是一款适合多种应用的低成本传感器。
二、MQ-3酒精浓度传感器接线说明
VCC(+):电源正极接口,外接电源3 ~ 5V电源正极,接单片机的5v或者3v引脚
GND(-):电源负极接口,外接电源负极或地线GND,接单片机的GND
AO :模拟信号输出口,接单片机的PA1采集引脚
三、测试说明、MQ-3酒精浓度传感器驱动代码
编译环境:keil5
测试单片机: STM32F103C8T6
功能:功能1:设定酒精浓度阈值,超过酒精浓度阈值触发蜂鸣器报警
功能2:发送酒精浓度数据串到口调试助手上进行显示
MQ3.c文件编写酒精浓度传感器驱动代码如下:
#include "MQ3.h"
#include "OLED.h"
#include "FMQ.h"
#include <stdio.h>
#include "Serial.h"
u8 times;
void 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=GPIO_Pin_1;
GPIO_Initstructre.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_Initstructre);
GPIO_SetBits(GPIOA,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;
}
MQ3.h文件,对驱动函数经行了声明:
#ifndef __MQ3_H
#define __MQ3_H
#include "stm32f10x.h" // Device header
#include "Delay.h"
void Adc_Init(void);
u16 Get_Adc(u8 ch);
u16 Get_Adc_Average(u8 ch,u8 times);
#endif
四、串口调试助手把采集的酒精浓度数据发送出来
printf("酒精浓度= %d ",MQ3_Value);
五、串口调试助手软件下载
六、源代码
《STM32单片机+MQ-3酒精浓度传感器+OLED屏幕+蜂鸣器报警+酒精浓度数据发送到串口调试助手》源代码资源-CSDN文库