本帖最後由 frongle 於 2018-11-18 20:58 編輯
小弟我想用兩個人體紅外線感測器來(HC-SR501)判斷人是<進門>還是<出門>,有看到網路上有人做出這樣的功能,但沒有給出程式碼,我想到破頭都想不出來,希望有大神能幫我指點一下,對於寫程式我還只是新手,很多還不太懂,懇請賜教!以下是依我個人想法寫的程式
int sensor1 = 9; //訊號線
int sensor2 = 8;
int led1 = 2;
int led2 = 4;
void setup()
{
Serial.begin(9600);
pinMode(sensor1, INPUT);
pinMode(sensor2, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop()
{
int a , b ;
a = digitalRead(sensor1);
b = digitalRead(sensor2);
if(a == 1)
{
if(b == 1)
digitalWrite(led1,HIGH);
}
else if(b == 1)
{
if(a == 1)
digitalWrite(led2,HIGH);
}
else
{
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
}
}
我會這樣寫是想判斷是哪邊的感測器先感測到1,然後換另一邊再感測到1,以判段是進門還是出門,可是每次都兩個燈都不亮,我很確定我的原件沒有壞掉,接線也沒有錯誤,因為我測試很多次了(原件測試),都沒有問題,我想知道我這程式真的可以達到我的目的嗎?是哪裡需要改嗎?還是說我這樣寫根本不行?
希望有人能幫助我, 謝謝!
|