将红外遥控器添加到您的项目非常容易。在本教程中,我将向您展示如何为您的下一个 Arduino 项目轻松添加红外遥控器和红外接收器。我正在使用免费的 Arduino 模拟器来演示 IR 接收器和 IR 远程项目。
#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条评论
快来发表一下你的评论吧 !