极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12256|回复: 0

呼吸爆闪温度监测蜂鸣报警器

[复制链接]
发表于 2016-1-12 15:41:15 | 显示全部楼层 |阅读模式
       本设计可用于监测环境温度以及各种设备仪器的温度监测。根据设定的不同阈值,在初温下,蓝灯亮起,呈呼吸灯状态;若温度升高到一定程度,黄灯警示亮起,呈常亮状态;当温度超过极限值后,系统发出蜂鸣警报,且红、黄、蓝依次进行爆闪,给用户以警示。此系统在经过改装后可用于多种场合,方便高效。可供初学者交流。
需要器材:
     红色M5 直插LED*1
     黄色M5 直插LED*1
     蓝色M5 直插LED*1
     蜂鸣器*1
     220Ω直插电阻*1
     面包板*1
     面包板跳线*1 扎
下一步根据原理图连线



代码如下:
#define LED_GREEN 9//定义与绿灯连接的引脚
#define LED_YELLOW 10//定义与黄灯连接的引脚
#define LED_RED 11//定义与红灯连接的引脚
int buzzer=8;//设置控制蜂鸣器的数字IO
void setup()
{
  unsigned char j;
  for(j=9;j<=11;j++)//设置与红绿黄灯连接的引脚为输出模式
  {
    pinMode(buzzer,OUTPUT);//设置数字IO脚模式,OUTPUT为辒出
    pinMode(j,OUTPUT);
  }
}
void loop()
{
  int i;
  while(1)
  {
    i=analogRead(0);//读取温度传感器电压值
    if(i>41&&i<45)//温度在20~30度之间
    {
      digitalWrite(LED_GREEN,HIGH);//绿灯亮
      for (int a=0, b=255;a<=255,b>=0;a++,b--
)
  {
    analogWrite(9,a);
    analogWrite(6,b);
    delay(8);
   
   
  }
  delay(800);
   for  (int a=255,b=0;a>=0,b<=255;a--,b++
  )
  {
    analogWrite(9,a);
    analogWrite(6,b);
    delay(10);
   
  }
    delay(800);
  digitalWrite(LED_YELLOW,LOW);//黄灯灭
      digitalWrite(LED_RED,LOW);//红灯灭
      digitalWrite(buzzer,LOW);//不发声音
    }
    else if(i>=45&&i<51)//温度在30~40度之间
    {
      digitalWrite(LED_YELLOW,HIGH);//黄灯亮
      digitalWrite(LED_GREEN,LOW);//绿灯灭
      digitalWrite(LED_RED,LOW);//红灯灭
      digitalWrite(buzzer,LOW);//不发声音
    }
    else//温度在20度以下和40度以上
    {
      digitalWrite(LED_RED,HIGH);//红灯亮
       delay(100); //延时1
      digitalWrite(LED_RED, LOW); //红灯灭
        delay(10); // 延时1
      digitalWrite(LED_YELLOW,HIGH);//黄灯
        delay(100); //延时1
      digitalWrite(LED_YELLOW, LOW); //黄灯
        delay(10); // 延时1
      digitalWrite(LED_GREEN,HIGH);//绿灯亮      
        delay(100); //延时1
      digitalWrite(LED_GREEN, LOW); //绿灯灭
        delay(10); // 延时1
      digitalWrite(buzzer,HIGH);//发声音
      for(i=0;i<80;i++)//辒出一个频率的声音
{
      digitalWrite(buzzer,HIGH);//发声音
        delay(1);//延时1ms
      digitalWrite(buzzer,LOW);//不发声音
        delay(1);//延时ms
}
for(i=0;i<100;i++)//辒出另一个频率癿声音
{
      digitalWrite(buzzer,HIGH);//发声音
        delay(2);//延时2ms
      digitalWrite(buzzer,LOW);//不发声音
        delay(2);//延时2ms
}
}
}
    }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 04:47 , Processed in 0.057782 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表