/*
* IRremote: IRrecvDemo
*/
#include <IRremote.h>
#include <SoftwareSerial.h>
SoftwareSerial SoSerial(6, 7); // 软串口 RX(D6), TX(D7)
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
IRsend irsend;
decode_results results;
// 显示红外线协定种类
void showIRProtocol(decode_results *results)
{
Serial.print("Protocol: ");
// 判断红外线协定种类
switch(results->decode_type) {
case NEC:
Serial.print("NEC");
break;
case SONY:
Serial.print("SONY");
break;
case RC5:
Serial.print("RC5");
break;
case RC6:
Serial.print("RC6");
break;
default:
Serial.print("Unknown encoding");
}
// 把红外线编码印到 Serial port
Serial.print(", irCode: ");
Serial.print(results->value, HEX); // 红外线编码
Serial.print(", bits: ");
Serial.println(results->bits); // 红外线编码位元数
}
void setup()
{
SoSerial.begin(9600); //Serial.begin(9600);
//Serial.println("Enabling IRin");
irrecv.enableIRIn();
//Serial.println("Enabled IRin");
}
void loop() {
if (irrecv.decode(&results)) {
if((results.value==16 ) ||(results.value==2064 )){
SoSerial.println ("8V16,22.");
//Serial.println(results.value);//增加/电脑1
//Serial.println(results.value,HEX);
}
if((results.value==17 ) ||(results.value==2065 )){
//Serial.println(results.value);//减少 /电脑3
//Serial.println(results.value,HEX);
SoSerial.println ("10V16,22.");
}
if((results.value==22 ) ||(results.value==2070 )){
//Serial.println(results.value);//上移 /电脑2
//Serial.println(results.value,HEX);
SoSerial.println ("9V16,22.");
}
if((results.value==21 ) ||(results.value==2069 )){
SoSerial.println ("11V16,22.");
//Serial.println(results.value);//下移 /电脑4
//Serial.println(results.value,HEX);
}
/*
if((results.value==18 ) ||(results.value==2066 )){
//Serial.println(results.value);
//Serial.println(results.value,HEX);//菜单/双流
irsend.sendNEC(0x22F5C837, 32);
}
*/
//Serial.println(results.value);
// showIRProtocol(&results);
irrecv.resume(); // Receive the next value
}
delay(100);
}
联系客服