Arduino红外遥控实验例子

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

红外遥控1、红外接收头介绍一、什么是红外接收头?红外遥控器发出的信号是一连串的二进制脉冲码。为了使其在无线传输过程中免受其他红外信号的干扰,通常都是先将其调制在特定的载波频率上,然后再经红外发射二极管发射出去,而红外线接收装置则要滤除其他杂波,叧接收该特定频率的信号并将其还原成二进制脉冲码,也就是解调.二、工作原理内置接收管将红外发射管发射出来癿光信号转换为微弱的电信号,此信号经由IC内部放大器进行放大,然后通过自动增益控制、带通滤波、解调变、波形整形后还原为遥控器发射出的原始编码,经由接收头的信号输出脚输入到电器上的编码识别电路。三、红外接收头的引脚与连线红外接收头有三个引脚如下图:用的时候将VOUT接到模拟口,GND接到实验板上的GND,VCC接到实验板上的+5v。红外遥控实验1、实验器件红外遥控器:1个红外接收头:1个LED灯:6个220Ω电阻:6个多彩面包线:若干2、实验连线首先将板子连接好;接着将红外接收头按照上述方法接好,将VOUT接到数字11口引脚,将LED灯通过电阻接到数字引脚2,3,4,5,6,7。返样就完成了电路部分的连接。3、实验原理要想对某一遥控器进行解码必须要了解该遥控器的编码方式。本产品使用的控器的码方式为:NEC协议。下面就介绍一下NEC协议:·NEC协议介绍:特点:(1)8位地址位,8位命令位(2)为了可靠性地址位和命令位被传输两次(3)脉冲位置调制(4)载波频率38khz(5)每一位的时间为1.125ms-2.25ms·逻辑0和1的定义如下图协议如下:·按键按下立刻松开的发射脉冲:上面图片显示了NEC的协议典型的脉冲序列。注意:这首先发送LSB(最低位)的协议。在上面癿脉冲传输的地址为0x59命令为0x16。一个消息是由一个9ms的高电平开始,随后有一个4.5ms的低电平,(返两段电平组成引寻码)然后由地址码和命令码。地址和命令传输两次。第二次所有位都取反,可用于对所收到的消息中的确认使用。总传输时间是恒定的,因为每一点与它取反长度重复。如果你不感兴趣,你可以忽略这个可靠性取反,也可以扩大地址和命令,以每16位!按键按下一段时间才松开的发射脉冲:一个命令发送一次,即使在遥控器上的按键仍然按下。当按键一直按下时,第一个110ms癿脉冲与上图一样,之后每110ms重复代码传输一次。返个重复代码是由一个9ms的高电平脉冲和一个2.25ms低电平和560μs癿高电平组成。·重复脉冲注意:脉冲波形进入一体化接收头以后,因为一体化接收头里要迕解码、信号放大和整形,故要注意:在没有红外信号时,其输出端为高电平,有信号时为低电平,故其输出信号电平正好和发射端相反。接收端脉冲大家可以通过示波器看到,结合看到的波形理解程序。遥控器键值:一排一=0x00FFA25D;一排二=0x00FFE01F;一排三=0x00FF629D;二排一=0x00FFA857;二排二=0x00FFE21D;二排三=0x00FF906F;三排一=0x00FF22DD;三排二=0x00FF6897;三排三=0x00FF02FD;四排一=0x00FF9867;四排二=0x00FFC23D;四排三=0x00FFB047;程序代码#includeIRremote.hintRECV_PIN=11;intLED1=2;intLED2=3;intLED3=4;intLED4=5;intLED5=6;intLED6=7;longon1=0x00FFA25D;longoff1=0x00FFE01F;longon2=0x00FF629D;longoff2=0x00FFA857;longon3=0x00FFE21D;longoff3=0x00FF906F;longon4=0x00FF22DD;longoff4=0x00FF6897;longon5=0x00FF02FD;longoff5=0x00FF9867;longon6=0x00FFC23D;longoff6=0x00FFB047;IRrecvirrecv(RECV_PIN);decode_resultsresults;//Dumpsoutthedecode_resultsstructure.//CallthisafterIRrecv::decode()//void*toworkaroundcompilerissue//voiddump(void*v){//decode_results*results=(decode_results*)voiddump(decode_results*results){intcount=results-rawlen;if(results-decode_type==UNKNOWN){Serial.println(Couldnotdecodemessage);}else{if(results-decode_type==NEC){Serial.print(DecodedNEC:);}elseif(results-decode_type==SONY){Serial.print(DecodedSONY:);}elseif(results-decode_type==RC5){Serial.print(DecodedRC5:);}elseif(results-decode_type==RC6){Serial.print(DecodedRC6:);}Serial.print(results-value,HEX);Serial.print(();Serial.print(results-bits,DEC);Serial.println(bits));}Serial.print(Raw();Serial.print(count,DEC);Serial.print():);for(inti=0;icount;i++){if((i%2)==1){Serial.print(results-rawbuf[i]*USECPERTICK,DEC);}else{Serial.print(-(int)results-rawbuf[i]*USECPERTICK,DEC);}Serial.print();}Serial.println();}voidsetup(){pinMode(RECV_PIN,INPUT);pinMode(LED1,OUTPUT);pinMode(LED2,OUTPUT);pinMode(LED3,OUTPUT);pinMode(LED4,OUTPUT);pinMode(LED5,OUTPUT);pinMode(LED6,OUTPUT);pinMode(13,OUTPUT);Serial.begin(9600);irrecv.enableIRIn();//Startthereceiver}inton=0;unsignedlonglast=millis();voidloop(){if(irrecv.decode(&results)){//Ifit'sbeenatleast1/4secondsincethelast//IRreceived,toggletherelayif(millis()-last250){on=!on;//digitalWrite(8,on?HIGH:LOW);digitalWrite(13,on?HIGH:LOW);dump(&results);}if(results.value==on1)digitalWrite(LED1,HIGH);if(results.value==off1)digitalWrite(LED1,LOW);if(results.value==on2)digitalWrite(LED2,HIGH);if(results.value==off2)digitalWrite(LED2,LOW);if(results.value==on3)digitalWrite(LED3,HIGH);if(results.value==off3)digitalWrite(LED3,LOW);if(results.value==on4)digitalWrite(LED4,HIGH);if(results.value==off4)digitalWrite(LED4,LOW);if(results.value==on5)digitalWrite(LED5,HIGH);if(results.value==off5)digitalWrite(LED5,LOW);if(results.value==on6)digitalWrite(LED6,HIGH);if(results.value==off6)digitalWrite(LED6,LOW);last=millis();irrecv.resume();//Receivethenextvalue}}

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功