查看“第八课--Microduino 红外发射与接收/zh”的源代码
←
第八课--Microduino 红外发射与接收/zh
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{| style="width: 800px;" |- | ==目的== 本教程将教大家如何收集电视红外遥控器的编码,通过所记录的红外编码来进行发送 ==设备== '''[[Microduino-Core]]''' '''[[Microduino-FT232R]]''' *其他硬件设备 **面包板跳线 一盒 **面包板 一块 **红外接收头 **红外发射管(可从家里的旧遥控器中找到) **USB数据连接线 一根 '''红外接收器''' [[File:第八课-红外接收器.jpg|600px|center|thumb]] '''简介:''' 红外线接收器是一种可以接收红外信号并能独立完成从红外线接收到输出与TTL电平信号兼容的器件,体积和普通的塑封三极管差不多,适合于各种红外线遥控和红外线数据传输。 '''红外线接收器的特点:''' *小型设计 *内置专用IC *宽角度及长距离接收 *抗干扰能力强 *能抵挡环境干扰光纤 *低电压工作 *红外线接收器的结构 *对外只有三个引脚:Out、GND、Vcc。与单片机接口非常方便 1、脉冲信号输出端,直接接单片机的IO口 2、GND接系统的地线(0V) 3、Vcc接系统的电源正极(+5V) '''注意事项:''' 1、在无任何外加压力及影响品质的环境下储存及使用 2、在无污染气体或海风(含盐分)的环境下储存及使用 3、在低温度环境下储存及使用 4、在规定的条件下焊接引线管脚,焊接后,请勿施加外力 5、勿清洗本产品,使用前,请先用静电带将作业员及电连接落地线 6、注意红外线接收器的接收面,沾污或磨损会影响接收效果,同时不要碰触表面。 红外发射管 [[File:第八课-红外发射管.jpg|600px|center|thumb]] '''简介:''' 红外发射管是由红外发光二级管矩组成发光体,用红外辐射效率高的材料(常用砷化镓)制成PN结,正向偏压向PN结注入电流激发红外光,其光谱功率分布为中心波长830~950nm。LED是英文Light Emitting Diode的简称,表现是正温度系数,电流越大温度越高,温度越高电流越大,LED红外灯的功率和电流大小有关,但正向电流超过最大额定值时,红外灯发射功率反而下降。 '''如何区别其引脚:''' 一般红外发射管的引脚都是一长一短,和LED二极管一样,长的引脚接正极,短的引脚接负极。 == 实验一红外接收: == ==原理图== [[File:第八课-Microduino红外接收原理图.jpg|600px|center|thumb]] ==程序== <source lang="cpp"> //本例来自于红外接收模块的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(); // 接收下一个值 } } </source> ==调试== 步骤一:下载IRremote库 [http://www.geek-workshop.com/forum.php?mod=attachment&aid=ODk2N3wyYmQ0YTJlYnwxMzkxODcwMDU5fDI4MTYzfDI0MzM=] 步骤二:把压缩包解压到Arduino IDE的libraries文件夹中 步骤三:搭建硬件电路,注意引脚接法; [[File:第八课-Microduino红外接收电路.jpg|600px|center|thumb]] 步骤四:打开测试程序,编译下载 步骤五:打开串口监视器,用红外遥控器(普通电视机遥控器也是)对着红外接收头按下不同的按键; ==结果== 可以看到不同按键的红外编码值。 [[File:第八课-接收编码值.jpg|600px|center|thumb]] == 实验二红外发送: == ==原理图== [[File:第八课-Microduino红外发送原理图.jpg|600px|center|thumb]] ==程序== <source lang="cpp"> #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); } } </source> ==调试== 步骤一:下载IRremote库 [http://www.geek-workshop.com/forum.php?mod=attachment&aid=ODk2N3wyYmQ0YTJlYnwxMzkxODcwMDU5fDI4MTYzfDI0MzM=] 步骤二:把压缩包解压到Arduino IDE的libraries文件夹中 步骤三:搭建硬件电路,注意引脚接法; [[File:第八课-Microduino红外发送电路.jpg|600px|center|thumb]] 步骤四:打开测试程序,编译下载 步骤五:按下按钮,红外发射管会发射红外编码,由于红外光肉眼看不见,但在摄像机里可以看见 ==结果== 用一个开关键来控制是否发送红外,按下开关键红外发射管将发送你设置的红外编码 ==视频== http://v.youku.com/v_show/id_XNjc1NjQ1Nzg0.html
该页面使用的模板:
模板:Language
(
查看源代码
)
模板:Nmbox
(
查看源代码
)
返回至
第八课--Microduino 红外发射与接收/zh
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息