Esp8266学习5. 红外信号收发实验 您所在的位置:网站首页 esp8266收发数据 Esp8266学习5. 红外信号收发实验

Esp8266学习5. 红外信号收发实验

2023-03-22 14:09| 来源: 网络整理| 查看: 265

Esp8266学习5. 红外信号收发实验 一、概述1. ESP8266红外功能及库2. 红外收发常见步骤 二、发送端1. 电路接线2. 源代码3. sendSony介绍 二、接收1. 源代码

一、概述 1. ESP8266红外功能及库

ESP8266 支持通过红外接收器和红外LED进行红外收发功能。

ESP8266的红外收发功能需要借助外部库,常用的库有IRremoteESP8266、IRremote、IRLib2等。

IRremoteESP8266库是专门为ESP8266芯片设计的红外收发库,它支持多种协议,包括NEC、Sony、RC5、RC6等,还支持学习和发送红外信号。

另外IRremote库和IRLib2库也是常用的红外收发库,但这两个库不是专门为ESP8266设计的,需要进行相应的适配。

2. 红外收发常见步骤

使用这些库进行红外收发时,一般需要进行以下步骤:

初始化红外收发器和红外LED引脚,一般使用IRrecv和IRsend对象进行操作。在循环中检测是否有红外信号接收到,使用IRrecv对象的decode方法对信号进行解码。根据解码后的数据判断红外信号的类型和命令,进行相应的操作。使用IRsend对象的send*方法发送红外信号。 二、发送端 1. 电路接线

下面将红外发射管接在GPIO4(D2)引脚,为防止烧管,可以在红外发射管和地之间串联一个1K电阻。

下面的程序实现了从串口读入4个字节,然后通过红外发射出去。

2. 源代码 #include int IR_S = 4; //接arduino 8号引脚 IRsend irsend(IR_S); void setup() { pinMode(IR_S, OUTPUT); Serial.begin(9600); // 9600 波特率 } void loop() { uint8_t buffer[4]; if ( Serial.available()>=4) { Serial.readBytes(buffer, 4); uint32_t data = buffer[0] if (irrecv.decode(&results)) { Serial.println(results.value, HEX); // 接收下一个值 irrecv.resume(); } delay(150); }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有