当您使用电视遥控器来控制电视时,遥控器上的红外LED会向电视机上的红外接收器发送红外控制信号。红外线是我们的眼睛无法看到的光线。红外线在我们身边随处可见。太阳,灯泡,我们的身体或者是任何可以散发热量的物质都可以释放红外线。可既然我们的身边有那么多可以释放红外线的物体,红外接收器又是如何来把红外遥控信号识别出来的呢?要回答这个问题就要首先了解信号调制的基本概念。
信号调制是信息通讯的概念。假如您已经很清楚它的原理,那么您可以跳过这一部分而直接阅读下一部分的内容。在这里我们假设您没有任何通讯知识背景,那么我们也会尽量以简单直白的方式向您解释信号调制。
每当我们按下遥控器按钮时,遥控器上的红外LED都会以固定的频率****出一系列信号。这个频率一般是38Khz。选择38Khz是因为在自然界中很少有物体可以****出这一频率的红外线)。因此红外接收器只会对38Khz的红外线信号做出反应,而忽略其他频率的红外线。
那么具体这个红外信号是长什么样子的呢?下图中是这个信号的模拟示意图。(请注意,这只是为了便于您的理解而制作的模拟示意图,实际信号并非是这样的。) 在下图中,那一条条黑色的竖线代表着红外LED****出来的38Khz脉冲信号。
要解读这一系列脉冲信号,这就需要红外接收器登场了。当红外接收器接收到以上的信号以后,它会把这个信号翻译成Arduino可以识别接收的电平信号。如下图所示。
下面这幅图把红外接收器发送给Arduino的电平信号单独提出来,这样可以更加清楚地看到Arduino接收的信号是什么样子的。
Arduino在接收到这个电平信号后,会将它转换成2进制代码,如下图所示。
最后我们就通过这一系列二进制代码了解到红外遥控器所发出的指令信息是1010101010101010。
以上图示是为了您能更好的理解红外遥控信号的传输原理,所以我们对红外控制信号做了相应的简化。在实际的遥控器中,红外遥控信号采用几种常用的红外通讯协议。