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

该项目分为两个部分:

1. 您将解码遥控器发送的红外信号

2. 您将使用该信息通过Arduino执行任务(控制3个LED)

所需零件

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

  • Arduino UNO
  • 1x面包板
  • 1个遥控器
  • 1个红外接收器(我将使用TSOP4838)
  • 3个LED
  • 3个220欧姆电阻
  • 跳线
  • 红外线(IR)接收器介绍

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

    红外接收器引脚:

    · 第一针:Vout

    · 第二针:GND

    · 第三针:Vcc

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

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

    解码红外信号

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

    原理图

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

    程序代码

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

    安装IRremote库

    1. 您的下载中应该有一个.zip文件夹

    2. 解压缩.zip文件夹,您应该得到 IRremote-master 文件夹

    3. 重命名您的文件夹

    4. 将 IRremote 文件夹移至Arduino IDE安装库文件夹

    5. 最后,重新打开您的Arduino IDE

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

    #include <IRremo;

    int RECV_PIN = 11;

    IRrecv irrecv(RECV_PIN);

    decode_results results;

    void setup()

    {

    Serial.begin(9600);

    irrecv.enableIRIn();

    }

    void loop() {

    if (&results)) {

    Serial.println, HEX);

    irrecv.resume();

    }

    delay(100);

    }

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

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

    1. LED1 –亮

    2. LED1 –熄灭

    3. LED2 –亮

    4. LED2 –熄灭

    5. LED3 –亮

    6. LED3 –熄灭

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

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

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

    建立最终电路

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

    原理图

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

    代码

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

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

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

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

    #include <IRremo;

    int bluePin = 10;

    int greenPin = 9;

    int yellowPin = 8;

    IRrecv irrecv(IR_Recv);

    decode_results results;

    void setup(){

    Serial.begin(9600);

    irrecv.enableIRIn();

    pinMode(bluePin, OUTPUT);

    pinMode(greenPin, OUTPUT);

    pinMode(yellowPin, OUTPUT);

    }

    void loop(){

    long int decCode = re;

    Serial.println);

    switch ){

    case 551520375:

    digitalWrite(bluePin, HIGH);

    break;

    case 551495895:

    digitalWrite(bluePin, LOW);

    break;

    case 551504055:

    digitalWrite(greenPin, HIGH);

    break;

    case 551528535:

    digitalWrite(greenPin, LOW);

    break;

    case 551536695:

    digitalWrite(yellowPin, HIGH);

    break;

    case 551512215:

    digitalWrite(yellowPin, LOW);

    break;

    }

    irrecv.resume();

    }

    delay(10);

    }

    示范视频

    视频说明示例

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

    写到最后

    这是一个学习IR接收器的好项目。您可以用它做很多事情。

    例如,您可以将这些LED替换为继电器以控制家用电器。

    这一点特别有用,因为某些遥控器上有一堆您从未使用过的按钮。那么,为什么不使用它们来做一些有用的事情呢?

    希望本教程对您有所帮助。

    也希望喜欢电子产品的朋友分享这篇文章!喜欢的朋友记得关注,我会分享更多的项目示例。

    相关推荐