请教门碰传感器延迟输出告警怎么写-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1997|回复: 4

[未解决] 请教门碰传感器延迟输出告警怎么写

[复制链接]
发表于 2020-12-15 11:12 | 显示全部楼层 |阅读模式
想做一个门碰传感器,门开输出告警,当门开状态大于1分钟才产生告警。(门开状态,如果1分钟内门关,不产生告警,并重新计时判断是否超过1分钟)
下面肯定写错了 有人熟悉的吗
void loop() {
  // put your main code here, to run repeatedly:
if (digitalRead(IN3) == HIGH)//关门
  {
   delay(60000);
   digitalWrite(OUT2, LOW);
    }
  else if (digitalRead(IN3) == LOW)//开门
  {
   delay(60000);
   digitalWrite(OUT2, HIGH);
  }
}

发表于 2020-12-15 11:46 | 显示全部楼层
用millis()计时不就行
发表于 2020-12-15 12:04 | 显示全部楼层

用millis()+1
发表于 2020-12-15 12:41 | 显示全部楼层

  1. int IN3 = 3;
  2. int OUT2 = 2;            

  3. unsigned long count = 0;   
  4. unsigned long previousMillis = 0;        
  5. const long interval = 1000;           

  6. void setup()
  7. {
  8.   // set the digital pin as output:
  9.   pinMode(OUT2, OUTPUT);
  10. }

  11. void loop()
  12. {
  13.   unsigned long currentMillis = millis();

  14.   if (currentMillis - previousMillis >= interval)
  15.   {
  16.    previousMillis = currentMillis;
  17.    if (digitalRead(IN3) == LOW)//开门
  18.       count++;
  19.    else count = 0;
  20.    }
  21.    if(count > 60)
  22.     digitalWrite(OUT2, HIGH);
  23.    else digitalWrite(OUT2, LOW);
  24. }
复制代码


点评

感谢!  发表于 2020-12-22 16:18
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 17:38 , Processed in 0.181056 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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