所有关于电路
项目

用电视遥控器控制Arduino

2015年11月14日经过Jason Poel Smith.

今晚电视上没有什么?使用任何红外遥控器控制Arduino,包括您用来命令电视的人。

介绍

控制Arduino的一种有趣方式是电视遥控器。在这个项目中,我将向您展示如何使用标准红外遥控器上的任何按钮来激活Arduino上的功能。

需要材料

Arduino微控制器

38 kHz红外接收器模块

瞬间开关

100 kohm电阻

2 × 100欧姆电阻

绿色的领导

红色LED

继电器(5V 20 mA)

二极管

面包板或印刷电路板

跳线电线

下载并安装Irremote库

该项目使用由Ken Shirofiff开发的多协议红外远程库。该库允许Arduino两者都解码并传输在大多数商业遥控系统中使用的红外信号。我强烈推荐阅读他的教程关于如何使用库。

你可以通过去他的副本GitHub页面并单击页面右侧的“下载ZIP”按钮。

接下来提取所有文件。将解压后的“IRRemote”文件夹移到Arduino库目录下。在Arduino软件的最新版本中,库目录中已经有一个名为“RobotIRremote”的文件夹。它有一个子文件夹,也叫“IRRemote”。如果两个文件夹都在库中,Arduino将不知道引用哪个文件夹,它将生成一个错误。解决这个问题最简单的方法是简单地删除RobotIRremote文件夹。如果您不想删除它,您可以进入子文件夹并重命名所有引起冲突的文件夹。

连接红外接收器模块

红外接收器模块有三个引脚。如下图所示,右销连接到5V。中心针连接到GND。左引脚是输出引脚,并连接到Aduino设置到输入模式的数字引脚之一。根据您的部件制造商,此引脚配置可能不同。所以在挂钩之前,始终咨询制造商数据表。这是您需要的唯一需要与Arduino接收红外信号。完成这些连接后,您已准备好设置代码。

Arduino代码

使用此代码,Arduino将不断监控红外接收模块的输出。当它检测到来自远程的信号时,它将信号解码并将其转换为数值。此值存储在一个变量中,可用于激活您希望添加到代码中的任何函数。使用Serial Monitor工具,您可以看到远程上每个按钮生成的数字值。一旦您知道了这些值,您所要做的就是将它们添加到您的代码中,并设置条件语句,当远程上按下这个按钮时,这些语句将执行所需的操作。在编写代码时,请记住,每当您按下一个按钮时,许多远程将多次发送相同的代码或一系列代码。

ir_simple_example_code.zip.zip.

示例项目

为了更好地说明如何使用Arduino项目使用此技术,这是一个例子。我设置了我的Arduino,每当检测到某个信号时激活继电器。这将允许您与遥控器打开和关闭连接的设备。我还添加了一个“程序”按钮,允许我在系统仍在运行时更改集合远程代码。

首先将IR接收模块连接到5V、GND和pin12。然后在GND和引脚10之间连接一个100 ω的电阻。在引脚10和5V之间连接一个瞬间开关。一个LED和100欧姆的串联电阻连接到引脚8和引脚7。最后是接力赛和反激二极管数字引脚4与地连接。一般Arduino的输出引脚输出不应超过20ma。所以如果你的继电器需要超过20ma,那么你应该用一个功率晶体管驱动它。

我将继电器和二极管安装在单独的电路板上,并在绝缘项目外壳内部封闭。这让我安全地控制AC电器。

接下来上传附加的代码。

当按下按钮时,第一个LED将打开以指示系统处于“编程模式”。系统从远程接收的下一个信号将被存储为激活码。所以在遥控器上选择一个按钮,你想要使用,然后按它。当系统接收到代码时,第二个LED将打开指示它们的代码已设置。现在只要在遥控器上按此按钮,中继将打开或关闭。

需要注意的是,如果Arduino关闭,程序功能会重置。如果你想要程序函数是永久的,你应该把值写进代码。

Arduino_Infrared_Remote_Control.zip

自己试试这个项目吧!得到bom。

2评论
  • Rayregula 2016年6月03日

    惊人的!

    喜欢。 回复
  • chetan_jadhav. 2017年3月03日

    你好,
    我刚检查了代码,发现是串行接收。
    所以如果我想用8051而不是Arduino,我可以用同样的方法吗?我的意思是通过串行接收引脚(RXD)接收数据并检查它。
    电视遥控器有不同的协议,例如。NEC,RC5,所以在给定系统中考虑了哪种协议。

    喜欢。 回复