Major Member
|
你提到的按鈕不穩定問題
參考一下這個教學
[YOUTUBE]JOqezO2zI_M&t=278s[/YOUTUBE]
下面是我的紅外線模組及arduino UNO 連接出來的電路
我的紅外線模組當有遮蔽物時,會發送低電位訊號LOW
無遮蔽物時,會送出高電位訊號HIGH
紅外線的感應很快,用手遮擋離開的一瞬間,LED又閃了一次
要放慢紅外線感應的速度,在IF前加了delay(300);
這樣整個運作就正常了
int sun=0;
void setup() {
pinMode(2, INPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}
void loop() {
delay(300);
if (digitalRead(2) == LOW && sun == 0){
digitalWrite(3, HIGH);
delay(1000);
digitalWrite(3, LOW);
delay(1000);
digitalWrite(4, HIGH);
delay(1000);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
sun += 1;
}
else if (digitalRead(2) == HIGH && sun == 1) {
sun = 0;
}
}
上面的程式IF判斷式是以我的紅外線模組設計的,可以正常運作,
不會有你說的紅外線在無遮蔽時,會一直閃,
不可直接複制貼上
先確認你的紅外線模組在有遮蔽的狀況下所發送的訊號是高電位HIGH還是低電位LOW
再來修改IF裡面digitalRead(2) == HIGH或LOW
|