[問題] 紅外線感應"記次"

作者: ss610349 (馬加加)   2015-03-05 01:08:43
各位大大
最近我用ARDUINO在做紅外線"計次"
要運用在螺桿實驗,統計滑塊來回運動的次數,
紅外線的部分已經OK了,就只差計次的部分。
我想要用SERIAL MONITOR計次 也就是把次數顯示在MONITOR上,
附上我的程式碼,我試過很多寫法都只能顯示1不然就是不受紅外線感測自己跑下去
const int irReceiver = 4;
const int irLed = 3;
const int ledPin = 13; // 紅外線指示燈
const unsigned int frequency = 38000; // 發射頻率(單位: Hz)
void setup() {
Serial.begin(9600); // 開啟 Serial port, 通訊速率為 9600
bps
pinMode(irReceiver, INPUT); // 把 irReceiver 接腳設置為 INPUT
pinMode(irLed, OUTPUT); // 把 irLed 接腳設置為 INPUT
pinMode(ledPin, OUTPUT); // 把 ledPin 設置為 OUTPUT
tone(irLed, frequency);
}
void blinkLED() {
for (int i=1; i<= 1; i++) {
digitalWrite(ledPin, HIGH); // 打開指示燈
delay(200);
digitalWrite(ledPin, LOW); // 關掉指示燈
delay(200);
Serial.println(i);
}
}
void loop() {
int ir_status = digitalRead(irReceiver);
if (ir_status == 0)
blinkLED();
}
如上 懇請大大解惑 ><
作者: peng978   2015-03-05 02:38:00
for不對
作者: grayStone (灰色石頭)   2015-03-06 02:29:00
for只跑一圈?
作者: kikiqqp (喵食罐頭)   2015-03-07 00:48:00
for (int i=1; i<= 1; i++) 另外開發經驗上建議你使用微動開關來做觸發計次,除非有壽命上考量

Links booklink

Contact Us: admin [ a t ] ucptt.com