Arduino 通过红外遥控器控制LED

释放双眼,带上耳机,听听看~!

在此项目中,您将使用红外(IR)接收器和Arduino通过遥控器控制3个LED。这对于重新使用旧的遥控器或在功能上给遥控器的某些按钮很有用。

7429837_1618902700

该项目分为两个部分:

  1. 您将解码遥控器发送的红外信号
  2. 您将使用该信息通过Arduino执行任务(控制3个LED)

所需零件

要遵循此项目,您需要以下部分:

42608818_1618903152
  • Arduino UNO
  • 1x面包板
  • 1个遥控器(某宝上面买的两块钱的即可)
  • 1个红外接收器(我将使用TSOP4838)
  • 3个LED
  • 3个220欧姆电阻
  • 杜邦线

红外线(IR)接收器介绍

红外接收器是下图所示的组件。这是TSOP4838。

34453138_1618903220

红外接收器引脚:

  • 第一针:Vout
  • 第二针:GND
  • 第三针:Vcc

当您按遥控器时,它将发送红外调制信号。这些信号包含您的接收器收集的信息。

47489210_1618903238

每个按钮发送特定的信息。因此,我们可以将该信息分配给特定的按钮。

解码红外信号

在项目的此部分中,您需要解码与每个按钮关联的IR信号。

原理图

相应地将IR接收器连接到以下示意图。

55457078_1618903291

代码

要控制IR接收器,您需要  在Arduino IDE中安装IRremote库。

安装IRremote库

  1. 看文章最后面下载红外库。您的下载中应该有一个.zip文件夹
  2. 解压缩.zip文件夹,您应该得到 IRremote-master 文件夹
  3. 重命名您的文件夹 IRremote-master 到 IRremote
  4. 将 IRremote 文件夹移至Arduino IDE安装库文件夹
  5. 最后,重新打开您的Arduino IDE

将以下代码复制到Arduino IDE,然后将其上传到Arduino开发板。确保选择了正确的板卡和COM端口。

/*
 * IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
 * An IR detector/demodulator must be connected to the input RECV_PIN.
 * Version 0.1 July, 2009
 * Copyright 2009 Ken Shirriff
 * http://arcfn.com
 */

#include <IRremote.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}

void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
delay(100);
}

以9600的波特率打开串行监视器。

75073801_1618903497

在此项目中,您要控制3个LED。选择6个按钮执行以下任务:

  1. LED1 –亮
  2. LED1 –熄灭
  3. LED2 –亮
  4. LED2 –熄灭
  5. LED3 –亮
  6. LED3 –熄灭

例如,按遥控器上的数字1。您应该在串行监视器上看到一个代码。多次按相同的按钮,以确保该按钮具有正确的代码。如果您看到诸如FFFFFFFF之类的东西忽略它,那就是错误的信号。

对其他按钮执行相同的操作。

写下与每个按钮关联的代码,因为稍后您将需要该信息。

73741520_1618903532

建立最终电路

在这一部分中,您将用三个LED构建电路,这三个LED将使用遥控器进行控制。

原理图

请按照以下示意图组装所有零件。

64860927_1618903552

代码

现在,获取您在上一步中捕获的代码。您需要将代码从十六进制转换为十进制。

为此,您可以使用以下网站:  www.binaryhexconverter.com/hex-to-decimal-converter

这是我的其中一个代码的转换示例:

hexadecimal-to-decimal-1

对所有十六进制值重复该过程,然后保存 十进制 值。这些是您需要在下面的代码中替换的代码。

将以下程序下载或复制到Arduino IDE。 在案例行提供的程序中编写您自己的十进制值 ,并将其上载到Arduino板。确保选择了正确的板卡和COM端口。

程序:


示范

最后,您可以使用遥控器上的按钮分别控制每个LED。

26964076_1618903747

红外库IRremote下载:


点击下载红外库

给TA买糖
共{{data.count}}人
人已赞赏
ArduinoArduino-进阶

带有Arduino的WS2812B可寻址RGB LED灯条指南

2021-5-22 15:51:00

Arduino-进阶免费项目

使用磁簧开关和Arduino监控门

2021-5-22 21:00:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索