如果 Arduino 中的灯亮 60 秒,如何发出蜂鸣声?
How to sound a buzzer if a light is on for 60 seconds in Arduino?
我正在尝试使用 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;
}
}
我正在尝试使用 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;
}
}