圣源电子制作

标题: MQ-2烟雾及可燃气体传感器模块的焊接级说明,原理图,元件表 可用于火警检测 [打印本页]

作者: SYDZ__顺    时间: 2011-8-20 15:55
标题: MQ-2烟雾及可燃气体传感器模块的焊接级说明,原理图,元件表 可用于火警检测
1.元件简介

旁热式结构半导体式可燃气体敏感元件MQ-2
特点
广泛的探测范围
高灵敏度
快速响应恢复
优异的稳定性
寿命长
简单的驱动电路
应用
可用于家庭和工厂的气体泄漏监测装置, 适宜于液化气、丁烷、丙烷、甲烷、酒精、氢气、烟雾等的探测。
规格
适用气体可燃气体、烟雾
探测范围300 to 10000ppm
特征气体1000ppm异丁烷
灵敏度R in air/R in typical gas≥5
敏感体电阻1KΩ to 20KΩ in 50ppm甲苯
响应时间≤10s
恢复时间≤30s
加热电阻31Ω±3Ω
加热电流≤180mA
加热电压5.0V±0.2V
加热功率≤900mW
测量电压≤24V
工作条件环境温度:-20℃~+55℃
湿度:≤95%RH
环境含氧量:21%
贮存条件温度: -20℃~+70℃
湿度:≤70%RH

2.产品简介

电压:5V
输出TTL信号LED指示。
双信号输出,模拟量TTL电平输出.
TTL输出有效信号为低电平.                 
模拟量输出0~5V电压,浓度越高电压越高。
输出TTL的灵敏度可通过电位器调节。  

3接线简介
(, 下载次数: 208)

(, 下载次数: 151)

4.焊接过程
(, 下载次数: 146)
电子元件全福家

(, 下载次数: 130)

(, 下载次数: 114)
最后酒精传感器的焊接    完成~!

5测试


(, 下载次数: 128)
使用前需要进行5分钟左右的预热~~~
(, 下载次数: 109)


(, 下载次数: 98)
溶度越高,输出模拟量的电压也越高!!
(, 下载次数: 107)

(, 下载次数: 96)

(, 下载次数: 100)
烟雾的检测
(, 下载次数: 107)
输出TTL灵敏度可通过电位器调节~
(, 下载次数: 108)

(, 下载次数: 102)


6.原理图
(, 下载次数: 267)

7.元件表


元件表-配件表
R1-R3
1K
R4
22K
R5
47K
D1
1N5819
LED1
LED
Q1
8050(2TY)
C1
0.1U(104)
C2
100UF
VR1
10K(103)
U1
LM358
QM
MQ-2
P1
4P插针

点击进入购买



作者: sydz    时间: 2012-4-21 17:21
AT89C52  STC89C52  单片机都行
LED接在  P1.0
传感器输入端 P2.0

C程序
  1. 转载自互联网,此程序仅用于学习与参考!!!
  2. </font>使用芯片:AT89S52
  3. 晶振:11.0592MHZ
  4. 波特率:9600
  5. 编译环境:Keil
  6. 作者:zhangxinchunleo
  7. 【声明】 引用请注明版权和作者信息! “汇诚科技 ”
  8. *********************************************************************/
  9. /********************************************************************
  10. 说明:1、        当测量浓度大于设定浓度时,单片机IO口输出低电平
  11. *********************************************************************/
  12. #include<reg52.h>                 //库文件
  13. #define uchar unsigned char//宏定义无符号字符型
  14. #define uint unsigned int  //宏定义无符号整型

  15. /********************************************************************
  16.                             I/O定义
  17. *********************************************************************/
  18. sbit LED=P1^0;         //定义单片机P1口的第1位 (即P1.0)为指示端
  19. sbit DOUT=P2^0;         //定义单片机P2口的第1位 (即P2.0)为传感器的输入端
  20. /********************************************************************
  21.                             延时函数
  22. *********************************************************************/
  23. void delay()//延时程序
  24. {
  25. uchar m,n,s;
  26. for(m=20;m>0;m--)
  27. for(n=20;n>0;n--)
  28. for(s=248;s>0;s--);
  29. }
  30. /********************************************************************
  31.                             主函数
  32. *********************************************************************/
  33. void main()
  34. {
  35.         while(1)   //无限循环
  36.         {
  37.          LED=1;           //熄灭P1.0口灯
  38.          if(DOUT==0)//当浓度高于设定值时 ,执行条件函数
  39.          {
  40.             delay();//延时抗干扰
  41.                 if(DOUT==0)//确定 浓度高于设定值时 ,执行条件函数
  42.             {
  43.                  LED=0;           //点亮P1.0口灯
  44.                 }
  45.          }
  46.         }
  47. }        
复制代码

作者: sydz    时间: 2012-4-21 17:42
资料全部转载自互联网!!!

原理图

(, 下载次数: 187)
  1. /********************************************************************
  2.                             汇诚科技
  3. *********************************************************************/
  4. #include <reg52.h>             //头文件
  5. #define uchar unsigned char           //宏定义无符号字符型
  6. #define uint  unsigned  int           //宏定义无符号整型
  7. code uchar seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //显示段码 数码管字跟
  8. uchar wei[4]={0XEf,0XDf,0XBf,0X7f};  //位的控制端                                                                 //位控制码
  9. sbit ST=P3^0;   //A/D启动转换信号
  10. sbit OE=P3^1;   //数据输出允许信号
  11. sbit EOC=P3^2;  //A/D转换结束信号
  12. sbit CLK=P3^3;  //时钟脉冲  
  13. uint z,x,c,v,AD0809, date;        //定义数据类型
  14. /******************************************************************
  15. 延时函数
  16. ******************************************************************/
  17. void delay(uchar t)
  18. {
  19.   uchar i,j;
  20.    for(i=0;i<t;i++)
  21.    {
  22.             for(j=13;j>0;j--);
  23.          { ;
  24.          }
  25.    }
  26. }
  27. /**********************************************************************
  28.                 数码管动态扫描
  29. *********************************************************************/
  30. void xianshi() //显示函数
  31. {
  32. uint z,x,c,v;
  33.   z=date/1000;                         //求千位
  34.   x=date%1000/100;                 //求百位
  35.   c=date%100/10;                 //求十位
  36.   v=date%10;                         //求个位

  37.       P2=0XFF;
  38.           P0=seg7code[z]&0x7f;
  39.           P2=wei[0];
  40.           delay(80);
  41.           P2=0XFF;  
  42.       P0=seg7code[x];
  43.           P2=wei[1];
  44.           delay(80);
  45.           P2=0XFF;  
  46.              P0=seg7code[c];
  47.           P2=wei[2];
  48.           delay(80);
  49.           P2=0XFF;  
  50.       P0=seg7code[v];
  51.           P2=wei[3];
  52.           delay(80);
  53.           P2=0XFF;
  54.   }
  55. /*************************************************************************
  56.                                 CLK振荡信号       
  57. **************************************************************************/
  58. void timer0( ) interrupt 1 //定时器0工作方式1
  59. {

  60. TH0=(65536-2)/256;          //重装计数初值
  61. TL0=(65536-2)%256;          //重装计数初值
  62. CLK=!CLK;                          //取反
  63. }

  64. /*************************************************************************
  65.                                 主函数       
  66. **************************************************************************/
  67. void main()
  68. {
  69. TMOD=0X01;                          //定时器中断0

  70. CLK=0;                                  //脉冲信号初始值为0
  71. TH0=(65536-2)/256;          //定时时间高八位初值
  72. TL0=(65536-2)%256;          //定时时间低八位初值
  73. EA=1;                                  //开CPU中断
  74. ET0=1;                                  //开T/C0中断
  75. TR0=1;
  76. while(1)                           //无限循环
  77.         {
  78.         ST=0;                                //使采集信号为低
  79.         ST=1;                                //开始数据转换
  80.         ST=0;                                //停止数据转换
  81.         while(!EOC);                //等待数据转换完毕
  82.         OE=1;                                //允许数据输出信号
  83.         AD0809=P1;                    //读取数据
  84.         OE=0;                                //关闭数据输出允许信号
  85.         if(AD0809>=251)                //电压显示不能超过5V
  86.         AD0809=250;
  87.         date=AD0809*20;                //数码管显示的数据值,其中20为采集数据的毫安值
  88.         xianshi();                        //数码管显示函数
  89.    
  90.     }
  91. }       
复制代码
下载:
(, 下载次数: 174)
(, 下载次数: 159)

作者: dengke80622    时间: 2012-10-31 15:10
楼主,代码的第85行while(!EOC)后面不要分号,否则编译的HEX载入后无法运行
作者: xiong    时间: 2015-4-26 08:52
楼主,为什么仿真的时候,数码管显示的数值不是随滑动变阻器单调增减的?





欢迎光临 圣源电子制作 (https://sydz.syyyd.com/) Powered by Discuz! X3.4