欢迎光临
我们一直在努力

Arduino解码红外遥控器控制家电产品

20180407111525_21

==概述==

    近期看到一些书上,有对红外遥控的介绍,各大论坛也有很多对红外遥控器的介绍,但是发现一个问题是:大部分都很难控制家里的空调或者彩电或者因为作者的写帖子或者教程的习惯,导致有些操作萌新还不是很清楚。今天我们就来整理一下,尝试一个红外发射模块控制家用空调。

本次是以小实验的方式写的,对于模块不了解的,可以先看一下我们的模块教程,了解掌握模块使用方法后,再尝试本小实验。

(对于非本店模块不提供技术支持!如果无法做通,可能是不兼容导致,请自行尝试)。

所需材料:

整套材料:点我购买

空调遥控器:家用空调的遥控器(用于解码,我的是志高空调)。


==接线图==

==例子程序1(接收部分)==

//源码请参考《程序设计基础》书。
#include <IRremote.h>

int RECV_PIN = 11;  //红外接收模块连接在11脚
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
   Serial.begin(9600);
   irrecv.enableIRIn();
}

void loop()
{
   if (irrecv.decode(&results))
   {
     dump(&results);
     irrecv.resume();
   }
}

void dump(decode_results *results)
{
   int count = results->rawlen;
   Serial.print("Raw (");
   Serial.print(count);
   Serial.print("): ");

  for (int i = 0; i < count; i++)
   {
     Serial.print(results->rawbuf[i]*USECPERTICK);
     Serial.print(",");
   }
   Serial.println();
}

==例子程序2(发射部分)==

//源码请参考《程序设计基础》书。
#include <IRremote.h>//红外发射模块接D3引脚

IRsend irsend;
unsigned int key_on[198]={6100,7300,550,550,550,550,550,600,550,550,550,600,550,550,550,600,500,600,550,550,550,550,550,600,500,600,500,650,500,600,550,550,550,600,550,550,550,550,550,600,550,550,550,550,600,550,550,550,550,600,500,600,500,600,550,550,550,600,550,550,550,1650,500,600,550,550,550,600,550,550,550,600,550,550,550,550,600,550,550,550,550,600,500,600,500,600,550,550,550,600,550,550,550,600,550,550,550,550,600,550,550,550,550,600,500,600,500,600,550,550,600,550,550,550,550,600,550,1600,550,550,600,1600,500,650,500,600,550,550,550,550,600,550,550,550,550,600,550,550,550,550,550,600,500,600,550,1650,500,600,500,650,500,1650,550,550,550,600,500,600,550,550,550,1650,500,1650,550,600,500,1650,550,600,550,550,550,1600,600,550,550,1600,550,1650,500,1650,600,550,500,600,500,1700,550,550,550,1600,600,1600,550,7350,500,};
unsigned int key_off[198]={6050,7350,550,550,550,550,550,600,500,600,550,600,500,600,550,550,550,600,500,600,500,600,550,600,500,600,550,550,550,600,500,600,550,600,500,600,550,550,550,600,500,600,550,550,550,600,500,600,550,550,550,600,550,550,550,600,500,600,500,650,500,1650,550,550,500,600,550,600,550,550,550,600,500,600,550,550,550,600,500,600,550,600,500,600,500,600,550,550,550,600,500,600,550,600,500,600,550,550,550,600,500,600,500,600,550,600,550,550,550,550,550,600,550,550,550,600,500,600,550,550,550,1650,550,550,550,600,500,600,500,600,550,600,500,600,550,550,550,600,500,600,550,600,500,600,500,1650,550,600,500,600,500,1700,500,600,550,550,550,600,500,600,550,1650,500,1650,550,600,500,1650,550,550,550,600,500,1650,550,600,500,1650,550,1600,600,550,500,600,550,600,500,1650,550,600,500,1650,550,1650,500,7350,550,
};//编码部分
void setup(){}

void loop()
{
   irsend.sendRaw(key_on,198,38);//发送原始编码数据.
   delay(5000);
   irsend.sendRaw(key_off,198,38);
   delay(5000);
}

==操作步骤==

首先,将红外接收模块与Arduino连接(接D11引脚),上传接收到Arduino上,上传成功后打开串口监视器,随后拿出空调遥控器,对准红外接收头,看一下遥控器上的电源键(开),再次按一下遥控器上的电源键(关)。

009

然后将红外接收模块换成红外发射模块连接到Arduino上(D3引脚),上传发射程序到Arduino上,上传成功后打开串口监视器,随后接个DC头供电,使其成为一个DIY遥控器。接下来做的就是对准空调就好了。

20180407111525

==实验效果==

本示例仅对大部分空调进行测试,格力空调、海尔空调、伊莱克斯空调,比较高级,编码方式很复杂。可自行尝试。

==必看(库文件的修改)==

因为现在大部分的新款空调或者电视机,加长了编码,那么对于IRremote.h来说就有些吃力,所以我们要进行库文件的修改(本页提供的库文件已修改好):

①:找到IRremoteInt.h。

②:image

修改RAW值的大小,防止溢出。

③:image

修改GAP范围,50000

④:image

修改库文件的定义。

==相关下载==

库文件:https://pan.baidu.com/s/1wcVbhIIQbPVcZJgtoOVwmw

未经允许不得转载:Arduino-Maker » Arduino解码红外遥控器控制家电产品

支付宝扫码打赏 微信打赏

原创文章,若帮到您,欢迎打赏

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

线上商城

中贝斯特创客空间蘑菇云创客教育