1.
线路连接:
红外接收 vcc 接 arduino 5v
红外接收 gnd 接 arduino gnd
红外接收 vout 接 arduino 11
led 正极 接 arduino 8
led 正极 接 arduino gnd
2. code
/*
* 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;
int led_PIN = 8;
IRrecv irrecv(RECV_PIN);
String resultValueStr;
decode_results results;
void setup()
{
Serial.begin(9600);
pinMode(led_PIN,OUTPUT);
// 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");
}
void loop() {
if (irrecv.decode(&results)) {
Serial.print("接收到的十六进制: ");
Serial.println(results.value, HEX); // 接收到的十六进制的值
resultValueStr = results.value; // 接收到的十进制的值
Serial.print("接收到的十进制: ");
Serial.println(resultValueStr);
if(resultValueStr == "2534850111"){
Serial.println("灯亮");
digitalWrite(led_PIN,HIGH);
}
if(resultValueStr == "1033561079"){
Serial.println("灯灭");
digitalWrite(led_PIN,LOW);
}
irrecv.resume(); // Receive the next value
}
delay(100);
}
效果如图所示: 按下遥控器 1 键 led 灯亮, 2 键 led 灯灭