Arduino学习笔记13:通过红外线控制电视

许多家用电器都支持遥控操作,其中大多数通过单片机同样可以控制。

以我手头的一个夏新机顶盒为例,要控制它首先要知道它的控制命令,这就需要首先获取遥控器的信号(参考:https://www.yubosun.com/article/aOxd75fY.html)。

记录下多个遥控按键的命令后,很容易发现规律:

ADDRESS统一都是0x8,区别只是COMMAND,开机键对应的COMMAND是0xB。

做完这些准备工作之后,开始接线:

  • Arduino单片机的GND接红外线发射头的负极(较短的那个是负极)

  • Arduino单片机的D3接红外线发射头的正极(这个D3是不可修改的,固定就是D3)

连接好之后的实物照片

2.jpg

源码:

#include void setup() {
  Serial.begin(9600);
  IrSender.begin(true);
}

uint16_t sAddress = 0x8;
uint8_t sCommand = 0x13;
uint8_t sRepeats = 0;

void loop() {
  while (Serial.available() > 0) {
    Serial.read();

    //开机
    irsend(0xB);
  }
}

void irsend(uint8_t command) {
  IrSender.sendNEC(0x8, command, sRepeats);
  Serial.println(command);
  delay(500);
}

为了测试方便,我设定上位机串口传入任何内容后发送开机命令。连接上电之后,通过串口监视器发送任意字符,就会通过红外线发射头发出开机指令。红外线属于不可见光,它正常工作的时候人眼也不会看到变化。想调试它的实际工作效果,可以用另外一个Arduino尝试获取它的信号,看看是否符合预期。一切正常的话,就通过单片机控制了电视的开机,同样的原理也可以控制其他家用电器,遥控操作是智能家居的基础。

扫码关注我的公众号