需要安装库IRremoteESP8266。
接收
下面的代码实现解码
#include <Arduino.h>
#include <IRremoteESP8266.h>
#include <IRrecv.h>
#include <IRutils.h>
#define RECV_PIN 4
#define LED 14
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
Serial.begin(115200);
Serial.println();
pinMode(LED, OUTPUT);
digitalWrite(LED, 0);
irrecv.enableIRIn();
}
void loop() {
ir_Handler(ir_value());
}
long ir_value() {
long data = 0;
if (irrecv.decode(&results)) {
serialPrintUint64(results.value, HEX);
Serial.println();
data=results.value;
irrecv.resume();
}
return data;
}
void ir_Handler(long data) {
if (data!=0) {
Serial.println(data);
digitalWrite(LED, 1);
delay(500);
digitalWrite(LED, 0);
}
}
解码后可以根据遥控器按键值,做实际值的动作。
发送
也可以做一个遥控器
#include <Arduino.h>
#include <IRremoteESP8266.h>
#include <IRsend.h>
#define SEND_PIN 4
#define KEY 5
#define LED 14
IRsend irsend(SEND_PIN);
void setup() {
pinMode(KEY, INPUT_PULLUP);
pinMode(LED, OUTPUT);
digitalWrite(LED, 0);
irsend.begin();
}
void loop() {
if (digitalRead(KEY) == 0) {
digitalWrite(LED, 1);
irsend.sendNEC(16738455);
delay(500);
digitalWrite(LED, 0);
}
}