简单项目 esp8266 红外接收 2025年6月24日21:35:32

项目物料:

  1. 红外接收模块 或 SCR638、HS0038、VS1838等
  2. ESP8266开发板 
  3. 红外遥控器
  4. 支持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: // 1
        Serial.println("Button 1 pressed");
        break;
    case 0xFF629D: // 2
        Serial.println("Button 2 pressed");
        break;
    case 0xFFE21D: // 3
        Serial.println("Button 3 pressed");
        break;
    case 0xFF22DD: // 4
        Serial.println("Button 4 pressed");
        break;
    case 0xFF02FD: // 5
        Serial.println("Button 5 pressed");
        break;
    case 0xFFC23D: // 6
        Serial.println("Button 6 pressed");
        break;
    case 0xFFE01F: // 7
        Serial.println("Button 7 pressed");
        break;
    case 0xFFA857: // 8
        Serial.println("Button 8 pressed");
        break;
    case 0xFF906F: // 9
        Serial.println("Button 9 pressed");
        break;
    case 0xFF6897: // *
        Serial.println("Button * pressed");
        break;
   
        }
}
        irrecv.resume();
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值