Arduino小工具之火焰报警器

这是我写的第一篇博客,话不多说这个是基于Arduino的火焰报警器,能实现感应到火焰就进行声音播放及亮灯。

工具准备

  • uno开发板
  • 与uno配套USB数据线
  • 无源蜂鸣器
  • RGB灯
  • 火焰传感器
  • 电阻

工具介绍

  • 火焰传感器
    在这里插入图片描述
  • 无源蜂鸣器
    本实验使用的是无源蜂鸣器 低电平触发 型号为MH-FMD 3公
    在这里插入图片描述

过程

话不多说,直接上代码。

#define M3 658
#define WHOLE 1
#define HALF 0.5
#define QUARTER 0.25
#define EIGHTH 0.25
#define SIXTEENTH 0.625

int tune[]=        //根据简谱列出各频率
{
   M3,M3,M3,
};
float durt[]=       //根据简谱列出各节拍
{
  1,1,1,
};
int length;
int tonepin=8;   //得用8号接口


//int buzzer = 8;
int LED = 7; //LED灯接口
int flame_sensor = 4; //火焰传感器数据输入接口
int flame_detected;

void setup()
{
  Serial.begin(9600);
  pinMode(tonepin, OUTPUT);
  pinMode(LED, OUTPUT);
  pinMode(flame_sensor, INPUT);
  length=sizeof(tune)/sizeof(tune[0]);   //计算长度

}

void loop()
{
  flame_detected = digitalRead(flame_sensor);
  if (flame_detected == 0)
  {
    Serial.println("Flame detected...! take action immediately.");
//    digitalWrite(buzzer, LOW);
    digitalWrite(LED, HIGH);
    delay(100);
    digitalWrite(LED, LOW);
    delay(100);
      for(int x=0;x<length;x++)
  {
    tone(tonepin,tune[x]);
    delay(500*durt[x]);   //这里用来根据节拍调节延时,500这个指数可以自己调整,在该音乐中,我发现用500比较合适。
    noTone(tonepin);
  }
  delay(100);

  }
  else
  {
    Serial.println("No flame detected. stay cool");
    digitalWrite(tonepin, HIGH);
    digitalWrite(LED, LOW);
  }
  delay(1000);
}

实验图如下
实验过程图
实验原理图如下
实验结构图

总结

一开始的时候我连插线也不会插,经过老师教导之后起码了解了一些基本的原理,竟然也对嵌入式开发产生了点兴趣,就好像C语言一样,都是套路的操作,刚做实验的时候有点怀疑人生,因为做出来的时候读出的数据一直都显示是一直在报警,但是我都没有火焰,随后经老师的帮助,发现了不一样的东西,例如火焰传感器和红外传感器用的接口也是差不多,进行了替换之后也可以实现红外报警,但是代码是没有改变的,觉得神奇。

参考文献

参考链接:使用火焰传感器和Arduino开发板搭建火灾报警系统.

  • 7
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值