/*
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
* An IR detector/demodulator must be connected to the input RECV_PIN.
* Version 0.1 July, 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*/
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
// In case the interrupt driver crashes on setup, give a clue
// to the user what's going on.
Serial.println("Enabling IRin");
irrecv.enableIRIn(); // Start the receiver
Serial.println("Enabled IRin");
pinMode(2,OUTPUT);
}
void loop()
{
if (irrecv.decode(&results))
{
Serial.println(results.value,HEX);
if(results.value==0XFF30CF)
{
digitalWrite(2,!digitalRead(2));
}
irrecv.resume(); // Receive the next value
}
delay(100);
}
例二:
#include <IRremote.h>
long sw1=0xFF30CF;
long sw2=0xFF18E7;
long sw3=0xFF7A85;
long sw4=0xFF10EF;
int i,j=0;
int RECV_PIN = 11; // 使用數位腳位2接收紅外線訊號
IRrecv irrecv(RECV_PIN); // 初始化紅外線訊號輸入
decode_results results; // 儲存訊號的結構
const int led[4]={2,3,4,5};
int key=0;
void setup()
{
Serial.begin(9600);
irrecv.blink13(true); // 設為true的話,當收到訊號時,腳位13的LED便會閃爍
irrecv.enableIRIn(); // 啟動接收
for(i=0;i<4;i++)
pinMode(led[i],OUTPUT);
}
void loop()
{
if (irrecv.decode(&results)) // 接收紅外線訊號並解碼
{
irrecv.resume(); // 準備接收下一個訊號
if(results.value==sw1)
key=1;
else if(results.value==sw2)
key=2;
else if(results.value==sw3)
key=3;
}
for(i=0;i<4;i++)
digitalWrite(led[i],LOW);
if(key==1)
{
j++;
if(j>3)
j=0;
digitalWrite(led[j],HIGH);
delay(1000);
}
else if(key==2)
{
j--;
if(j<0)
j=3;
digitalWrite(led[j],HIGH);
delay(1000);
}
}
例三:
#include <IRremote.h>
long sw1=0xFF30CF;
long sw2=0xFF18E7;
long sw3=0xFF7A85;
long sw4=0xFF10EF;
int i;
int RECV_PIN = 11; // 使用數位腳位2接收紅外線訊號
IRrecv irrecv(RECV_PIN); // 初始化紅外線訊號輸入
decode_results results; // 儲存訊號的結構
const int led[4]={2,3,4,5};
void setup()
{
Serial.begin(9600);
irrecv.blink13(true); // 設為true的話,當收到訊號時,腳位13的LED便會閃爍
irrecv.enableIRIn(); // 啟動接收
for(i=0;i<4;i++)
pinMode(led[i],OUTPUT);
}
void loop()
{
if (irrecv.decode(&results)) // 接收紅外線訊號並解碼
{
irrecv.resume(); // 準備接收下一個訊號
if(results.value==sw1)
digitalWrite(2,!digitalRead(2));
else if(results.value==sw2)
digitalWrite(3,!digitalRead(3));
else if(results.value==sw3)
digitalWrite(4,!digitalRead(4));
else if(results.value==sw4)
digitalWrite(5,!digitalRead(5));
}
}
#include <IRremote.h>
long sw1=0xFF30CF;
long sw2=0xFF18E7;
long sw3=0xFF7A85;
long sw4=0xFF10EF;
int i;
int RECV_PIN = 11; // 使用數位腳位2接收紅外線訊號
IRrecv irrecv(RECV_PIN); // 初始化紅外線訊號輸入
decode_results results; // 儲存訊號的結構
const int led[4]={2,3,4,5};
void setup()
{
Serial.begin(9600);
irrecv.blink13(true); // 設為true的話,當收到訊號時,腳位13的LED便會閃爍
irrecv.enableIRIn(); // 啟動接收
for(i=0;i<4;i++)
pinMode(led[i],OUTPUT);
}
void loop()
{
if (irrecv.decode(&results)) // 接收紅外線訊號並解碼
{
irrecv.resume(); // 準備接收下一個訊號
if(results.value==sw1)
digitalWrite(2,!digitalRead(2));
else if(results.value==sw2)
digitalWrite(3,!digitalRead(3));
else if(results.value==sw3)
digitalWrite(4,!digitalRead(4));
else if(results.value==sw4)
digitalWrite(5,!digitalRead(5));
}
}
沒有留言:
張貼留言