单片机教程网

电脑版
提示:原网页已由神马搜索转码, 内容由www.51hei.com提供.
查看:3594|回复:0
打印上一主题下一主题

arduino湿敏传感器报警Proteus仿真程序(用于检测漏液)

[复制链接]
跳转到指定楼层
楼主
ID:437557发表于 2019-8-15 11:34|只看该作者|只看大图回帖奖励
主控芯片arduino
外接三个湿敏传感器
显示屏LCD1602
1000ms倒计时,倒计时内湿敏电阻触发即报警。1000ms用于打吊瓶等类似倒计时操作。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)

Arduino源程序如下:
  1. #include< SoftwareSerial.h>
  2. #include< LiquidCrystal.h> //申明1602液晶的函数库
  3. #include< MsTimer2.h>     //定时器库的 头文件

  4. LiquidCrystal lcd(12,11,10,9,8,7,6,5,4,3,2);   //申明1602液晶的11个引脚所连接的Arduino数字端口
  5. int testa = A0;  //测试引脚
  6. int led=A4;   //有水就亮
  7. int a=0;
  8. int b=0;
  9. int c=0;
  10. int vala=0;
  11. int lll=A5;         //外接继电器IN脚

  12. SoftwareSerial BT(A2, A3);

  13. void flash()                 //中断处理函数
  14. {                
  15.    a++;
  16.    lcd.setCursor(15,2);  
  17.    lcd.print(a%10);
  18.    lcd.setCursor(14,2);  
  19.    lcd.print(a/10);

  20.    if(a>=60)
  21.    {
  22.      a=0;
  23.      b++;
  24.      lcd.setCursor(12,2);  
  25.      lcd.print(b%10);
  26.      lcd.setCursor(11,2);  
  27.      lcd.print(b/10);
  28.      if(b>=60)
  29.      {
  30.        b=0;
  31.        c++;
  32.        lcd.setCursor(9,2);  
  33.        lcd.print(c%10);
  34.        lcd.setCursor(8,2);  
  35.        lcd.print(c/10);
  36.      }
  37.    }
  38. }

  39. void setup()
  40. {
  41. pinMode(led, OUTPUT);//定义小灯接口为输出接口
  42. pinMode(lll, OUTPUT);
  43. pinMode(testa, INPUT);
  44. BT.begin(9600);//设置波特率为9600
  45. lcd.begin(16,2);     //初始化1602液晶工作模式,定义1602液晶显示范围为2行16列字符

  46. MsTimer2::set(1000, flash);       // 中断设置函数,每 1000ms 进入一次中断
  47. MsTimer2::start();           //开始计时
  48. lcd.setCursor(9,2);  
  49. lcd.print("0:00:00");
  50. }

  51. void loop()
  52. {
  53.   vala=digitalRead(testa);//读取传感器的值并赋值给val
  54.   if(vala==1)
  55.    {
  56.    digitalWrite(led, HIGH);   //亮
  57.    digitalWrite(lll, HIGH);   //亮
  58.    delay(1000);  
  59.    BT.println("Help!!!!!");
  60.    lcd.setCursor(5,0);  
  61.    lcd.print("Help!!!!!");
  62.    }

  63.   else {
  64.      digitalWrite(led,LOW);     //灭
  65.      digitalWrite(lll,LOW);     //灭
  66.      delay(1000);  
  67.      lcd.setCursor(5,0);  
  68.      lcd.print("no!!!!!");
  69.      }
  70. }
复制代码

全部资料51hei下载地址:
sketch_apr11a.rar(62.09 KB, 下载次数: 37)

评分

黑币 +50
收起理由
+ 50
共享资料的黑币奖励!

查看全部评分

手机版|小黑屋|51黑电子论坛|51黑电子论坛6群QQ管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网