我正在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;
}
}
}这是可行的,但是,我正在尝试将其初始化为低输出。当我第一次打开电路板时,它最初会给我一个高输出,所以蜂鸣器会立即激活,即使我把它放在远离自己的地方。串行打印输出检测到的Motion。我试着添加一个延迟,但是之后它仍然给出了很高的输出。有人知道怎么解决这个问题吗?
谢谢!
发布于 2020-11-19 15:42:30
pinMode将引脚设置为输出,但默认状态为低电平,因此应该没有问题。
但是,针脚13连接到板载LED。并且板载LED也被引导加载程序用来在复位后通知它的活动。你应该检查除了13个以外的其他引脚。
https://stackoverflow.com/questions/64907220
复制相似问题