本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于单片机的烟雾探测器
发布时间:2021-06-02
分享到:
基于单片机的烟雾探测器
发布时间:2021-06-02
分享到:

本文主要介绍如何使用MQ-2烟雾探测传感器制造烟雾探测器,该烟雾探测器通过读取传感器的模拟输出电压,对烟雾水平进行判断,当烟雾达到某一水平时,蜂鸣器就会启动,且红色LED打开;当输出电压低于该水平时,绿色LED灯打开。

硬件组件:

  • 单片机
  • 试验板
  • MQ-2烟雾探测传感器
  • 跳线
  • 发光二极管(5mm) 红色、绿色
  • 蜂鸣器
  • 电阻器 221Ω

软件应用:     

原理图:

MQ-2烟雾传感器:

MQ-2烟雾传感器对烟雾和下列可燃气体敏感:

  • 液化石油气
  • 丁烷
  • 丙烷
  • 甲烷

传感器的电阻因气体类型而异。

烟雾传感器有一个内置的电位计,允许您根据检测气体的精度来调整传感器的灵敏度。

(MQ-2传感器)

(传感器引脚详细信息)

工作原理:

传感器输出的电压根据大气中的烟雾/气体水平而变化。传感器输出与烟雾/气体浓度成比例的电压。

换句话说,电压和气体浓度之间的关系如下:

  • 气体浓度越大,输出电压越大
  • 气体浓度越低,输出电压越低

 

 

(工作机制)

输出可以用Arduino的模拟输入读取的模拟信号(A0),也可以用Arduino的数字输入读取的数字输出(D0)。

引脚布线:

MQ-2传感器有4个引脚,Arduino Uno引脚接线

  • A0 -模拟引脚
  • D0 -数字引脚
  • GND - GND
  • VCC - 5V

(硬件组件)

 代码:(MQ-2传感器代码)

正确设置硬件组件后,将此代码闪存到Arduino中。可调整变量“传感器阈值”。

/*******
 
 此项目的所有资源:
 https://www.hackster.io/Aritro

*******/

int redLed = 12;
int greenLed = 11;
int buzzer = 10;
int smokeA0 = A5;
// 阈值
int sensorThres = 400;

void setup() {
  pinMode(redLed, OUTPUT);
  pinMode(greenLed, OUTPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(smokeA0, INPUT);
  Serial.begin(9600);
}

void loop() {
  int analogSensor = analogRead(smokeA0);

  Serial.print("Pin A0: ");
  Serial.println(analogSensor);
  // 检查是否已达到阈值
  if (analogSensor > sensorThres)
  {
    digitalWrite(redLed, HIGH);
    digitalWrite(greenLed, LOW);
    tone(buzzer, 1000, 200);
  }
  else
  {
    digitalWrite(redLed, LOW);
    digitalWrite(greenLed, HIGH);
    noTone(buzzer);
  }
  delay(100);
}

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论