使用的材料有arduino R3,一个金属外壳红外接收头,一个红外发射头,LED指示灯若干,两个开关,电阻若干
以下为arduino的代码,相关注意事项在注释中已经写明。
我尝试过使用delayMicroseconds的方法来发射38KHz的信号,最终不被电视机识别。使用IRremote开源项目的方法更为合适。它直接改变pin 3的输出频率,从而实现模拟遥控器发射。
以下代码在海信电视上测试成功,先录制静音键,然后播放,电视机可以正确识别。
/*
使用arduino录制一个红外信号,并播放
播放部分使用了IRremote中的实现方法,直接引用了改变pin 3的输出频率部分
于2016年2月28日发布在http://blog.youkuaiyun.com/luhanglei
*/
#include <IRremote.h>
//引用Github的一个开源项目
//地址:https://github.com/shirriff/Arduino-IRremote
#define pin_IRreceiver 2 //引用Github的一个开源项目
#define pin_Playing 4 //正在播放指示灯
#define pin_Recording 5 //正在录制指示灯
#define pin_Record_Button 7 //录制按钮
#define pin_Play_Button 8 //播放按钮
boolean isRecord = false,isPlay = false;
unsigned long res[100]; //记录脉冲长度的buffer
unsigned long currenttime,t;
int state = HIGH; //红外接收头默认状态下输出高电平,所以初始化为高电平,目的是检测低电平(收到低电平是代表收到了红外信号ÿ