0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ESP8266紅外信號(hào)收發(fā)實(shí)驗(yàn)

CHANBAEK ? 來(lái)源:編程圈子 ? 作者:編程圈子 ? 2023-03-26 17:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、概述

1. ESP8266紅外功能及庫(kù)

ESP8266 支持通過(guò)紅外接收器和紅外LED進(jìn)行紅外收發(fā)功能。

ESP8266的紅外收發(fā)功能需要借助外部庫(kù),常用的庫(kù)有IRremoteESP8266、IRremote、IRLib2等。

IRremoteESP8266庫(kù)是專門為ESP8266芯片設(shè)計(jì)的紅外收發(fā)庫(kù),它支持多種協(xié)議,包括NEC、Sony、RC5、RC6等,還支持學(xué)習(xí)和發(fā)送紅外信號(hào)。

另外IRremote庫(kù)和IRLib2庫(kù)也是常用的紅外收發(fā)庫(kù),但這兩個(gè)庫(kù)不是專門為ESP8266設(shè)計(jì)的,需要進(jìn)行相應(yīng)的適配。

2. 紅外收發(fā)常見步驟

使用這些庫(kù)進(jìn)行紅外收發(fā)時(shí),一般需要進(jìn)行以下步驟:

  1. 初始化紅外收發(fā)器和紅外LED引腳,一般使用IRrecv和IRsend對(duì)象進(jìn)行操作。
  2. 在循環(huán)中檢測(cè)是否有紅外信號(hào)接收到,使用IRrecv對(duì)象的decode方法對(duì)信號(hào)進(jìn)行解碼。
  3. 根據(jù)解碼后的數(shù)據(jù)判斷紅外信號(hào)的類型和命令,進(jìn)行相應(yīng)的操作。
  4. 使用IRsend對(duì)象的send*方法發(fā)送紅外信號(hào)。

二、發(fā)送端

1. 電路接線

下面將紅外發(fā)射管接在GPIO4(D2)引腳,為防止燒管,可以在紅外發(fā)射管和地之間串聯(lián)一個(gè)1K電阻。

下面的程序?qū)崿F(xiàn)了從串口讀入4個(gè)字節(jié),然后通過(guò)紅外發(fā)射出去。

2. 源代碼

#include 

int IR_S =  4;     //接arduino 8號(hào)引腳
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] << 24 | buffer[1] << 16 | buffer[2] <<8 | buffer[3];
    Serial.println(data, HEX);
    irsend.sendSony(data, 32);
  }
  delay(1000);
}

3. sendSony介紹

這里重點(diǎn)是使用sendSony方法,函數(shù)定義:irsend.sendSony(data, nbits)

  • data 要發(fā)送的數(shù)據(jù)
  • nbits 紅外碼的位數(shù)

如果要發(fā)送0x0a9,那么使用Sony紅外協(xié)議發(fā)送,可以使用下面的代碼:

irsend.sendSony(0x0A9, 12);

假設(shè)現(xiàn)在要發(fā)送 0x9AB32AFC,轉(zhuǎn)換為二進(jìn)制數(shù)

10011010101100110010101011111100,

然后,我們按照 Sony 協(xié)議的格式構(gòu)造數(shù)據(jù),即:

起始位(4位)  設(shè)備地址(7位) 命令數(shù)據(jù)(8位) 
0101          0000001         00110101

其中,起始位是固定的 0101,設(shè)備地址可以是 0 到 127 之間的任意一個(gè)值,這里我們假設(shè)設(shè)備地址為 1,所以設(shè)備地址的二進(jìn)制表示為 0000001。

接下來(lái)是命令數(shù)據(jù),我們將 0x9AB32AFC 轉(zhuǎn)換為二進(jìn)制后,從左到右依次填入,不足 8 位則在高位補(bǔ)零。因此,命令數(shù)據(jù)的二進(jìn)制表示為 10011010 10110011 00101010 11111100,這里我們將這 4 個(gè)字節(jié)從左到右依次排列,即

10011010101100110010101011111100。

最后,在命令數(shù)據(jù)的右邊再添加一位結(jié)束位,固定為 0。因此,最終的數(shù)據(jù)為 0101 0000001 10011010 10110011 00101010 11111100 0。

將這個(gè)二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),即 1413266032。因此,對(duì)于發(fā)送 0x9AB32AFC 的情況,irsend.sendSony(0x9AB32AFC, 32) 中的第二個(gè)參數(shù)應(yīng)為 32。

二、接收

下面把帶解碼功能的紅外接收管(型號(hào)1838B)接在了D5引腳。接收直接調(diào)用IRremote.h庫(kù)。

1. 源代碼

#include 
 
int RECV_PIN = D5; 
IRrecv irrecv(RECV_PIN); 
decode_results results;
 
void setup()
{
  Serial.begin(9600);
  
  irrecv.enableIRIn(); //初始化紅外遙控
}
 
void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    // 接收下一個(gè)值
    irrecv.resume();
  }
  delay(150);
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23826

    瀏覽量

    673701
  • 信號(hào)
    +關(guān)注

    關(guān)注

    11

    文章

    2851

    瀏覽量

    78231
  • 串口
    +關(guān)注

    關(guān)注

    15

    文章

    1588

    瀏覽量

    79867
  • 紅外接收器
    +關(guān)注

    關(guān)注

    2

    文章

    42

    瀏覽量

    19313
  • ESP8266
    +關(guān)注

    關(guān)注

    51

    文章

    965

    瀏覽量

    47371
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

  • 随风流水011

評(píng)論

相關(guān)推薦
熱點(diǎn)推薦

ESP8266_IR_紅外例程及使用說(shuō)明_Version 0.3

ESP8266__Interface_Infrared_Device紅外接口參考說(shuō)明
發(fā)表于 12-30 14:37 ?572次下載

ESP8266系列模塊選型

ESP8266系列模塊選型ESP8266 ESP-01 ESO-02
發(fā)表于 01-05 17:34 ?37次下載

使用esp8266實(shí)現(xiàn)STM32聯(lián)網(wǎng)(最簡(jiǎn)單USART方法)

上一篇 esp8266怎么配置esp8266和USB轉(zhuǎn)TTL連接esp8266簡(jiǎn)單介紹esp8266連接路由器esp8266通過(guò)路由器連接在
發(fā)表于 11-22 11:51 ?1.3w次閱讀

esp8266 at指令集詳解

ESP8266可廣泛應(yīng)用于智能電網(wǎng)、智能交通、智能家具、手持設(shè)備、工業(yè)控制等領(lǐng)域。本文介紹了esp8266 at指令集,以及ESP8266使用AT指令開發(fā)示例
發(fā)表于 12-08 13:52 ?14.7w次閱讀
<b class='flag-5'>esp8266</b> at指令集詳解

ESP32和ESP8266基于Arduino的MQTT收發(fā)資料說(shuō)明

本文檔的主要內(nèi)容詳細(xì)介紹的是ESP32和ESP8266基于Arduino的MQTT收發(fā)資料說(shuō)明。
發(fā)表于 01-24 08:00 ?110次下載
<b class='flag-5'>ESP</b>32和<b class='flag-5'>ESP8266</b>基于Arduino的MQTT<b class='flag-5'>收發(fā)</b>資料說(shuō)明

如何將ESP8266連接到WiFi

在之前的ESP8266項(xiàng)目中,我簡(jiǎn)要介紹了ESP8266 WiFi模塊,如何開始使用ESP8266和Arduino,ESP8266 ESP-
的頭像 發(fā)表于 07-29 11:32 ?8.8w次閱讀
如何將<b class='flag-5'>ESP8266</b>連接到WiFi

怎樣使用ESP8266 Flasher和Programmer燒寫ESP8266 AT固件

選擇要連接的COM端口ESP8266 Flasher和Programmer + ESP8266 Wifi串行收發(fā)器模塊。將BAUDRATE設(shè)置為115200。
的頭像 發(fā)表于 11-18 17:58 ?2.2w次閱讀

ESP8266-NodeMCU

2C1.8 SPI1.9 ESP8266引腳功能一覽ESP8266-NodeMCU引腳功能1.1 可用引腳??ESP8266芯片有17個(gè)GPIO引腳(GPIO0~GPIO16)。這些引腳中的GPIO6~GPIO 11被用于連接開
發(fā)表于 10-25 16:51 ?44次下載
<b class='flag-5'>ESP8266</b>-NodeMCU

ESP8266 wifi模塊開發(fā)匯總

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ESP8266 wifi模塊開發(fā)匯總?ESP8266 wifi模塊開發(fā)匯總本文檔主要介紹開發(fā)者在ESP8266開發(fā)中常見的一些問(wèn)題。 這些
發(fā)表于 11-05 19:21 ?190次下載
<b class='flag-5'>ESP8266</b> wifi模塊開發(fā)匯總

ESP8266

優(yōu)點(diǎn)1.性能穩(wěn)定ESP8266EX 的工作溫度范圍大,且能夠保持穩(wěn)定的性能,能適應(yīng)各種操作環(huán)境。2.低功耗ESP8266EX 專為移動(dòng)設(shè)備、可穿戴電子產(chǎn)品和物聯(lián)網(wǎng)應(yīng)用而設(shè)計(jì),通過(guò)多項(xiàng)專有技術(shù)實(shí)現(xiàn)了
發(fā)表于 11-07 10:36 ?26次下載
<b class='flag-5'>ESP8266</b>

ESP8266】接入bl

ESP8266】接入bl
發(fā)表于 12-08 13:36 ?10次下載
【<b class='flag-5'>ESP8266</b>】接入bl

ESP8266學(xué)習(xí)之路——環(huán)境部署

文章目錄前言ESP8266SDK前言ESP8266SDK官方鏈接
發(fā)表于 12-22 18:47 ?30次下載
<b class='flag-5'>ESP8266</b>學(xué)習(xí)之路——環(huán)境部署

ESP8266 WIFI模擬GPS時(shí)鐘信號(hào)

電子發(fā)燒友網(wǎng)站提供《ESP8266 WIFI模擬GPS時(shí)鐘信號(hào).zip》資料免費(fèi)下載
發(fā)表于 08-04 14:33 ?15次下載
<b class='flag-5'>ESP8266</b> WIFI模擬GPS時(shí)鐘<b class='flag-5'>信號(hào)</b>

ESP8266硬件

目前市面上有關(guān)ESP8266模組有很多的種類,但是都是使用的樂(lè)鑫公司開發(fā)的ESP8266的wifi模組,而且種類也很多。
的頭像 發(fā)表于 02-10 14:25 ?5628次閱讀
<b class='flag-5'>ESP8266</b>硬件

nodemcu和esp8266是什么關(guān)系?

nodemcu和esp8266是什么關(guān)系 nodemcu和esp8266是什么關(guān)系?通俗理解就是nodemcu是一個(gè)開發(fā)板,基于esp8266的開發(fā)板。 目前市面上搭載有ESP8266
的頭像 發(fā)表于 10-20 14:53 ?4495次閱讀
nodemcu和<b class='flag-5'>esp8266</b>是什么關(guān)系?

電子發(fā)燒友

中國(guó)電子工程師最喜歡的網(wǎng)站

  • 2931785位工程師會(huì)員交流學(xué)習(xí)
  • 獲取您個(gè)性化的科技前沿技術(shù)信息
  • 參加活動(dòng)獲取豐厚的禮品