這樣寫有問題,
你的寫法可以簡化成
f((a == 1) && (b == 1)) {
digitalWrite(led1,HIGH);
} else if((b == 1) && (a == 1)) {
digitalWrite(led2,HIGH);
} else {
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
}
然後第一個判斷式和第二個判斷式根本一樣, 所以又變成
f((a == 1) && (b == 1)) {
digitalWrite(led1,HIGH);
} else {
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
}
所以才不會亮
只要同時遮住兩個就會亮了
當通過的時候, 步驟應該是
(sensor1, sensor2) = (0, 0)
(sensor1, sensor2) = (1, 0)
(sensor1, sensor2) = (0, 1)
(sensor1, sensor2) = (0, 0)
如果從另一邊,
(sensor1, sensor2) = (0, 0)
(sensor1, sensor2) = (0, 1)
(sensor1, sensor2) = (1, 0)
(sensor1, sensor2) = (0, 0)
你要記住前一次 sensor1 和 sensor2 的狀態,
當有變化的時候再處理
才有辦法判斷
|