gada888 发表于 2018-9-16 13:48:04

做个简单便携的煤气报警器

有时候做饭完会忘记关闭煤气阀门,搞不好又是一起严重的火灾。。感谢上天啊!
就是这样我就想的是能不能做一个简易的液化气报警装置呢?想着我就动手做了!
从家里的百宝箱里找到一个Attiny85, 一个液化气体传感器 MQ-2模块和一个蜂鸣器。就开始了。





下面是连线图

attiny85
2N2700一个是用来给蜂鸣器声音放大的
1000uF电容一个,为一分钟校准存电
LED一个
220电阻一个

工作原理

MQ-2传感器有一个小的燃烧器,需要在加热之前加热。
这样读数变得准确。为此我们用了烟雾报警器
校准模式,当校准发生时,传感器
读数慢慢下降,直到一分钟后停止并达到一个精确的值。
ARDUINO代码设置了等待,直到这些值正常化。
开LED,让用户知道校准校准变化。当
LED是关闭的,传感器被触发,并完全校准。





//made by gada888

#define led 0
#define buzzer 1
#define sensor 2

int treshold = 0;
int alarmLength = 40;

void setup() {
pinMode(led, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(sensor, INPUT);

while(isCalibrating()){
    digitalWrite(led, HIGH);
}

treshold = analogRead(sensor) + 10;
}
bool isCalibrating(){
int sample1 = analogRead(sensor);
delay(5000);
int sample2 = analogRead(sensor);

if(sample1 < sample2){
    return true;
} else if(abs(sample1 - sample2) <= 2) {
    return false;
}
}
void loop() {
if(analogRead(sensor) > treshold){
    while(alarmLength >= 0){
      alarmLength--;
      alarmOn(100);
    }
    alarmLength = 40;
} else {
    alarmOff();
}
}
void alarmOn(int delayMs){
digitalWrite(led, HIGH);
analogWrite(buzzer, 100);
delay(delayMs);

digitalWrite(led, LOW);
analogWrite(buzzer, 0);
delay(delayMs);
}

void alarmOff(){
digitalWrite(led, LOW);
analogWrite(buzzer, 0);
}

20060606 发表于 2020-8-10 05:08:47

好实用好实用

发表于 2022-4-18 10:51:17

地板         

发表于 2022-4-18 10:54:30

这才是地板

发表于 2022-4-18 10:57:14

这个很实用哦

gada888 发表于 2022-4-19 07:45:05

诩 发表于 2022-4-18 10:57
这个很实用哦

谢谢
页: [1]
查看完整版本: 做个简单便携的煤气报警器