您好,欢迎来到抵帆知识网。
搜索
您的当前位置:首页MQ甲烷天然气传感器设计原理图及其程序

MQ甲烷天然气传感器设计原理图及其程序

来源:抵帆知识网


MQ甲烷天然气传感器设计原理图及其程序

GE GROUP system office room 【GEIHUA16H-GEIHUA GEIHUA8Q8-

MQ-4甲烷、天然气传感器模块使用说明书

简要说明:

一、 尺寸:32mm X22mm X27mm 长X宽X高 二、 主要芯片:LM393、ZYMQ-4气体传感器 三、 工作电压:直流5伏 四、 特点:

1、具有信号输出指示。

2、双路信号输出(模拟量输出及TTL电平输出)

3、TTL输出有效信号为低电平。(当输出低电平时信号灯亮,可直接接单片机)

4、模拟量输出0~5V电压,浓度越高电压越高。 5、对甲烷气体,天然气有较好的灵敏度。

6、具有长期的使用寿命和可靠的稳定性 7、快速的响应恢复特性 五、应用:

适用于家庭或工厂的甲烷气体,天然气等监测装置。

【标注说明】

【原理图】

【测试方式】

1、传感器先预热20秒左右。

2、将传感器放在无被测气体的地方,顺时针调节电位器,调节到指示灯亮,然后逆时针转半圈,调到指示灯不亮,然后接近被测气体,指示灯亮,离开被测气体,指示灯熄灭,就证明传感器是好的!

【测试程序】 实现功能:

1、

当测量浓度大于设定浓度时,单片机IO口输出低电平

/******************************************************************** 实现功能:此版配套测试程序 使用芯片:ATS52 晶振:11.0592MHZ 波特率:9600 编译环境:Keil 作者:zhangxinchun 淘宝店:汇诚科技

【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! *********************************************************************/

/******************************************************************** 说明:1、

当测量浓度大于设定浓度时,单片机IO口输出低电平

*********************************************************************/

#include

//库文件

#define uchar unsigned char//宏定义无符号字符型 #define uint unsigned int //宏定义无符号整型

/******************************************************************** I/O定义

*********************************************************************/

sbit LED=P1^0; sbit DOUT=P2^0; 入端

/******************************************************************** 延时函数

*********************************************************************/

void delay()//延时程序

{

uchar m,n,s;

for(m=20;m>0;m--) for(n=20;n>0;n--) for(s=248;s>0;s--); }

/******************************************************************** 主函数

*********************************************************************/

void main() {

//定义单片机P1口的第1位 (即P1.0)为指示端 //定义单片机P2口的第1位 (即P2.0)为传感器的输

while(1) //无限循环 {

LED=1; //熄灭P1.0口灯

if(DOUT==0)//当浓度高于设定值时 ,执行条件函数 {

delay();//延时抗干扰

if(DOUT==0)//确定 浓度高于设定值时 ,执行条件函数

{

LED=0; //点亮P1.0口灯

} } } }

/******************************************************************** 结束

*********************************************************************/

【测试程序】

*********************************************************************/

#include //头文件 #define uchar unsigned char #define uint unsigned int

//宏定义无符号字符型 //宏定义无符号整型

code uchar

seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //显示段码 数码管字跟

uchar wei[4]={0XEf,0XDf,0XBf,0X7f}; //位的控制端

//位控制码

sbit ST=P3^0; //A/D启动转换信号 sbit OE=P3^1; //数据输出允许信号 sbit EOC=P3^2; //A/D转换结束信号 sbit CLK=P3^3; //时钟脉冲 uint z,x,c,v,AD0809, date;

//定义数据类型

/****************************************************************** 延时函数

******************************************************************/ void delay(uchar t)

{

uchar i,j;

for(i=0;i0;j--); { ; } } }

/**********************************************************************

数码管动态扫描

*********************************************************************/

void xianshi() //显示函数 {

uint z,x,c,v; z=date/1000;

//求千位 //求百位

x=date%1000/100; c=date%100/10; v=date%10;

//求十位

//求个位

P2=0XFF; P0=seg7code[z]&0x7f; P2=wei[0]; delay(80); P2=0XFF; P0=seg7code[x]; P2=wei[1]; delay(80); P2=0XFF; P0=seg7code[c]; P2=wei[2]; delay(80); P2=0XFF; P0=seg7code[v]; P2=wei[3]; delay(80);

P2=0XFF; }

/*************************************************************************

CLK振荡信号

**************************************************************************/

void timer0( ) interrupt 1 //定时器0工作方式1 {

TH0=(65536-2)/256; TL0=(65536-2)%256; CLK=!CLK;

//重装计数初值 //重装计数初值 //取反

}

/*************************************************************************

主函数

**************************************************************************/

void main() {

TMOD=0X01;

CLK=0;

//脉冲信号初始值为0 //定时时间高八位初值 //定时时间低八位初值 //开CPU中断 //开T/C0中断

//定时器中断0

TH0=(65536-2)/256; TL0=(65536-2)%256; EA=1;

ET0=1; TR0=1;

while(1)

{

//无限循环

ST=0; ST=1; ST=0;

//使采集信号为低 //开始数据转换 //停止数据转换

while(!EOC); OE=1;

//等待数据转换完毕

//允许数据输出信号

AD0809=P1; OE=0;

//读取数据

//关闭数据输出允许信号

if(AD0809>=251) AD0809=250; date=AD0809*20;

//电压显示不能超过5V

//数码管显示的数据值,其中20为采集数据

的毫安值 } }

xianshi();

//数码管显示函数

【ADC0809资料】

ADC0809中文资料

1.主要特性 1)8路8位A/D转换器,即分辨率8位。 2)具有转换起停控制端。 3)转换时间为100μs 4)单个+5V电源供电 5)模拟输入电压范围0~+5V,不需零点和满刻度校准。 6)工作温度范围为-40~+85摄氏度 7)低功耗,约15mW。

2.内部结构 ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图13.22所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近 ADC0809内部结构框图 寄存器、三态输出锁存器等其它一些电路组成。因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。输入输出与TTL兼容。

3.外部特性(引脚功能) ADC0809芯片有2引脚,采用双列直插式封装,下面说明各引脚功能。 IN0~IN7:8路模拟量输入端。 2-1~2-8:8位数字量输出端。

ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。 ALE:地址锁存允许信号,输入,高电平有效。 START: A/D转换启动信号,输入,高电平有效。

EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平) OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

CLK:时钟脉冲输入端。要求时钟频率不高于0KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一+5V。 GND:地。

ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正

在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。【图片展示】

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务