简单项目 esp8266 红外接收 2025年6月24日21:35:32
项目物料:
- 红外接收模块 或 SCR638、HS0038、VS1838等
- ESP8266开发板
- 红外遥控器
- 支持ESP8266 的 红外库 下载地址_点击直达(科学)
程序代码:
这个程序上传之后 红外遥控器 一个按钮一个按钮 通过串口 获取 十六进制码
#include <Arduino.h>
#include <WiFiManager.h>
#include <IRrecv.h>
#define IR_RECV_PIN 4 //宏定义接收脚
IRrecv irrecv(IR_RECV_PIN); //实例化对象并设置红外接收脚
decode_results results; //实例化对象 获取返回结果void setup()
{Serial.begin(9600);pinMode(LED_BUILTIN, OUTPUT);irrecv.enableIRIn(); //启用 红外接收脚
}void loop()
{if (irrecv.decode(&results)) //获取返回结果 接收到红外 会返回1 {if (!results.repeat) // 只有非重复码时执行操作{Serial.println(results.value, HEX); //输出十六进制地址}irrecv.resume(); //更新以接收下一个 红外码}
}
获取到十六进制码后 就可以根据 遥控器码 创建代码 例如:
#include <Arduino.h>
#include <WiFiManager.h>
#include <IRrecv.h>
#define IR_RECV_PIN 4
IRrecv irrecv(IR_RECV_PIN);
decode_results results;void setup()
{Serial.begin(9600);pinMode(LED_BUILTIN, OUTPUT);irrecv.enableIRIn();
}void loop()
{if (irrecv.decode(&results)){if (!results.repeat) // 只有非重复码时执行操作{switch (results.value) {case 0xFFA25D: // 1Serial.println("Button 1 pressed");break;case 0xFF629D: // 2Serial.println("Button 2 pressed");break;case 0xFFE21D: // 3Serial.println("Button 3 pressed");break;case 0xFF22DD: // 4Serial.println("Button 4 pressed");break;case 0xFF02FD: // 5Serial.println("Button 5 pressed");break;case 0xFFC23D: // 6Serial.println("Button 6 pressed");break;case 0xFFE01F: // 7Serial.println("Button 7 pressed");break;case 0xFFA857: // 8Serial.println("Button 8 pressed");break;case 0xFF906F: // 9Serial.println("Button 9 pressed");break;case 0xFF6897: // *Serial.println("Button * pressed");break;}
}irrecv.resume();}
}