【发布时间】:2020-11-19 07:34:44
【问题描述】:
我正在 arduino 上测试 HC-SR501 PIR 传感器。我尝试了一个简单的在线代码教程
int buzz = 13;
int pir = 2;
int value = 0;
int pirState = LOW;
void setup() {
pinMode(buzz, OUTPUT);
pinMode(pir, INPUT);
Serial.begin(9600);
}
void loop() {
delay(5000);
value = digitalRead(pir);
if (value == HIGH) {
digitalWrite(buzz, HIGH);
if (pirState == LOW) {
Serial.println("Motion Detected!");
pirState = HIGH;
}
} else {
digitalWrite(buzz, LOW);
if (pirState == HIGH){
Serial.println("Motion Ended!");
pirState = LOW;
}
}
}
这可行,但是,我正在尝试将其初始化为 LOW 输出。当我第一次打开电路板时,它最初会给我一个高输出,所以蜂鸣器会立即激活,即使我把它放在远离自己的地方。串行打印出 Motion Detected。我尝试添加延迟,但之后它仍然给出高输出。有谁知道如何解决这个问题?
谢谢!
【问题讨论】:
-
它最终会变低吗?如果是,需要多长时间?
-
@ocrdu 是的,在 PIR 上设置的延迟时间之后,它最终变低
标签: arduino arduino-uno