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

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接收它们。
电路原理图
使用 arduino的 ir 远程解码器的电路图如下:
连接非常简单,因为 ir 接收器传感器只有三个引脚:vs、gnd 和 data。将 ir 接收器的 vs 和 gnd 引脚连接到 arduino 的 3.3v gnd 引脚,将数据引脚连接到 arduino 的数字引脚 2。
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 上禁用了宏,那么您将看到一个安全块,如下图所示:
单击选项-》启用内容-》完成-》确定以启用宏。之后,您将看到以下屏幕:
现在选择波特率“9600”和你的arduino连接的端口,然后点击连接开始数据流。您的值应该开始被记录,如下图所示。
这就是如何轻松构建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(); //行尾移动到下一行
}

迅远高性能一体化RFID读写器F5012
盘点主流SATA连接器,SATA连接小型化融入更多硬件体系结构成出路
鉴于预期需求放缓,三星电子明年计划减少内存芯片产量增幅
轻量级数据库有哪些
锂离子电池的功率测试以及计算!
构建Arduino IR远程解码器的教程
如何通过explain来验证sql的执行顺序
模拟信号处理/调节的作用及设计要求
腾讯黑鲨游戏手机3正式发布 售价3499元起
比尔 盖茨指出电动半挂卡车和电动喷飞机很可能永远不会出现
Data flash在CS+的应用
模拟与数字世界的翻译官——模数转换器(ADC)
华为四曲面屏概念手机曝光:亮瞎你的眼!四曲面屏+快充技术竟然是荣耀?
央视曝光小米5200毫安移动电源容量偏差率超过50%,是在消费民众的无知
联发科推出全球首款支持异构多任务技术单芯片MT8135
光伏集中式逆变器与组串式逆变器优缺点和适应场景
数博展览“朋友圈”| 中安科技集团:首次亮相数博会 全面展示数字化成果
骁龙801采用28纳米HPM制程,台积电或成最大受惠者
π型滤波电路的优缺点 π型滤波电路原理图详解
霍尔效应的修正方法分析(图)