laoxutou 发表于 2020-7-9 23:19:36

新手,请大神指点,不胜感激!

本帖最后由 laoxutou 于 2020-7-10 06:17 编辑

const int PIRSensor = 12;   
const int ledPin1 =2;      
const int ledPin2 =3;
const int ledPin3 =4;
const int ledPin4 =5;
int sensorValue = 0;      

void setup() {
pinMode(PIRSensor, INPUT);   
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);

}

void loop(){

sensorValue = digitalRead(PIRSensor);


if (sensorValue == HIGH) {   
    digitalWrite(ledPin1, HIGH);
    delay(8000);
   digitalWrite(ledPin1, LOW);
    digitalWrite(ledPin2, HIGH);
    delay(8000);
    digitalWrite(ledPin2, LOW);   
    digitalWrite(ledPin3, HIGH);
    delay(8000);
   digitalWrite(ledPin3, LOW);   
    digitalWrite(ledPin4, HIGH);
    delay(8000);
    digitalWrite(ledPin4, LOW);   
   
}

}
本想用sr501触发,4个led灯依次点亮。即红灯先亮持续8秒熄灭,然后绿灯亮8秒熄灭,蓝灯接着亮8秒熄灭,最后白灯亮8秒熄灭,等待下一次触发。
结果上电后,四个灯循环亮,不停。请大神看看程序多多指点,谢谢了。在线等,再次感谢。

laoxutou 发表于 2020-7-10 06:16:11

顶一下,别沉了。等大神指点。

林定祥 发表于 2020-7-10 09:03:24

你的程序关键SR501是开关,可以检查下32秒后SR501是否已经关闭。用println(sensorValue)是否没有变“low“,应该对SR501的使用方法了解下。有可能输出有延迟作用,有可能输出需要接一个电阻。

laoxutou 发表于 2020-7-10 09:08:36

谢谢林先生。能否详细赐教,不胜感激。

mrliu01 发表于 2020-7-10 13:28:07

看看看看

kpj001 发表于 2020-7-18 22:54:38

这个算是程序调试, 可以多处加 sensorValue 值串口输出, 或输出到OLED等设备
页: [1]
查看完整版本: 新手,请大神指点,不胜感激!