传感器-红外接收,NodeMCU,arduino实现红外接收,4.x版本的irRemote库的使用

news2024/11/25 8:17:39

一,常见视频和搜索到接收红外的代码

发送参考,接收参考
这里只是看arduino中的接收程序,

#include <IRremote.h>
int RECV_PIN = 5;  /红外接收模块的s引脚
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
  Serial.begin(9600);
  // 假如启动过程出现问题,提示用户启动失败
  Serial.println("Enabling IRin");
  irrecv.enableIRIn(); // Start the receiver
  Serial.println("Enabled IRin");
}
 
void loop() {
  if (irrecv.decode(&results)) { //检查是否接收到红外遥控信号
    Serial.println(results.value, HEX); //输出指令信息
    irrecv.resume();                    //接收下一指令
  }
  delay(100);

1,个人遇到的问题

使用了上述程序,虽然可以从串口查看遥控不论按下哪个键的字符串但每次都是FFFF,这明显是不对的

2,分析原因

1,可能是因为没有使用配套的发送模块
2.可能是遥控器中发送信号的协议与接收模块的协议不一样,导致的解码错误。

3,解决方式

1,使用另一个nodemcu实现配套红外发射模块,看是否会显示正确
2,这种情况下,根据目前能力解决的可能性不大,(分析遥控的红外协议

二,成功接收-红外IrRemote库版本不对应

参考查看arduino库
参考中的都是2.x版本的红外库;个人使用了4.x版本的库,查看库文件中的函数实现发现下面两个不同版本的代码,
Old 2.x program:

#include <IRremote.h>

IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
...
  irrecv.enableIRIn(); // Start the receiver
}
void loop() {
  if (irrecv.decode(&results)) {
      Serial.println(results.value, HEX);
      ...
      irrecv.resume(); // Receive the next value
  }
  ...
}

New 3.x or 4.x program:

#include <IRremote.hpp>

void setup()
{
...
  IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); // Start the receiver
}

void loop() {
  if (IrReceiver.decode()) {
      Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX); // Print "old" raw data
      /* USE NEW 3.x FUNCTIONS */
      IrReceiver.printIRResultShort(&Serial); // Print complete received data in one line
      IrReceiver.printIRSendUsage(&Serial);   // Print the statement required to send this data
      ...
      IrReceiver.resume(); // Enable receiving of the next value
  }
  ...
}

成功接收现象和分析

成功代码

#include <IRremote.hpp>
int RECV_PIN = 5;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Serial.println("\n port is 9600baud");
 IrReceiver.begin(RECV_PIN, ENABLE_LED_FEEDBACK);
 Serial.println("begin IrReceiver !!");
}

void loop() {

  if (IrReceiver.decode()) {   //如果收到信号
    IrReceiver.printIRResultShort(&Serial);  //显示基本的信息   
    Serial.println("print boundary...");
    IrReceiver.printIRSendUsage(&Serial); 
   Serial.println("IrReceiver.decodedIRData.decodedRawData");
    Serial.println(IrReceiver.decodedIRData.decodedRawData,HEX);
    Serial.println("IrReceiver.decodedIRData");
    Serial.println(IrReceiver.decodedIRData.command,HEX);
    IrReceiver.resume();
  }
  delay(100);
}

接收遥控的代码和结果对比

在这里插入图片描述
在这里插入图片描述

LSB(Least Significant Bit)–最低有效位, first,MSB(Most Significant Bit)–最高有效位first

输出中:

Protocol=NEC Address=0x0 Command=0x45 Raw-Data=0xBA45FF00 32 bits LSB first

参考
简单来说就是第一位接收的是低位数据。例如传送101010二进制数据,是先从最低位发送接收

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/460080.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

复现Apache HTTPD 换行解析漏洞(CVE-2017-15715)

影响版本 2.4.0~2.4.29都有可能存在该漏洞 原理分析 进入容器 docker exec -it 容器ID /bin/bash 该程序是采用黑名单的形式&#xff0c;如果文件后缀名不在名单内即可上传&#xff0c;所以 a.php\x0A不在黑名单列表中&#xff0c;可以上传。但是x0A是换行符&#xff0c;所…

Cahpter 3 : Defining Clocks(ug903:Vivado using constraints

1、About Clocks 在数字设计中&#xff0c;时钟代表了从寄存器到寄存器可靠传输数据的时间基准。XilinxVivado集成设计环境&#xff08;IDE&#xff09;时序引擎使用时钟特性来计算时序路径要求&#xff0c;并通过松弛计算报告设计时序裕度。必须正确定义时钟&#xff…

本原数据:回归数据库技术本原,做难而正确的事

数据库技术是信息科技领域的最为重要的技术之一。随着科技的不断进步&#xff0c;数据库技术得到了迅速的发展&#xff0c;应用范围也越来越广泛。 与此同时&#xff0c;在数据量持续高速增长的情况下&#xff0c;企业对数据库也提出了更高的要求&#xff0c;例如数据存储越来…

海尔智家:智慧场景掌握「主动」权,用户体验才有话语权

2023年1月&#xff0c;《福布斯》AI专栏作家Rob Toews发布了年度AI发展预测&#xff0c;指出人工智能的发展将带来涉及各行业、跨学科领域的深远影响。变革将至&#xff0c;全球已掀起生成式AI热&#xff0c;以自然语言处理为代表的人工智能技术在快速进化&#xff0c;积极拥抱…

在maven工程下使用springmvc框架启动tomcat时报404 以及常见的错误和解决方式

以下的问题是我花了三天的时间解决的bug,网上找的各种资源都是一个样子&#xff0c;不能解决我的问题&#xff0c;非常的蛋疼。最后在咸鱼花了我15元找了个大神帮我调试的。 1.问题一 idea中通过maven已经导入了包&#xff0c;idea中也能定位到包的位置&#xff0c;本地maven仓…

用Python分析周杰伦歌曲并进行数据可视化

大家好&#xff0c;今天我们用python分析下周杰伦歌曲。为了尽量完整地呈现从原始数据到可视化的过程&#xff0c;接下来我们会先简单讲解数据的预处理过程&#xff0c;即如何将 JSON 数据转化为Excel 格式&#xff0c;以及如何对周杰伦的歌曲进行分词。 本案例中的歌词数据来…

RedHat Linux系统故障修复—— grub引导、MBR损坏修复过程

一、故障问题 MBR损坏是一种非常常见的错误&#xff0c;两种情况&#xff1a;1.MBR文件损坏 2.grub目录被误删除 1.首先&#xff0c;MBR是安装在硬盘的第一个扇区上占用了512个字节&#xff0c;其中前446字节是bootloader用于引导操作系统&#xff08;中间的64个自己用来指定…

KDJB-802C继电器成组保护校验仪

一、功能与用途 可对各种继电器&#xff08;如电流、电压、反时限、功率方向、阻抗、差动、低周、同期、频率、直流、中间、时间等&#xff09;及微机保护进行检定&#xff0c;并可模拟各种复杂的瞬时性、转换性故障进行整组试验。 二、主要技术参数 交流电流输出&#xff1a;…

多项目并行,如何用飞项快速获取关键信息与进展?

在企业中&#xff0c;多项目并行是常态。 项目经理身兼数职&#xff0c;既要掌握多个项目的关键信息&#xff0c;也要关注卡点与延期风险&#xff0c;跟踪关键任务进度。但常常存在与多个项目负责人对接信息延迟、环节卡点不清晰、文件繁多凌乱导致效率底下的问题。 今天就来…

这可能是你看过最详细的Java集合篇【一】—— ArrayList

文章目录 List集合的特点List集合常见实现类继承关系ArrayList继承关系数据结构和相关变量构造方法添加元素相关方法动态扩容机制 查找元素相关方法删除元素相关方法清空方法遍历方法其它方法常见面试题 List集合的特点 List集合的特点&#xff1a;存储元素有序、可重复、有索…

Shiro 实战教程(全)

目录 1.权限的管理 1.1 什么是权限管理 1.2 什么是身份认证 1.3 什么是授权 2.什么是shiro 3.shiro的核心架构 3.1 Subject 3.2 SecurityManager 3.3 Authenticator 3.4 Authorizer 3.5 Realm 3.6 SessionManager 3.7 SessionDAO 3.8 CacheManager 3.9 Cryptogr…

他们是怎么使用上gpt-4的-gpt-4在哪用

为什么有人在使用GPT4 openAI尚未正式发布GPT-4模型&#xff0c;也没有公布任何与GPT-4相关的信息。因此&#xff0c;没有人可以在使用GPT-4模型。 值得注意的是&#xff0c;虽然OpenAI尚未正式发布GPT-4&#xff0c;但由于其之前发布的GPT-3具有出色的性能和功能&#xff0c…

JVM 垃圾回收算法

之前说堆内存中有垃圾回收&#xff0c;比如Young区的Minor GC&#xff0c;Old区的Major GC&#xff0c;Young区和Old区 的Full GC。 但是对于一个对象而言&#xff0c;怎么确定它是垃圾&#xff1f;是否需要被回收&#xff1f;怎样对它进行回收&#xff1f;等等这些问题我们还需…

【3. 初学ROS,年轻人的第一个Node节点】

【3. 初学ROS&#xff0c;年轻人的第一个Node节点】 1. 工作空间设置2. 创建Package3. 回访依赖包4. 创建Node节点5. 源码编译6. 运行Node节点7. Node节点完善8. 总结 本教程是B站阿杰视频的笔记 视频地址&#xff1a;https://www.bilibili.com/video/BV1nG411V7HW 超声波传感器…

SqlServer2022安装与配置_并用Navicat连接SqlServer---sqlserver工作笔记0001

首先去下载 SQL Server 下载 | Microsoft https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 首先去下载安装包,这里我们下最新的 下载这个免费版的 可以看到下面有个全功能免费版本下载他 然后点击安装 下载以后安装 选择自定义 然后安装

策略模式——时势造影响

● 策略模式介绍 在软件开发中常常遇到这样的情况&#xff1a;实现某一个功能可以有多种算法或者策略&#xff0c;我们根据实际情况选择不同的算法或者策略来完成该功能。例如&#xff0c;排序算法&#xff0c;可以使用插入排序、归并排序、冒泡排序。 针对这种情况&#xff0c…

机器学习 day09(如何设置学习率α,特征工程,多项式回归)

常见的错误的学习曲线图&#xff08;上方两个&#xff09; 当关于迭代次数的学习曲线图&#xff0c;出现波浪型或向上递增型&#xff0c;表示梯度下降算法出错该情况可由&#xff0c;学习率α过大&#xff0c;或代码有bug导致 常用的调试方法&#xff1a; 选择一个非常非常…

【学习笔记】unity脚本学习(六)【GUI发展历程、IMGUI控件、Layout自动布局】

目录 unity 界面发展IMGUINGUI其他GUI插件uGUIUI 工具包比较 GUI基础GUI静态变量Unity扩展编辑器屏幕空间的总尺寸Screen.width 和 Screen.height GUI静态函数&#xff08;GUI控件&#xff09;Label图片 Box控件Button与RepeatButtonTextFieldTextAreaPasswordField其他控件 GU…

MySql主从复制原理及部署

MySql主从复制 原理&#xff1a; 1、Master节点开启binlog&#xff0c;并将变动记录到binlog中&#xff1b; 2、Slave节点定期探测Master节点的binlog&#xff0c;如有变动&#xff0c;开启I/O线程向Master节点请求二进制事件&#xff1b; 3、Master节点为每一个I/O线程启动…

win10卸载MySQL8.0

停止MySQL服务 shiftctrlesc打开任务管理器 将MySQL服务停止&#xff0c;这里我只有一个MySQL服务&#xff0c;如有多个MySQL服务&#xff0c;也要全部停止掉。 卸载mysql server等设备 控制面板 -》程序 -》 程序和功能&#xff0c;将mysql server等设备卸载掉&#xff0c;好…