microduino实现红外线发送与接收详解
一、目标:使用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函数中的高低电平交替,使得红外发射管时而导通时而阻塞,产生红外线闪烁效果。
然后在“工具”中选择对应型号的开发板和处理器型号(本例使用的是Microduino/mCookie-device, Microduino/mCookie-core 16M),再编译程序。
接着连接电路(两脚的只需将长脚连接13号引脚,短脚接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);
}
}
效果图(左图为未接收红外线时,右图为接收到遥控器发射的红外线):