问题描述
我正在尝试使用 Arduino 中的运动传感器制作安全系统。我几乎让一切都按照我想要的方式工作,但我不知道如何在灯亮起 60 秒后立即关闭蜂鸣器。
代码应该是这样的: 当运动传感器检测到有人时,灯会亮起。如果灯亮 60 秒,则蜂鸣器打开。蜂鸣器不会关闭,直到按下按钮重新启动代码。
如果时间被记录(记录,如果你愿意的话),我可以让蜂鸣器在灯亮时超过 60 秒的任何时间关闭,但这不会触发蜂鸣器,直到运动检测器没有检测到任何东西连续 10 秒(决定何时记录时间)
if (detectedLED,HIGH)
{
Start timer // Start a timer
if ((timer >= 60000)&&(detectedLED,HIGH))
{
digitalWrite(BuzzerPin,HIGH); // Enable Buzzer
BuzzerOnState = true; // Enable Buzzer State
}
}
解决方法
我认为这就是你想要的。
unsigned long timer = 0;
bool flag = false;
void loop() {
if (detectedLED,HIGH) {
if (!flag) {
flag = true;
timer = millis();
}
if ((millis() - timer) >= 60000) {
digitalWrite(BuzzerPin,HIGH); // Enable Buzzer
BuzzerOnState = true; // Enable Buzzer State
}
} else {
flag = false;
}
}