第八课--Microduino 红外发射与接收/zh
目的本教程将教大家如何收集电视红外遥控器的编码,通过所记录的红外编码来进行发送 设备
红外接收器 简介: 红外线接收器是一种可以接收红外信号并能独立完成从红外线接收到输出与TTL电平信号兼容的器件,体积和普通的塑封三极管差不多,适合于各种红外线遥控和红外线数据传输。 红外线接收器的特点: *小型设计 *内置专用IC *宽角度及长距离接收 *抗干扰能力强 *能抵挡环境干扰光纤 *低电压工作 *红外线接收器的结构 *对外只有三个引脚:Out、GND、Vcc。与单片机接口非常方便 1、脉冲信号输出端,直接接单片机的IO口 2、GND接系统的地线(0V) 3、Vcc接系统的电源正极(+5V)
1、在无任何外加压力及影响品质的环境下储存及使用 2、在无污染气体或海风(含盐分)的环境下储存及使用 3、在低温度环境下储存及使用 4、在规定的条件下焊接引线管脚,焊接后,请勿施加外力 5、勿清洗本产品,使用前,请先用静电带将作业员及电连接落地线 6、注意红外线接收器的接收面,沾污或磨损会影响接收效果,同时不要碰触表面。
红外发射管 简介: 红外发射管是由红外发光二级管矩组成发光体,用红外辐射效率高的材料(常用砷化镓)制成PN结,正向偏压向PN结注入电流激发红外光,其光谱功率分布为中心波长830~950nm。LED是英文Light Emitting Diode的简称,表现是正温度系数,电流越大温度越高,温度越高电流越大,LED红外灯的功率和电流大小有关,但正向电流超过最大额定值时,红外灯发射功率反而下降。 如何区别其引脚: 一般红外发射管的引脚都是一长一短,和LED二极管一样,长的引脚接正极,短的引脚接负极。 实验一红外接收:原理图程序//本例来自于红外接收模块的IRremote自带范例
/*
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
* An IR detector/demodulator must be connected to the input RECV_PIN.
* Version 0.1 July, 2009
* Copyright 2009 Ken Shirriff
* [url]http://arcfn.com[/url]
*/
#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)) {
Serial.println(results.value, HEX);//以16进制换行输出接收代码
Serial.println();//为了便于观看输出结果增加一个空行
irrecv.resume(); // 接收下一个值
}
}
调试步骤一:下载IRremote库 [1] 步骤二:把压缩包解压到Arduino IDE的libraries文件夹中 步骤三:搭建硬件电路,注意引脚接法; 步骤四:打开测试程序,编译下载 步骤五:打开串口监视器,用红外遥控器(普通电视机遥控器也是)对着红外接收头按下不同的按键; 结果可以看到不同按键的红外编码值。
实验二红外发送:原理图程序#include <IRremote.h> // 引用 IRRemote 函式库
IRsend irsend; // 定义 IRsend 物件来发射红外线讯号
// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 3; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
digitalWrite(ledPin, HIGH); // 点亮LED测试(需通过手机摄像模式观察)
delay(3000); // 等待3秒
digitalWrite(ledPin, LOW); // 结束测试
}
void loop(){
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
Serial.print("SendIR: ");
irsend.sendNEC(0x234E817, 32); //9
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}
调试步骤一:下载IRremote库 [2] 步骤二:把压缩包解压到Arduino IDE的libraries文件夹中 步骤三:搭建硬件电路,注意引脚接法; 步骤四:打开测试程序,编译下载 步骤五:按下按钮,红外发射管会发射红外编码,由于红外光肉眼看不见,但在摄像机里可以看见 结果用一个开关键来控制是否发送红外,按下开关键红外发射管将发送你设置的红外编码
视频 |