文档库 最新最全的文档下载
当前位置:文档库 › Arduino学习笔记⑧ 红外通信

Arduino学习笔记⑧ 红外通信

Arduino学习笔记⑧ 红外通信
Arduino学习笔记⑧ 红外通信

1.前言

红外通信是一种利用红外光编码进行数据传输的无线通信方式,在目前来说是使用非常广泛的。生活中常见电视遥控器,空调遥控器,DVD遥控器(现在估计是老古董了),均使用红外线遥控。使用红外线遥控,主要有一体化红外接收头和红外遥控器。

1.1 一体化红外接收头

一体化接收头内部集成了红外接收电路。它可以接收红外信号并还原发射端的波形信号。通常使用的一体化接收头都是38KHz的红外信号。

1.2 红外遥控器

实验中采取以下遥控器

每个按键都有各自的编码,按下按键后,就会发送对应编码的红外波。大多使用NEC编码。

要想使用红外遥控功能,我们使用第三方红外遥控库——IRremote(如果是8266请使用IRremoteESP8266库)。

2.常用方法

下面介绍一下IRremote类库 1)IRrecv类用于接收红外信号并对其解码。在使用前需要实例化一个该类对象。

IRrecv(recvpin)构造函数 recvpin为连接到接收头的引脚

enableIRIn()初始化红外解码

decode() 检查是否接收到编码

resume() 接收下一个编码

3.实验

实验内容:根据遥控器输入的红外信号,显示对应的符号;

实验代码:

/**

* @Desc 测试红外通信

* @author 单片机菜鸟

* @Date 2016/12/29

*

*/

#include

#define MAX 22

int RECV_PIN = 7; //定义红外接收模块输出口接arduino数字引脚11

IRrecv irrecv(RECV_PIN);

decode_results results;

//Car mp3编码

unsigned long rremote_code[MAX] = {

0xFFA25D,0xFF629D,0xFFE21D,//CH- CH CH+

0xFF22DD,0xFF02FD,0xFFC23D,//PREV NEXT PLAY

0xFFE01F,0xFFA857,0xFF906F,//VOL- VOL+ EQ

0xFF6897,0xFF9867,0xFFB04F,// 0 100+ 200+

0xFF30CF,0xFF18E7,0xFF7A85,// 1 2 3

0xFF10EF,0xFF38C7,0xFF5AA5,// 4 5 6

0xFF42BD,0xFF4AB5,0xFF52AD, // 7 8 9

0xFFFFFFFF//长按

};

//Car mp3对应的字符串

String rremote_string[MAX] = {

"CH-","CH","CH+",

"PREV","NEXT","PLAY/PAUSE",

"VOL-","VOL+","EQ",

"0","100+","200+",

"1","2","3",

"4","5","6",

"7","8","9",

"longPress"

};

void setup()

{

Serial.begin(9600);

irrecv.enableIRIn(); //初始化红外遥控

}

void loop() {

if (irrecv.decode(&results)) {

//打印字符串

String codeString = getRremoteString(results.value);

if(codeString.length()!=0)

Serial.println(codeString);

irrecv.resume(); // 接收下一个值

}

}

/**

* 解析红外编码并返回对应的字符串

*/

String getRremoteString(unsigned long code){

String rremotestring = "";

int i = 0;

for(i = 0;i

if(code == rremote_code){

break;

}

}

//过滤掉长按

if(i==MAX-1) return"";

else return rremote_string;

}

实验结果:

4.总结

通过使用这个类库我们可以解析到具体的键码,这样我们就可以基于这个去做一些我们想做的红外遥控功能(各位可以看看我写的蓝牙七彩灯帖子)。

Arduino 语法手册函数部分

Arduino 语法手册函数部分 摘自:函数部分 数字 I/O pinMode() 描述 将指定的引脚配置成输出或输入。详情请见digital pins。 语法 pinMode(pin, mode) 参数 pin:要设置模式的引脚 mode:INPUT或OUTPUT 返回 无 例子 ledPin = 13 语法 noTone(pin) 参数 pin: 所要停止产生声音的引脚 返回 无 shiftOut() shiftOut() 描述 将一个数据的一个字节一位一位的移出。从最高有效位(最左边)或最低有效位(最右边)开始。依次向数据脚写入每一位,之后时钟脚被拉高或拉低,指示刚才的数据有效。 注意:如果你所连接的设备时钟类型为上升沿,你要确定在调用shiftOut()前时钟脚为低电平,如调用digitalWrite(clockPin, LOW)。 注意:这是一个软件实现;Arduino提供了一个硬件实现的SPI库,它速度更快但只在特定脚有效。 语法 shiftOut(dataPin, clockPin, bitOrder, value) 参数 dataPin:输出每一位数据的引脚(int)

clockPin:时钟脚,当dataPin有值时此引脚电平变化(int) bitOrder:输出位的顺序,最高位优先或最低位优先 value: 要移位输出的数据(byte) 返回 无 shiftIn() 描述 将一个数据的一个字节一位一位的移入。从最高有效位(最左边)或最低有效位(最右边)开始。对于每个位,先拉高时钟电平,再从数据传输线中读取一位,再将时钟线拉低。 注意:这是一个软件实现;Arduino提供了一个硬件实现的SPI库,它速度更快但只在特定脚有效。 语法 shiftIn(dataPin,clockPin,bitOrder) 参数 dataPin:输出每一位数据的引脚(int) clockPin:时钟脚,当dataPin有值时此引脚电平变化(int) bitOrder:输出位的顺序,最高位优先或最低位优先 返回 读取的值(byte) pulseIn() 描述 读取一个引脚的脉冲(HIGH或LOW)。例如,如果value是HIGH,pulseIn()会等待引脚变为HIGH,开始计时,再等待引脚变为LOW并停止计时。返回脉冲的长度,单位微秒。如果在指定的时间内无脉冲函数返回。 此函数的计时功能由经验决定,长时间的脉冲计时可能会出错。计时范围从10微秒至3分钟。(1秒=1000毫秒=1000000微秒) 语法 pulseIn(pin, value) pulseIn(pin, value, timeout) 参数 pin:你要进行脉冲计时的引脚号(int)。 value:要读取的脉冲类型,HIGH或LOW(int)。 timeout (可选):指定脉冲计数的等待时间,单位为微秒,默认值是1秒(unsigned long)返回 脉冲长度(微秒),如果等待超时返回0(unsigned long) 例子 int pin = 7; unsigned long duration;

红外避障小车讲解

目的: 本毕业设计是红外蔽障小车的设计,通过设计使学生系统的熟悉和掌握单片机控制系统设计方面的内容体系、开发流程和程序设计,培养学生具有综合运用所学的理论知识去开拓创新及解决实际问题的能力。培养学生掌握设计题的思想和方法,树立严肃认真的工作作风、培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。同时是为了掌握电路设计的方法和技巧。如何将学习到的理论知识运用到实际当中去,怎样能够活学活用,深入的了解电子元器件的使用方法,了解各种元器件的基本用途和方法,能够灵活敏捷的判断电路中出现的故障,学会独立设计电路,积累更多的设计经验,加强焊接能力和技巧,完成基本的要求。并能完美的完成这次实训。 目录 一、任务书...............................P1 二、引言..............................P2 二、要求与发挥...........................P4 三、设计摘要.............................P6 四、模块方案比较.......................P7 1.避障模块 2.驱动模块

3.控制模块 五、程序设计.........................P9 1.程序流程图 2.程序编写 六、工作原理.........................P13 七、结论............................P13 八、参考文献........................P14 九、毕业设计(论文)成绩评定表.....P15 任务: 利用单片机、红外实现避障,要求具有下述功能: 1.小车前进可以避开(前、左、右)20cm的障碍物; 2.实现下车前进时,不碰障碍物; 3.具有声音播报功能。 引言 随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器、并行和串行接口、看门狗、前置放大器、A/D转换器、D/A转换器等多种电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。这种技术促使机器人技术也有了突飞猛进的发展,目前人

基于51单片机的红外遥控小车设计和制作

基于51单片机的红外遥控小车设计和制作 论文关键字:AT89C51单片机直流电机红外线遥控循迹 L298 论文摘要:本文介绍一款红外线遥控小车,以AT89S51单片机为核心控制器,用L289驱动直流电机工作,控制小车的运行。本款小车具有红外线遥控手动驾驶、自动驾驶、寻迹前进等功能。本系统采用模块化设计,软件用C语言编写。 一、设计任务和要求 以AT98C51单片机为核心,制作一款红外遥控小车,小车具有自动驾驶,手动驾驶和循迹前进等功能。自动驾驶时,前进过程中可以避障。手动驾驶时,遥控控制小车前进、后退、左转、右转、加速等操作。寻迹前进时小车还可以按照预先设计好的轨迹前进。 二、系统组成及工作原理 本系统由硬件和软件两部分组成。硬件部分主要完成红外编码信号的发射和接受、障碍物检测、轨迹检测、直流电机运行的发生等功能。软件主要完成信号的检测和处理、设备的驱动及控制等功能。AT89S51单片机查询红外信号并解码,查询各个检测部分输入的信号,并进行相应处理,包括电机的正反转,判断是否遇到障碍物,判断是否小车其那金中有出轨等。系统结构框图如图1所示。 图1 系统结构框图 三、主要硬件电路 1、遥控发射器电路 该电路的主要控制器件为遥控器芯片HT6221,如图2所示。HT6221将红外码调制成38KHZ的脉冲信号通过红外发射二极管发出红外编码。图2中D1是红外发射二极管,D2是按键指示灯,当有按键按下时D2点亮。 HT6221的编码规则是:当一个键按下超过36ms,振荡器使芯片激活,如果这个按键按下且延迟大约108ms,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9~18ms),8位数据码(9~18ms)和这8位数据码的反码(9~18ms)组成,如果按键按下超过108ms仍未松开,接下来发射的代码将仅由起始码(9ms)和结束码(2.5ms)组成。按照上图的接法,K1~K8的数据码分别为:0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07。 图2 遥控发射器电路原理图 2、红外线接收模块 该模块使用一体化红外接收头1838,其电路如图3所示。瓷片电容104为去耦电容,DOUT即是解调信号的输出端,直接与单片机的P3.2口相连。有红外编码信号发射时,输出为检波整形后的方波信号,并直接提供给单片机。 图3 红外接收原理图 3、电机驱动模块 该模块主要由芯片L298控制两个电机的正反转,以及改变电机的转速,其电路如图4所示。L298 芯片是一种高压、大电流双全桥式驱动器。其中SENSEA、SENSEB分别为两个H桥的电流反馈脚,不用时可以直接接地。VCC,VS是接电源引脚,电压范围分别是4.5~7V、2.5~46V,设计中VCC端与单片机电源端共用5V工作电源,VS端独立接9V电

万能学习型红外遥控器制作(毕业设计)

学号 密级 ××大学本科毕业论文 万能学习型红外遥控器设计 院(系)名称:×××× 专业名称:×××× 学生姓名:×××× 指导教师:×××× 二○○九年五月

BACHELOR'S DEGREE THESIS OF ×××× UNIVERSITY Design of Universal IR Learning Remote Controller College :×××× Subject :×××× Name :×××× Directed by :×××× May 2009

摘 要 随着家用电器种类的增加和无线遥控产品的普及,红外遥控器的使用频率越来越高,针对国内红外遥控学习技术成熟,但产品化程度低的特点,本文自主设计一种具有红外学习和触屏显示功能的红外遥控器,借此促进红外遥控学习技术在国内市场的产品化推广。 在红外解码方面,传统方法采用单片机中断或者查询方式采集红外信号,环境不理想情况下可能需要多次解码,本文借助电脑辅助记录全波形,通过相关软件优化波形,解码一次即可成功;在红外发射方面,本文通过实验发现红外发射距离受载波占空比和红外二极管贯通电流影响,通过调试将38KHz载波红外信号发射距离提高到10米;在红外接收方面,进行了红外干扰测试;在触屏校验方面,通过实验获取触屏数据,利用matlab参数估计lsqcurvefit函数求得校正参数,解决了触屏漂移问题;在彩屏显示方面,将遥控器所有按键简化为方向键和确认键,虚拟数码管显示按键位置,避免了单片机片上资源紧张的问题,此外,彩屏仅支持16位R5G6B5格式数据,一张176*220图片占用72. 6KB空间,造成极大浪费,本文借此讨论了适合本系统的图片压缩技术,给出了一种具体的图片压缩格式。 按照由简单到复杂的顺序,本文先后制作了遥控接收解码装置、遥控编码发射装置、万能学习型红外遥控器,以SAA3010遥控器作为典型代表(遵循飞利浦RC-5编码协议),成功的实现了红外编解码、发射接收、按键触屏双输入、彩屏显示等基本功能,最终制作的万能学习型遥控器在功能上可以完全代替SAA3010遥控器。 关键词:红外学习;红外解码;单片机控制;声卡采样;触屏校验

(整理)打造超级PC遥控器.

编者按:你是否已经厌倦了坐在电脑前操作呢,你是否想过像遥控电视机一样随心所欲地遥控你的电脑呢?今天我们请到了DIY爱好者明浩教我们如何自己打造一个超级电脑遥控器,让你轻松实现遥控电脑的梦! 看了不少有关PC加装遥控器的DIY文章,心思思的我也想遥控自己的电脑。但是买一个PC遥控器要花100多元,感觉很不爽,毕竟我也是DIY迷嘛,所以决定自己做一个。但是仔细看看那些文章上的遥控器,只有很简单的功能,不能遥控软件和相关硬件。在网上查了一些资料,有一个国外的红外遥控软件Grider,很好用,功能也很强,而且是免费的,也就决定针对它做一个自己的PC遥控器。它使用AT89C2051单片机和PC串口相连接,音源切换芯片使用了CD4066,可以进行4路立体音音源的切换,4路输入1路输出,跟据自己的实际需要我只做了其中的两路。我还写了一PC软件用来控制它。切换器外观可以看下图1,PC软件外观可以看图2。于是在这个基础上我加了一个遥控接收头和遥控器,并重新改写了单片机程序,成功的制作了超级PC遥控器。呵呵,就来一起看看我的制作过程吧。 图1 电脑音源切换器(点击放大)

图2 电脑音源切换器的PC控制软件界面先来看看电路图和元件表: 图3电路图(点击放大)

表1 元件表 硬件原理 这个DIY制作要求有一定的电子知识,因为使用的元器件比较多一些,而且要用到单片机。所有没有一定电子基础的读者就要小心行事了,做不好可不关我事了:P。其实不要音源切换部份的电路也是可以的,电路更简单,但现在我只做了这个,下次我会再向大家介绍只有遥控部分的电路的DIY制作。先来说说电路的简单原理,单片机AT89C2051串口通过一片MAX232转换成可与PC串口相连接的RS232信号。IC5为一片CD4069六反相器,因51单片机上电复位后,IO口全置1,引脚高电平,如直接连接CD4066就会选通所有音源,所以要用反相器全部变为低电平去连接CD4066。K1至K4为四个常开按键,分别控制四个音源,P1.0和P1.1要使用10K的上拉电阻把电平拉高,另两个不用也能正常工作。K5为复位键,复位后切换状态为全部禁止。红外遥控信号通过一体化红外接收头接收再通过AT89C51解码再发到PC串口,软件就可以根据发来的编码和定义的操作做出反应。这里的制作主要要求有电子知识去识别元件和焊接技术,在我自己的实际制作中,元件的连接都是细铜线焊接的。

单片机红外电视遥控器C51程序代码单片机程序

单片机红外电视遥控器C51程序代码单片机程序 //************************************************************** //名称:单片机红外电视遥控器C51程序代码() /*-------------------------------------------------------------- 描述: 一般红外电视遥控器的输出都是用编码后串行数据对38~40kHz的方波进行 脉冲幅度调制而产生的.当发射器按键按下后,即有遥控码发出,所按的键 不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms 的组合表示二进制的“1”。上述“0”和“1”组成的32位二进制码经38kHz 的载频进行二次调制,然后再通过红外发射二极管产生红外线向空间发射。 一般电视遥控器的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后16位 为8位的操作码和8位的操作反码,用于核对数据是否接收准确。 根据红外编码的格式,发送数据前需要先发送9ms的起始码和4.5ms的结果码。接收方一般使用TL0038一体化红外线接收器进行接收解码,当TL0038接收到38kHz红外信号时,输出端输出低电平,否则为高电平。 所以红外遥控器发送红外信号时,参考上面遥控串行数据编码波形图,在低 电平处发送38kHz红外信号,高电平处则不发送红外信号。 ----------------------------------------------------------------*/ //编辑: //日期: //**************************************************************** #define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsigned long #include //包括一个51标准内核的头文件 static bit OP; //红外发射管的亮灭 static unsigned int count; //延时计数器 static unsigned int endcount; //终止延时计数 static unsigned char flag; //红外发送标志 char iraddr1; //十六位地址的第一个字节 char iraddr2; //十六位地址的第二个字节 void SendIRdata(char p_irdata); void delay(); //************************************************************** void main(void) {

Arduino编程语言

Arduino编程参考手册 首页 程序结构变量基本函数

程序结构 (本节直译自Arduino官网最新Reference) 在Arduino中, 标准的程序入口main函数在内部被定义, 用户只需要关心以下两个函数: setup() 当Arduino板起动时setup()函数会被调用。用它来初始化变量,引脚模式,开始使用某个库,等等。该函数在Arduino板的每次上电和复位时只运行一次。 loop() 在创建setup函数,该函数初始化和设置初始值,loop()函数所做事的正如其名,连续循环,允许你的程序改变状态和响应事件。可以用它来实时控制arduino板。 示例:

控制语句 if if,用于与比较运算符结合使用,测试是否已达到某些条件,例如一个输入数据在某个范围之外。使用格式如下: 该程序测试value是否大于50。如果是,程序将执行特定的动作。换句话说,如果圆括号中的语句为真,大括号中的语句就会执行。如果不是,程序将跳过这段代码。大括号可以被省略,如果这么做,下一行(以分号结尾)将成为唯一的条件语句。

圆括号中要被计算的语句需要一个或多个操作符。 if...else 与基本的if语句相比,由于允许多个测试组合在一起,if/else可以使用更多的控制流。例如,可以测试一个模拟量输入,如果输入值小于500,则采取一个动作,而如果输入值大于或等于500,则采取另一个动作。代码看起来像是这样:

else中可以进行另一个if测试,这样多个相互独立的测试就可以同时进行。每一个测试一个接一个地执行直到遇到一个测试为真为止。当发现一个测试条件为真时,与其关联的代码块就会执行,然后程序将跳到完整的if/else结构的下一行。如果没有一个测试被验证为真。缺省的else语句块,如果存在的话,将被设为默认行为,并执行。 注意:一个else if语句块可能有或者没有终止else语句块,同理。每个else if分支允许有无限多个。

红外寻迹避障电路总结讲解

光电传感器 一、反射式光电传感器简介 反射式光电传感器在机器人中有着广泛的应用。可以用来检测地面明暗和颜色的变化,也可以探测有无接近的物体。这种光电传感器的基本原理是,自带一个光源和一个光接收装置,光源发出的光经过待测物体的反射被光敏元件接收,再经过相关电路的处理得到所需要的信息。相应的,光谱范围,灵敏度,抗干扰能力,输出特性等都是反射式光电传感器的重要参数。 二、简单比较型光电传感器 在上左图中,JP1是光电管,接收光强在上面转换成电流,在R上成为电压信号,与RA1的标准值进行比较,从LM339输出逻辑电平给单片机。 R越大,光电流产生的电压变化越大,传感器也就越灵敏。但是若R过大,当光比较强的时候,R上的电压会达到VCC而不再变化,这就是所谓的饱和。在这种比较型的传感器电路中,饱和只会使强光与强光难以分辨,但仍可以区分强光和弱光,它并不是影响比较结果的重要因素。但在后面介绍的几种调制型传感器中,饱和是必须避免的,因为它会掩盖交流分量。高灵敏度和饱和是一对矛盾,在后面提到了一些相关的解决方案。 LM339是开路输出的,10K的电阻是为了使输出电压正确。如果后面是51之类开路输入的单片机,这个电阻可以省略。 假如把光敏管放在下边,电阻放在上边。这样当光线较暗时比较器输入电压接近VCC,超过比较器LM339能够正常工作的最高输入电压Vm,比较器不能正常工作(LM339的共模输入电压最低能低到0,但是最高达不到VCC),因此灵敏度做不高。为了使比较器正常工作,电阻值应使得光照时比较器输入电压Vi大幅下降,满足VCC-I*RVCC-Vm。这样,光再强一点,I*R接近VCC,Vi 就会降到0附近,光敏管就会饱和,降低了区分颜色的可靠性。 而现在把光敏管放在上边,电阻放在下边,就可以解决这个问题:这时Vi=I*R,使用较小的R可以保证Vi

基于某单片机地红外遥控设计与制作

基于单片机的红外遥控设计与制作 13工试2班舒佳章韬略 一、设计目的 对于本课题的研究,其理论中的价值是对红外线这种电磁波的特性进行更加深入的研究。同时在与单片机和电子电路的共同作用下,找到单片机及电子电路在实际运用中的更多功能,从而挖掘出红外线和硬件设备结合中的更多可能性。在现实意义中,对于红外线的使用,它不仅提高了单片机、硬件设备和硬件系统在智能遥控领域的广泛应用,而相对了在硬件设施上使用了红外线的遥控技术,也同时大大拓宽了硬件设施的应用围。在不久的将来,我相信,人们对于红外遥控控制的运用,会变得越来越广。 二、设计要求 基本功能要求: 1.以一个单片机作为控制遥控器,另一个单片机控制系统为被遥控对象; 2.用遥控器的10个遥控开关,控制遥控对象的10个电源开关通断; 3.能实现10个电源开关状态显示; 4.能实现定时开关某一个电源开关。 扩展功能: 1.能实现灯光亮度连续调节;

2.能根据不同电器实现不同时间通断控制; 3.其他扩展功能。 三、方案设计 3.1红外遥控发射电路的方案 采用指令键产生电路产生不同的控制指令,单片机进行状态的编码,直接由单片机的口输出方波信号控制红外发射管进行发射。红外发射管采用普通的红外发射二极管。 3.2红外遥控接收电路的方案 遥控系统采用红外线脉冲个数编码,直接利用单片机软件解码,实现功能的遥控。 3.3单片机的选择 本设计所编写的程序比较简单,功能也比较少,所用到的输入输出端口也不是很多,所以我们决定用STC89C52单片机来完成本设计,既方便也很实用。 3.4红外遥控系统电路的原理框图以及各部分作用

各部分作用: (1)行列式键盘 行列式键盘又称为矩阵式键盘,用I/O线组成行列结构,按键设置在行列的交点上,行列式分别连接到按键开关的两端。键盘中有无按键按下是由行线送入扫描字及列线读入列线状态字来判断的,有键按下时通过查键并执行键功能程序。 (2)红外线发射电路 遥控器信息码由单片机的定时器1中断产生40KHZ红外线方波信号。由P3.5口输出,经过三极管放大,由红外线发射管发送。 (3)单片机 单片机用于输出方波信号控制红外发射电路的工作。 3.5红外接收部分原理框图以及各部分作用 各部分作用: (1)+5V电源电路 给单片机最小系统、控制电路提供以及红外接收电路提供电压。

红外线接收控制制作

红外线接收控制制作

————————————————————————————————作者:————————————————————————————————日期:

红外线接收控制器的制作 在生活中,我们常用到红外线控制各类电器,如彩电、空调、电风扇等,为我们带来较多的方便,但有时我们仍感到不方便。如看完电视后,用遥控器只能关掉电视主电源,电视仍处于待机状态,使用者还得走到电视跟前,按下电视电源开关方能放心。若想看电视,还得动身开电视,显得很麻烦,尤其是冬天躺在床上看电视,上上下下,深感不便。本文以利用红外遥控器来遥控风扇的制作方法为例(可任选一只红外线遥控器,能调速,软件稍作改变,可增加定时功能等),来介绍红外线接收控制器的制作方法,如果制作电视交流电源的开、关控制器,可与电视共用一只遥控器,制作也较简单些。 制作思路 红外遥控发射器是利用红外线作载体传送信息的,发射周期不等的经过调制后串行码,该串行码一般由引导码、用户识别码、操作码组成。经红外接收头解码后得到一串周期不等的矩形波,如示意图1。 不同型号的遥控发射器的波形宽度不同,即周期T1、T2……不同,在不知手头遥控发射器的波形周期的情况下,首先要制作一个检测红外线周期的工具。根据测得的周期规律来制作红外线接收控制器。 制作方法 检测红外周期的器件制作,见图2。 当红外接收头没有接收到发射器发送来的红外线,其输出端输出高电平(约+5V)。当接收到红外线,输出端电平变低,送到单片机AT89C2051的外部中断1口即INT1,使其发生中断而进入中断服务:启动定时器1并开始计数,

相当于在图1的A点,1个周期后即C点,单片机第二次中断,关定时器1,记下周期T1(实际上只记下TH1的数值,TL1的值可以丢弃),然后清TH1、TL1,再启动定时器1重新计数,第二个周期完后,同样会引起单片机发生中断,再记下周期T2……,如此记下40-50个周期(一般红外编码为4字节,即32BIT,之前还有引导码,又因接收到的红外数据不一定是从引导码开始,要分析一次完整的串行码,应尽可能多记下红外矩形波周期数),接收完后,通过按轻触开关将各记下的各周期的TH1在数码管显示出来以作分析(每按一次轻触开关,显示下一个周期数)。 编程方法 #define CNT 50//预测50个红外线周期 DATA Byte value_h[CNT];//记录周期的变量(数组) DATA Byte count=0;//接收到的周期数 code Byte arr[][2]={0x90,0x6f, //0,尽可能按键0、键1……的先后顺序放,以符合习惯 0x00,0xff, //1 0x10,0xef, //9 0xd0,0x2f //power 13 }; /*在接收红外线的外部中断1函数中编写如下的键码转换语句:*/ DATA Byte arrtmp[4]; DATA Byte Keytmp; //转换后的键值寄存变量 DATA Byte Keyval=NOKEY; bit KeyOk;// 键值转换完成与否的标志 bit d_Ok;//接收到一个完整的键码标志 void int1(void) interrupt 2 { if(TH1==TL1&&TL1==0) //判断是否是第一次接收到红外数据 { TR1=1; } else { TR1=0; value_h[count]=TH1; TH1=TL1=0; TR1=1; count++; if(count==CNT) { EX1=0; count=0; }

c51、c52单片机红外线遥控接收解码c程序(可直接使用)

/ 亲,此程序以经过测试,可直接使用!!!/ #include #define uchar unsigned char #define uint unsigned int void delay(uchar x); sbit IRIN = P3^2; uchar IRCOM[4]; void main() { IE = 0x81; TCON = 0x01; IRIN=1; /* 此处可以根据按键码自由编写程序 /以下为3*7遥控按键码/ /(也可以应用与其他类型遥控,本程序只以3*7遥控为例)/ / 0x45 0x46 0x47 / / 0x44 0x40 0x43 / / 0x07 0x15 0x09 / / 0x16 0x19 0x0d / / 0x0c 0x18 0x5e / / 0x08 0x1c 0x5a / / 0x42 0x52 0x4a / 例如: while(1) {switch(IRCOM[2]) {case 0x45: P2=0x7f; break; case 0x44: P2=0xbf; break; case 0x07: P2=0xdf; break; case 0x16: P2=0xef; break; case 0x0c: P2=0xf7; break; case 0x08: P2=0xfb; break; case 0x42: P2=0xfd; break; case 0x52: P2=0xfe; break; case 0x4a: P2=0xff; break; case 0x5a: P2=0x00; break;} } */ while(1); } //end main /**********************************************************/ void IR_IN(void) interrupt 0 //外部中断服务程序 {unsigned char j,k,N=0; EX0 = 0; delay(15); if (IRIN==1) { EX0 =1;

红外避障电动小车C51程序

红外避障电动小车C51程序 时间:2009-05-13 来源: 作者: 点击:1400 字体大小:【大中小】 #include"reg51.h" #include #define uchar unsigned char #define uint unsigned int #define left_infrare 0 #define right_infrare 1 #define dj_state1 0X5F //前进 #define dj_state2 0X4F //右转 #define dj_state3 0X1F //左转 #define dj_state4 0X0F //后退 #define dj_state5 0XfF //停车 #define light_off 0x0f //关转向灯 #define left_light 0X5F //左转向灯两个是5f #define right_light 0XaF //右转向灯0xaf,两个是0xbf #define back_light 0XcF //刹车灯即后灯 #define front_light 0x3f //前灯 #define light_on 0xff //开所有灯 #define true 1 #define false 0 #define LCD_Data P0 #define Busy 0x80 //用于检测LCD状态字中的Busy标识 sbit c=P1^2; //转向灯使能端 uchar code talk1[]={"backward"}; uchar code talk2[]={"forward"}; uchar code talk3[]={"Turnleft"}; uchar code talk4[]={"Turn right"}; uchar flage =0x00; sbit ledcs=P1^2; //74H573的片选信号 //sbit left_led=P0^2; //左红外发射管 //sbit right_led=P0^3; //右红外发射管 sbit LCD_RS = P1^5; //LCD定义引脚 sbit LCD_RW = P1^6; // sbit LCD_E = P1^7 ; void Delay5Ms(void) { uint TempCyc = 5552; while(TempCyc--); } //400ms延时 void Delay400Ms(void)

实验:简易红外遥控电路制作

焊接时,把这个文档打印带到实验室,或者单打印电路图也可。 实验简易红外遥控电路的制作 一、实验内容与要求 对指定的电路使用Proteus工具进行仿真;指定的电路为:①红外发射器,如图1所示;②红外接收器,如图2所示。 b)使用Protel工具设计图1和图2的印刷电路板图。 按照图1安装一个手持式红外发射器、按照图2安装一个红外接收器;完成的作品应具有如下功能:按动发射器上的一个按扭,能遥控接收器上的一个小型继电器,通过该继电器的触点,可以控制一般小功率的用电设备如电灯等。 d)完成实验报告。 二、实验电路及原理 1、发射器 电路如图1所示, 集成电路NE555(或7555>等元件组成自激多谐振荡器,振荡频率约为38KHZ~40 KHZ,该频率与C1、R1、RV1均有关系,可调节它们使振荡频率达到要求;当按钮AN按下时,脉冲电流流过红外发射二极管IR- LED,使之发出38KHZ左右的红外脉冲光。 图 1 红外发射电路 2、接收器

电路如图2所示,主要由一体化红外接收头、D触发器和小型继电器等组成。CD4013是CMOS集成电路D触发器,内含两个独立的D触发器,外形为双列直插14脚封装,第14脚为电源正极,第7脚为电源负极,工作电压3~18伏,S、R端对Q端的影响如下表1所示。 图 2 红外接收器 图 3 红外接收头表1 D触发器真值表 常态时,接收头Uo端输出为高电平,Q1饱和其集电极电位为零,因此U1: A的S=0, R=1,由表1可知,U1:A应有Q=0;当接收头收到红外光时,Uo端输出负脉冲,

在负脉冲的低平期间,Q1截止,使U1:A的S=1,R=0,故U1:A的Q=1,随后,U o端负脉冲消失,U1:A回到常态

自制红外遥控开关

电子报/2007年/5月/27日/第015版 单片机应用 自制红外遥控开关 自制一款使用方便、价格低廉的遥控开关,不失为一个好的娱乐方法,本文详细介绍单路遥控开关的制作方法,如有需要,可以以此类推,制作出可同时控制灯具、风扇、自动窗帘等电气设备的多路开关。 本制作以89C2051单片机为核心,通过软件实现对红外遥控信号的解码,并对输出进行控制。 硬件电路如图1所示。 供电部分采用电容降压电路,通过全桥整流可以在同等情况下使用小容量的降压电容。5.1V 稳压管为芯片提供工作电压。89C2051的工作电压是2.7V~6V。单片机采用阻容复位。也可以加装复位开关,以方便调试时使用。晶振为6MHz。如需降低待机功耗,也可以选用更低频率的。红外接收头使用1838或1808一体化接收头。图中的按键为手控按键,也可作为调试验证使用。LED为工作指示灯。输出部分采用SSR固态继电器或者使用分立元件电路。虚线框中的部分可直接使用SSR,也可以按图中电路搭建。光揭MOC3061具有过零检测电路功能。 89C2051需要安装IC插座,以方便调试。89C2051不能在线编程,没有编程器的朋友可以使用具有ISP功能的89551系列单片机,这样可以省去调试时的来回拔插。 硬件电路制作好以后,就可以调试软件了。软件的流程图如图2所示。

程序的主要部分是红外解码,利用外部中断和定时共同完成。其他部分都是对端口的基本操作。调试软件时,如果不确定红外解码是否正确,可以使用按键程序测试其他功能或中断功能。 当软硬件都调好后,用滤光片遮挡红外一体化接收头(防止可见光干扰),将电路直接连接 到插座或是其他双线电路上,即可进行稳定性测试。

红外遥控课程设计

单片机与接口技术课程设计 题目: 基于单片机红外线遥控控制 LED灯显示系统设计与制作班级:电子科学与技术1101 姓名:李婷 学号:110803025 2013年12月11日

目录 第一章设计要求 (3) 第二章硬件系统设计 (3) 2.1基于单片机红外线遥控控制LED灯显示系统框架图 (3) 2.2单片机控制系统及其基本电路 (4) 2. 2.1 单片机最小系统 (4) 2.2.2时钟电路 (5) 2.2.3复位电路 (5) 2.3基于单片机红外遥控控制LED系统的设计原理 (6) 2.3.1单片机红外遥控控制LED显示系统原理 (6) 2.3.2单片机红外遥控控制LED系统码分制原理 (7) 2.4红外遥控发射系统电路设计 (8) 2.4.1指令按键电路 (8) 2.4.2 发射电路 (9) 2.4.3 显示模块 (9) 2.5红外遥控接收系统电路设计 (11) 2.5.1接收电路 (11) 2.5.2 LED灯显示电路 (11) 2.6硬件原理图 (12) 第三章软件系统设计 (12) 3.1 红外线发射电路程序流程图设计 (13) 3.2 红外线接收电路程序流程图设计 (13) 第四章系统测试与分析 (14) 4.1 利用Proteus和keil进行仿真调试 (14) 4.2 仿真图 (16) 第五章总结 (18) 附录1 (18) 附录2 (22) 参考文献 (25)

赣南师范学院 2013 — 2014 学年第_1_学期课程论文行政班级:电子科学与技术1101 学号:110803025 姓名:李婷

图2-1 系统的设计总框图 2.2单片机控制系统及其基本电路 2.2.1单片机最小系统 单片机晶振电路:对于MSC-51一般的晶振频率可以在1.2MHz—12MHz 之间选择,这是电容C可以对应的选择10pF—30pF。当使用89C55时晶振频率可以提高到24MHZ。对于本设计的电容C用30pF,晶振选用11.0592MHz。晶振电路如下图3-1所示,一条引脚接在XTAL1,另一条接在XTAL2。单片机的复位电路:为了防止程序执行过程中失步或运行紊乱,此处采用了上电复位及手动复位电路,电路图如下图2-1所示: 图2-2-1 单片机最小系统图

ARDUINO入门及其简单实验7例

ARDUINO入门及其简单实验(7例) (1) 1. Arduino硬件开发平台简介 (1) 1.1 Arduino的主要特色 (2) 1.2 Arduino的硬件接口功能描述 (3) 1.3 Arduino的技术性能参数 (3) 1.4 电路原理图 (4) 2. Arduino软件开发平台简介 (5) 2.1 菜单栏 (5) 2.2 工具栏 (6) 2.3 Arduino 语言简介 (6) 3. Arduino开发实例中所用部分器件 (8) 1. LED简介 (8) 2. 光敏电阻简介 (9) 3. 直流电机简介 (9) 4. 电位器简介 (10) 4. Arduino平台应用开发实例 (10) 4.1【实作项目一】利用LED作光敏电阻采样实验 (10) 4.2【实作项目二】利用PWM信号控制LED亮度 (12) 4.3【实作项目三】单键控制一只LED的亮灭 (15) 4.4【实作项目四】利用PWM控制直流电机转速 (17) 4.5【实作项目五】利用电位器手控LED亮度 (19) 4.6【实作项目六】控制LED明暗交替 (21) 4.7【实作项目七】利用光敏电阻控制LED的亮灭 (23) ARDUINO入门及其简单实验(7例) 1. Arduino硬件开发平台简介 Arduino硬件是一块带有USB的I/O接口板(其中包括13条数字I/O引脚,6通道模拟输出,6通道模拟输入),并且具有类似于Java、C语言的集成开发环境。Arduino 既可以扩展一些外接的电子元器件,例如开关、传感器、LED、直流马达、步进马达或其他输入、输出装置;Arduino也可以独立运行,成为一个可以跟交互软件沟通的接口装置,例如:Flash、Processing、Max/MSP、VVVV或其他互动软件。Arduino 开发环境IDE全部开放源代码,可以供大家免费下载、利用,还可以开发出更多激发人们制作欲望的互动作品。

红外遥控制作报告[优质文档]

电子基础实验C实验报告 专业通信工程 学号222013333210204 姓名徐子婷 实验时间:2015.3~2015.6 实验地点:25教502

1.实验目的 1、制作红外遥感接收器跟发射器,实现红外遥控控制台灯开关。 2、了解红外遥感原理,以及学会如何自己查找资料,进行设计,成功制作成品 3、学会如何在面包板上布线,尽量减少飞线并同时是布线美观 4、培养学生的综合能力:查找资料、学习并使用新器件、自行安排进度、学习如何与 他人协作的前提、发现并解决问题; 5、加强电子制作能力 2.实验器材 电脑,电烙铁,面包板,焊锡,吸锡器,松香,海绵 3.实验原理 1、红外遥控原理简介:红外遥控技术是一种利用红外线进行点对点通信的技术,其相应的软件和硬件技术都已比较成熟。它是把红外线作为载体的遥控方式。由于红外线的波长远小于无线电波的波长,因此在采用红外遥控方式时,不会干扰其他电器的正常工作,也不会影响临近的无线电设备。红外遥控是利用波长为0.76μm-1.5μm之间的近红外线来传递控制信号的。

它具有以下特点: 1.由于为不可见光,因此,对环境影响很小。红外线的波长远小于无线电波的波长,所以,红外遥控不会干扰其它家用电器,也不会影响近邻的无线电设备。 2.红外线为不可见光,具有很强的隐蔽性和保密性,因此在防盗,警戒等安全保卫装置中也得到了广泛的应用。 3. 红外线遥控的遥控距离一般为几米至几十米或更远一点。 4.红外线遥控具有结构简单,制作方便,成本低廉,抗干扰能力强,工作可靠性高等一系列优点,特别是室内遥控的优先遥控方式。同时,由于采用红外线遥控器件时,工作电压低,功耗小,外围电路简单,因此它在日常工作生活中的应用越来越广泛。 它在技术上的主要优点是: 1.无需专门申请特定频率的使用执照; 2.具有移动通信设备所必需的体积小、功率低的特点; 3.传输速率适合于家庭和办公室使用的网络; 4.信号无干扰,传输准确度高; 它的缺点是:由于它是一种视距传输技术,采用点到点的连接具有方向性,两个设备之间如果传输数据,中间就不能有阻挡物;而且通讯距离较短,此外红外LED不是一种十分耐用的器件。 常用的红外遥控系统一般分发射和接收两个部分。 发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管;由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。目前大量的使用的红外发光二极管发出的红外线波长为940mm左右,外形与普通φ5发光二极管相同,只是颜色不同。红外发光二极管一般有黑色、深蓝、透明三种颜色。判断红外发光二极管好坏的办法与判断普通二极管一样;用万用表电阻挡量一下红外发光二极管的正、反向电阻即可。红外发光二极管的发光效率要用专门的仪器才能精确测定,而业余条件下只能用拉锯法来粗略判判定。 接收部分的红外接收管是一种光敏二极管。在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。红外发光二极管一般有圆形和方形两种。由于红外发光二极管的发射功率一般都较小(100mW左右),所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路。前些年常用Μpc1373H、CX20106A等红外接收专用放大集成电路。最近几年不论

四路无线遥控开关的设计方案

四路无线遥控开关的设计方案 摘要:鉴于市场上很多遥控产品质量参差不齐、性能不好,我们设计了性能稳定、价格便宜的无线遥控器。该遥控器发射部分采用315MHz无线数据发射模块和编码集成PT2262组成,接收部分采用超再生式接收模块、PT2272和D触发器4013构成的双稳态电路组成,本设计也解决了PT2272-M4改为PT2272-L4时实现了4路输出就有自锁状态变为非锁定状态。本无线遥控距离可达200m.适用于控制电动门的开关、工业用电动机的开停、正反转等。 0引言 目前市场上有很多无线遥控产品出售,质量参差不齐,有些还使用LC振荡器,频率漂移严重,性能不好。本文介绍一种性能稳定、价格便宜的无线遥控组件。该模块工作频率为315MHz,采用声表谐振器SAW稳频,器频率稳定度极高,当环境温度在一25℃-+85℃之间变化时,频飘仅为3ppm/度。它与编解码集成PT2622/PT2722配套使用时,可以实现遥控、遥测、数据采集、 生物信号采集等功能。 1 PT2262/2272 编码芯片PT2262/2272是台湾普城公司生产的CMOS工艺制造的低功耗低价位通用编码/解码电路,是一对带地址、数据编码功能的无线遥控发射/接收芯片。 发射芯片PT2262将载波振荡器、编码器和发射单元集成于一身,使发射电路变得非常简洁。 它工作电压范围宽(-15V-2.6V),其中A0一A1l为地址管脚,用于进行地址编码,可置为“0”,“1”或“f”(悬空)。DO-D5为数据输入端,有一个为“1”即有编码发出,内部下拉。TE为编码启动端,低电平有效。OSCl、OSC2分别为振荡电阻的输入和输出端,外接电阻决定振荡频率。设定的地址码和数据码从17脚串行输出,平时为低电平,可以直接调制发射模块发射信号。 PT2272通常有L4、L6和M4等后缀输出形式。L4、L6是4路和6路自锁存输出,M4则是四路非锁定输出。而锁存功能是指,当发射信号消失时,PT2272的数据输出端仍保持原来的状态,直到下次接收到新的信号输入。PT2272的非锁存功能是指当发射信号消失时,PT2272的对应数据输出位即变为低电平即数据脚输出的电平是瞬时的,而且和发射端是否发射相对应, 可用以类似点动的控制。 2四路遥控器的工作原理 2.1发射部分 发射部分电路原理图如图1中(a)所示。

相关文档