一、目标:使用microduino套件实现红外线的发送与接收
二、材料:(1)模块:Microduino Core/Core+ (核心板),Microduino-USBTTL(下载程序)
(2)传感器:红外线发射器,红外线接收器
(3)其它设备:Micro-USB线,面包板,导线
- 红外线发射器使用说明:
目前的红外发射器有两种规格,两脚的(左图)和三脚的(右图)
两脚的结构和普通LED管相似,长引脚接高电平,短引脚接低电平
三脚的连接情况分别是:5V,OUT,GND,其中OUT是指定的输出端口。它与红外接收管的引脚结构类似。
- 面包板使用说明:如下图所示,上下两行线是分别连通的,中间的纵线是分别连通的。
三、红外线发射原理:
红外发射器与普通LED类似,只需要给它分配一个电流输出引脚,连通电路就可以了。代码也非常简单,在Arduino IDE中新建项目,写入:
void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(5); digitalWrite(13, LOW); }
即在setup中定义13号为输出引脚,然后循环执行loop中的13号引脚高低电流交替,使得红外发射管时而导通时而阻塞,产生红外线闪烁效果。
然后在“工具”中选择对应型号的开发板和处理器型号(本例使用的是Microduino/mCookie-device, Microduino/mCookie-core 16M),再编译程序。
接着连接电路(两脚的只需将长脚连接自己定义的输出端口,短脚接GND):
最后,你可以通过电脑的相机观察,将灯管正对摄像头,如果看见紫色的红外线,就说明你成功了。效果如下图所示:
四、红外线接收原理及使用
首先,再Ardunio IDE中加载IRremote库:
#include <IRremote.h>
然后,定义红外接收器的输出管脚,并将其使能:
IRrecv irrecv(11);
irrecv.enableIRIn();
接着定义一个变量用于判断是否接收到红外线:
decode_results results;
如果接收到红外线:
if(irrecv.decode(&results)){
//在此执行你想做的逻辑
irrecv.resume();
}
* 示例代码(为了看见直观的效果,我连接了一个LED,当接收到红外线时,LED亮起):
#include <IRremote.h> IRrecv irrecv(11); decode_results results; void setup() { pinMode(3, OUTPUT); /* 连接LED的引脚号 */ irrecv.enableIRIn(); } void loop() { digitalWrite(3, LOW); if(irrecv.decode(&results)){ digitalWrite(3, HIGH); irrecv.resume(); delay(5); } }
效果图(左图为未接收红外线时,右图为接收到遥控器发射的红外线):