IRremote库

 

简介
红外遥控硬件
红外遥控基本概念
Arduino红外遥控接收示例
常用红外协议资料
Arduino红外遥控发射示例


简介

红外线与可见光线十分相似,但是红外线的波长略高于可见光线。因此我们人眼是看不到红外线的。红外通信是以红外线作为载体来传送数据信息的通讯方式。它的特点是实现简单,应用广泛,价格低廉。红外通信主要适用于需要数据交换但信息量又不是很大,且实时性要求又不是很高的情况。如用于家用电器的遥控器等。当我们按下电视机遥控器按钮后,遥控器上的红外LED将会把遥控器控制信息发送到电视机红外遥控接收器上。

在以下的讲解中,我们首先介绍红外遥控的基本原理以及红外通讯协议的基本概念。接下来我们将通过3个示例讲解如何接收和发射红外遥控信号。

实现红外遥控功能的Arduino库有很多,不过在这里我们将使用一款十分普及的Arduino库 – IRremote。它的开发者是Ken Shirriff。如需要获得更多的该库介绍,您可以访问Ken Shirriff的个人博客

在学习如何使用IRremote库以前,请确保您做好了以下的准备工作:

  1. 下载IRremote库 – 您可通过点击这里打开我们网站的下载页面并找到这款库的下载链接。
  2. 将下载的Arduino库安装到Arduino IDE中 – 假如不知道如何操作,没关系,您可通过我们网站的“安装第三方库指南”页面找到答案。

假如您还不知道如何使用Arduino,那么在这里您可以找到Arduino开发板的相关介绍。另外我们 太极创客团队制作了《零基础入门学用Arduino教程》希望对您有所帮助。


Arduino红外遥控硬件

  • 红外LED – 发射红外遥控信号
红外LED
红外LED
  • 1838红外接收器 – 接收红外遥控信号

    VS1838红外遥控接收器
    VS1838红外遥控接收器
  • 如需要更多有关1838红外遥控接收器技术参数信息请点击这里


红外遥控基本概念

当您使用电视遥控器来控制电视时,遥控器上的红外LED会向电视机上的红外接收器发送红外控制信号。红外线是我们的眼睛无法看到的光线。红外线在我们身边随处可见。太阳,灯泡,我们的身体或者是任何可以散发热量的物质都可以释放红外线。可既然我们的身边有那么多可以释放红外线的物体,红外接收器又是如何来把红外遥控信号识别出来的呢?要回答这个问题就要首先了解信号调制的基本概念。

信号调制是信息通讯的概念。假如您已经很清楚它的原理,那么您可以跳过这一部分而直接阅读下一部分的内容。在这里我们假设您没有任何通讯知识背景,那么我们也会尽量以简单直白的方式向您解释信号调制。

每当我们按下遥控器按钮时,遥控器上的红外LED都会以固定的频率发射出一系列信号。这个频率一般是38Khz。选择38Khz是因为在自然界中很少有物体可以发射出这一频率的红外线)。因此红外接收器只会对38Khz的红外线信号做出反应,而忽略其他频率的红外线。

那么具体这个红外信号是长什么样子的呢?下图中是这个信号的模拟示意图。(请注意,这只是为了便于您的理解而制作的模拟示意图,实际信号并非是这样的。) 在下图中,那一条条黑色的竖线代表着红外LED发射出来的38Khz脉冲信号。

要解读这一系列脉冲信号,这就需要红外接收器登场了。当红外接收器接收到以上的信号以后,它会把这个信号翻译成Arduino可以识别接收的电平信号。如下图所示。

下面这幅图把红外接收器发送给Arduino的电平信号单独提出来,这样可以更加清楚地看到Arduino接收的信号是什么样子的。

Arduino在接收到这个电平信号后,会将它转换成2进制代码,如下图所示。

最后我们就通过这一系列二进制代码了解到红外遥控器所发出的指令信息是1010101010101010

以上图示是为了您能更好的理解红外遥控信号的传输原理,所以我们对红外控制信号做了相应的简化。在实际的遥控器中,红外遥控信号采用几种常用的红外通讯协议。


常用红外协议资料


Arduino红外遥控接收示例


Arduino红外遥控发射示例