×

Arduino项目轻松添加红外遥控器和红外接收器

消耗积分:0 | 格式:zip | 大小:0.07 MB | 2022-11-03

陈伟

分享资料个

描述

介绍

将红外遥控器添加到您的项目非常容易。在本教程中,我将向您展示如何为您的下一个 Arduino 项目轻松添加红外遥控器和红外接收器。我正在使用免费的 Arduino 模拟器来演示 IR 接收器和 IR 远程项目。

所需组件

  • 也可以使用Arduino Nano(Arduino UNO)
  • 红外接收器
  • 红外发射器(红外遥控)
  • LCD(可选,显示按键信息)

IR接收器、IR遥控器和Arduino的连接图/接线图

pYYBAGNiFTyAAYaXAAD1dV0NZRk856.png
红外接收器、红外遥控器和连接到 Arduino Nano 的 LCD
 

Arduino代码

#include 
#include 
#define PIN_RECEIVER 2 // Signal Pin of IR receiver
IRrecv receiver(PIN_RECEIVER);
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
void setup()
{
lcd.begin(16, 2);
lcd.print("");
receiver.enableIRIn(); // Start the receiver
}
void loop()
{
// Checks received an IR signal
if (receiver.decode()) {
translateIR();
receiver.resume(); // Receive the next value
}
}
void lcdPrint(char* text)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("button pressed:");
lcd.setCursor(0, 1);
lcd.print(text);
lcd.print(" code: ");
lcd.print(receiver.decodedIRData.command);
}
void translateIR()
{
// Takes command based on IR code received
switch (receiver.decodedIRData.command) {
case 162:
lcdPrint("POWER");
break;
case 226:
lcdPrint("MENU");
break;
case 34:
lcdPrint("TEST");
break;
case 2:
lcdPrint("PLUS");
break;
case 194:
lcdPrint("BACK");
break;
case 224:
lcdPrint("PREV.");
break;
case 168:
lcdPrint("PLAY");
break;
case 144:
lcdPrint("NEXT");
break;
case 104:
lcdPrint("num: 0");
break;
case 152:
lcdPrint("MINUS");
break;
case 176:
lcdPrint("key: C");
break;
case 48:
lcdPrint("num: 1");
break;
case 24:
lcdPrint("num: 2");
break;
case 122:
lcdPrint("num: 3");
break;
case 16:
lcdPrint("num: 4");
break;
case 56:
lcdPrint("num: 5");
break;
case 90:
lcdPrint("num: 6");
break;
case 66:
lcdPrint("num: 7");
break;
case 74:
lcdPrint("num: 8");
break;
case 82:
lcdPrint("num: 9");
break;
default:
lcd.clear();
lcd.print(receiver.decodedIRData.command);
lcd.print(" other button");
}
}

快速代码演练

#include <IRremote.h>
#include <LiquidCrystal.h>
#define PIN_RECEIVER 2 // Signal Pin of IR receiver
IRrecv receiver(PIN_RECEIVER);
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);

IRrecv 创建接收器类型的对象。它将引脚号作为输入参数。LCD 也被初始化为 4 位数据模式。我们还包括 IR 和 LCD 的头文件

void setup()
{
lcd.begin(16, 2);
lcd.print("");
receiver.enableIRIn(); // Start the receiver
}

在设置函数中,我们初始化 CLD 并为用户打印文本。我们还启用了 IR 接收。

void translateIR()

TranslateIR 函数获取解码后的数据并将其映射到 IR 遥控器的相应按钮。您可以在此处在您的自定义项目中添加相应的操作。例如,打开灯、电机或关闭风扇等)

void lcdPrint(char* text)

这用于在 LCD 上打印解码信息

红外遥控器基础知识

支持和任何反馈?

如有任何建议或意见,请跳到Discord 频道您可以访问Arduino 模拟器主页

在Facebook Wokwi Group上分享您有趣的项目并浏览来自其他开发人员和制造商的几个好奇项目!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !