便携式甲烷气体检测报警仪手持式甲烷CH4浓度探测仪课程设计
时间: 2023-10-06 18:12:51 浏览: 183
一、设计目的
甲烷是一种常见的天然气,在石油、煤矿等行业中广泛应用。然而,甲烷具有易燃、易爆的特性,一旦泄漏,会对人员和环境造成严重伤害。因此,为了保障工人的安全,需要设计一种便携式甲烷气体检测报警仪手持式甲烷CH4浓度探测仪。
二、设计要求
1. 实现对甲烷CH4浓度的检测和报警功能。
2. 设计简单,易于操作,便于携带。
3. 具有良好的灵敏度和精度,能够准确地检测到甲烷的浓度。
4. 具有较长的电池寿命,能够持续工作较长时间。
5. 价格适中,能够被广泛应用。
三、设计方案
本设计采用气敏电阻传感器作为检测元件,利用甲烷与氧气发生催化燃烧的原理进行测量,实现对甲烷浓度的检测。同时,设计一个基于单片机的报警电路,当甲烷浓度超过设定值时,会发出声光报警信号。
四、电路设计
1. 传感器电路
本设计采用MQ-4气敏电阻传感器作为检测元件,其输出电压与甲烷浓度成正比。传感器电路如下图所示:
![image-20211103163531691](https://gitee.com/Ling_zi/mypic/raw/master/tupian/20211103163533.png)
其中,R1为电阻,C1为电容,用于滤波和稳压。R2为传感器,其两端的电压与甲烷浓度成正比。当甲烷浓度增加时,传感器两端电压也会增加。Uout为传感器输出电压,其计算公式为:
Uout = Vcc * R2 / (R1 + R2)
其中,Vcc为电源电压,一般取5V。
2. 报警电路
本设计采用基于单片机的报警电路,当甲烷浓度超过设定值时,会发出声光报警信号。报警电路如下图所示:
![image-20211103163632612](https://gitee.com/Ling_zi/mypic/raw/master/tupian/20211103163633.png)
其中,Uout为传感器输出电压,与甲烷浓度成正比。当甲烷浓度超过设定值时,Uout会超过阈值电压(Vt),触发单片机的中断功能。单片机会通过LED和蜂鸣器发出声光报警信号。
五、软件设计
本设计采用C语言编写单片机程序,主要实现以下功能:
1. 初始化单片机,配置端口和中断功能。
2. 循环读取传感器输出电压Uout,并将其转换为甲烷浓度。
3. 当甲烷浓度超过设定值时,触发中断功能,发出声光报警信号。
具体程序实现如下:
```
#include <reg52.h> // 单片机头文件
#define Vt 2.0 // 阈值电压
#define beep P1_5 // 蜂鸣器
#define led P1_6 // LED
void Init() { // 初始化函数
P1 = 0xFF; // P1口全部设为输入
IT0 = 1; // 外部中断0边沿触发
EX0 = 1; // 开启外部中断0
EA = 1; // 开启总中断
}
void Delay(unsigned int t) { // 延时函数
unsigned int i, j;
for (i = 0; i < t; i++)
for (j = 0; j < 125; j++);
}
void main() {
Init(); // 初始化单片机
while (1) { // 循环读取传感器电压
unsigned int Uout = ADC_Read(); // 读取传感器输出电压
float CH4 = Uout * 5.0 / 1024.0 * 1000.0 / 4.0; // 转换为甲烷浓度
if (CH4 > 100) { // 当甲烷浓度超过设定值时,发出声光报警信号
beep = 1; // 开启蜂鸣器
led = 0; // 开启LED
Delay(1000); // 延时1秒
beep = 0; // 关闭蜂鸣器
led = 1; // 关闭LED
Delay(1000); // 延时1秒
}
}
}
void Interrupt0() interrupt 0 { // 外部中断0服务函数
beep = 1; // 开启蜂鸣器
led = 0; // 开启LED
Delay(1000); // 延时1秒
beep = 0; // 关闭蜂鸣器
led = 1; // 关闭LED
Delay(1000); // 延时1秒
}
unsigned int ADC_Read() { // ADC读取函数
unsigned char i;
unsigned int ADC_Result = 0;
ADC_CONTR = 0x80; // 初始化ADC转换器
for (i = 0; i < 8; i++) { // 进行8次转换
ADC_CONTR |= 0x08; // 开始转换
while (!(ADC_CONTR & 0x10)); // 等待转换完成
ADC_Result += ADC_RES; // 累加转换结果
}
ADC_Result /= 8; // 取平均值
return ADC_Result;
}
```
六、实验结果
本设计制作了一个实验样机,其外观如下图所示:
![image-20211103164000120](https://gitee.com/Ling_zi/mypic/raw/master/tupian/20211103164001.png)
实验结果表明,该甲烷气体检测报警仪能够准确地检测到甲烷的浓度,当甲烷浓度超过设定值时,能够发出声光报警信号,提示用户采取相应的措施。该设计具有价格适中、操作简单、便于携带等优点,能够广泛应用于石油、煤矿等行业中。
阅读全文