timer - 如果在Arduino中点亮60秒,如何发出蜂鸣器?
问题描述
我正在尝试使用 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;
}
}
推荐阅读
- git - Teamcity 构建代理因配置文件损坏而受苦
- matlab - 如果结果在matlab的文本文件中,如何绘制ROC
- react-native - 在 react-native 应用程序中实现 Unity3d 以实现增强现实
- c - C 文件到多个 char *groups by word delimiter
- apache-spark - 在 Array 类型的结构中删除一列
- sql - 列 new_value 并显示变量的类型和值
- javascript - 如何从数组中获取坐标?
- c - 为什么我创建的线程没有按顺序打印?
- python - Python脚本将具有多个值的dict列表写入多个文件
- node.js - 在生产服务器上安装节点