全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > RF/无线技术 >

构建Arduino IR远程解码器的教程

时间:2022-08-10 16:52

人气:

作者:admin

标签: 解码器  arduino  通信技术 

导读:构建Arduino IR远程解码器的教程-在本教程中,我们将使用 TSOP1838 IR 接收器来构建使用 Arduino 的 IR 远程解码器。每个按钮的十六进制代码都将记录到 Microsoft Excel 表中。这个简单的红外遥...

  IR(Infrared)通信是一种简单、低成本、应用广泛的无线通信技术。红外光与可见光有些相似,只是波长稍长一些。IR 的这一特性使其人眼无法察觉,非常适合无线通信。

  有很多应用程序需要解码 IR 信号才能使用 IR 遥控器操作某些设备。因此,在本教程中,我们将使用 TSOP1838 IR 接收器来构建使用 Arduino 的 IR 远程解码器。每个按钮的十六进制代码都将记录到 Microsoft Excel 表中。这个简单的红外遥控解码器可用于红外遥控机器人、家庭自动化和其他红外控制项目等项目。

  所需组件

  Arduino Uno / Arduino Nano

  红外接收器 (TSOP1838)

  跳线

  面包板

  IR 通信如何工作?

  与其他通信系统一样,红外通信也有发射器和接收器。发射器看起来就像一个 LED,但它产生的光是 IR 光谱而不是可见光谱。而红外接收器是一个嵌入了前置放大器光电二极管,可将红外光转换为电信号。对于 IR 通信,发射器和接收器应相互指向。要了解有关IR 发射器和接收器电路的更多信息,请点击链接。

  按下遥控按钮时,IR LED(发射器)会发出红外光。该光由通常是光电二极管或光电晶体管的接收器接收。但红外线也由太阳、灯泡和其他任何产生热量的东西发出。这会干扰发射器信号,因此为防止发射器信号使用 36 kHz 至 46 kHz 之间的载波频率进行调制。接收到信号后,IR 接收器解调信号并将其转换为二进制,然后再发送到微控制器

  在这里,我们使用电视遥控器发送红外信号,并使用带有 Arduino 的 TSOP1838接收它们。

poYBAGLzcRiAdxplAAN3ZUnNzC4279.png

  电路原理

  使用 Arduino的 IR 远程解码器的电路图如下:

pYYBAGLzcRWAX6BPAAEKBXTyw-w274.png

  连接非常简单,因为 IR 接收器传感器只有三个引脚:Vs、GND 和 Data。将 IR 接收器的 Vs 和 GND 引脚连接到 Arduino 的 3.3V GND 引脚,将数据引脚连接到 Arduino 的数字引脚 2。

pYYBAGLzcRCAd6e3AAaExkNrOVA183.png

  Arduino IR 远程解码器编程

  Arduino IR 解码器的完整代码在页面末尾给出。

  为了解码 IR Remote,首先,我们需要下载并添加一个 IR 库到 Arduino IDE。您可以从这里下载 IR Remote 库。下载文件后,打开您的 Arduino IDE 并转到Sketch 》 Include library 》 Add.Zip library。选择库文件并单击“打开”。

  通过包含 IR Remote 库文件来启动您的代码。

  #include 《IRremote.h》

  之后定义连接红外接收器数据引脚的 Arduino 引脚。就我而言,它连接到 Arduino 的 D2 引脚。

  int IRPIN = 2;

  之后为 IR Receiver pin 创建一个实例。

  IRrecv recv(IRPIN);

  在下一行中,为decode_results类定义一个对象,IR 接收器将使用它来发送解码信息。

  decode_results 结果;

  在setup()函数中,启动串行通信,并通过调用IRrecv函数enableIRIn() 启动 IR 接收器。

  无效设置()

  {

  序列号。开始(9600);

  Serial.println(“启用 IRin”);

  不可恢复。启用IRIn();

  Serial.println(“启用 IRin”);

  Initialize_streamer();

  }

  在loop()函数中,recv.decode不断检查新信号,如果接收到新信号,接收到的信号代码将存储在result.value函数中。

  无效循环()

  {

  if (irrecv.decode(&result))

  {

  Serial.print(“值​​:”);

  Serial.println(result.value, HEX);

  Write_streamer();

  不可恢复的简历();

  }

  延迟(500);

  }

  为了从 Arduino 向 Excel 表发送数据,我们使用的是 PLX-DAQ。使用Write_streamer()函数,我们以特定模式串行发送数据,就像在串行监视器上显示值一样。关键行解释如下:

  无效的 Write_streamer()

  {

  序列号.print(“数据”); //总是写“DATA”来表示下面的数据

  序列号.print(“,”); //使用“,”移动到下一列

  Serial.print(result.value, HEX); //在Excel中存储日期

  序列号.print(“,”); //使用“,”移动到下一列

  序列号.println(); //行尾移动到下一行

  }

  一旦硬件和程序准备就绪,就可以将程序上传到您的 Arduino Nano 板上了。上传代码后,将遥控器指向红外接收器并按下遥控器按钮。每个按钮的十六进制代码将打印在串行监视器上。

  将 IR 远程解码器数据保存到 Excel 表中

  现在要将数据发送到 Excel 工作表,我们将使用PLX-DAQ。它是一个 Excel 插件软件,可帮助您将 Arduino 中的值直接写入笔记本电脑或 PC 上的 Excel 表中。使用链接下载文件。下载后,解压文件并点击.exe文件进行安装。它将在您的桌面上创建一个名为PLX-DAQ的文件夹。

  现在从桌面文件夹中打开“ PLX-DAQ 电子表格”文件。如果您的 Excel 上禁用了宏,那么您将看到一个安全块,如下图所示:

poYBAGLzcQqADzNCAACOa09EH-U322.png

  单击选项-》启用内容-》完成-》确定以启用宏。之后,您将看到以下屏幕:

pYYBAGLzcQaAeY3MAAF7ZBdmHAI467.png

  现在选择波特率“9600”和你的Arduino连接的端口,然后点击连接开始数据流。您的值应该开始被记录,如下图所示。

poYBAGLzcQKAfNOSAAFURtwSHT4661.png

  这就是如何轻松构建Arduino IR 远程解码器以将 IR 远程信号转换为等效的 HEX 代码的方式。

#include
int IRPIN = 2;
IRrecv recv(IRPIN);
decode_results 结果;
整数按钮 = 0;
无效设置()
{
序列号.开始(9600);
Serial.println("启用 IRin");
不可恢复。启用IRIn();
Serial.println("启用 IRin");
Initialize_streamer();
}
无效循环()
{
if (irrecv.decode(&result))
{
按钮=按钮+1;
Serial.print("值​​:");
Serial.println(result.value, HEX);
Write_streamer();
不可恢复的简历();
}
延迟(500);
}
无效 Initialize_streamer()
{
Serial.println("CLEARDATA"); //清除以前项目留下的任何数据
Serial.println("标签,十六进制代码,按钮"); //总是写LABEL,表示它是第一行
}
无效的 Write_streamer()
{
序列号.print("数据"); //总是写“DATA”来表示下面的数据
序列号.print(","); //使用“,”移动到下一列
Serial.print(result.value, HEX); //在Excel中存储日期
序列号.print(","); //使用“,”移动到下一列
串行打印(按钮);//在Excel中存储日期
序列号.print(","); //使用“,”移动到下一列
序列号.println(); //行尾移动到下一行
}

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信