Robofun 機器人論壇
標題:
紅外線接收器 如何顯示在一分鐘內接收了幾次??
[打印本頁]
作者:
p12345q1
時間:
2014-6-23 21:40
標題:
紅外線接收器 如何顯示在一分鐘內接收了幾次??
小弟是新手正在研究紅外線接收器
已經可接收紅外線
並可以在
Serial Monitor顯示出來
image4.png
(16.66 KB, 下載次數: 249)
下載附件
接收端顯示
2014-6-23 21:31 上傳
程式碼如下
/*
* IRRemote 紅外線遙控教學
* 範例 1.3: 增加紅外線訊號指示燈
*/
#include <IRremote.h> // 引用 IRRemote 函式庫
const int irReceiverPin = 2; // 紅外線接收器 OUTPUT 訊號接在 pin 2
const int ledPin = 13; // LED 接腳
IRrecv irrecv(irReceiverPin); // 定義 IRrecv 物件來接收紅外線訊號
decode_results results; // 解碼結果將放在 decode_results 結構的 result 變數裏
void setup()
{
pinMode(ledPin, OUTPUT); // 把 LED 接腳設置為輸出模式
Serial.begin(9600); // 開啟 Serial port, 通訊速率為 9600 bps
irrecv.enableIRIn(); // 啟動紅外線解碼
}
// 讓指示燈閃爍幾下
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(); // 繼續收下一組紅外線訊號
}
}
想請教各位大大
紅外線接收器 如何顯示接收幾次在一分鐘內???
或者接收端的
led在一分鐘內亮了幾次???
謝謝!
作者:
vegewell
時間:
2014-6-25 02:42
本帖最後由 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();
}
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2