|
本帖最後由 vegewell 於 2014-6-25 02:44 編輯
回復 1# p12345q1
你需要個計數器,
程式大致如下,尚未確認, 請自行研究,
#include <Timer.h>
#include <IRremote.h> // 引用 IRRemote 函式庫
const int irReceiverPin = 2; // 紅外線接收器 OUTPUT 訊號接在 pin 2
const int ledPin = 13; // LED 接腳
int count = 0;
IRrecv irrecv(irReceiverPin); // 定義 IRrecv 物件來接收紅外線訊號
decode_results results; // 解碼結果將放在 decode_results 結構的 result 變數裏
Timer tcb;
void writeToSerial(){
Serial.println(count);
count = 0;
}
void setup()
{
pinMode(ledPin, OUTPUT); // 把 LED 接腳設置為輸出模式
Serial.begin(9600); // 開啟 Serial port, 通訊速率為 9600 bps
irrecv.enableIRIn(); // 啟動紅外線解碼
tcb.every(60000, writeToSerial); // 每經過1 minute,就會呼叫writeToSerial
}
// 讓指示燈閃爍幾下
void blinkLED() {
for (int i=1; i<= 4; i++) {
digitalWrite(ledPin, HIGH); // 打開 LED
delay(100);
digitalWrite(ledPin, LOW); // 關掉 LED
delay(100);
}
}
void loop()
{
if (irrecv.decode(&results)) { // 解碼成功,收到一組紅外線訊號
// 印到 Serial port
Serial.print("irCode: ");
Serial.print(results.value, HEX); // 紅外線編碼
Serial.print(", bits: ");
Serial.println(results.bits); // 紅外線編碼位元數
digitalWrite(ledPin, HIGH); // 打開 LED
delay(100);
digitalWrite(ledPin, LOW); // 關掉 LED
delay(100); // 讓指示燈閃爍幾下
irrecv.resume(); // 繼續收下一組紅外線訊號
count++;
}
tcb.update();
} |
|