好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

《Arduino技术及应用》课件—第17章红外遥控.ppt

18页
  • 卖家[上传人]:hs****ma
  • 文档编号:586689443
  • 上传时间:2024-09-05
  • 文档格式:PPT
  • 文档大小:319.93KB
  • / 18 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • ArduinoArduino技术及应用技术及应用第第17章章 红外遥控红外遥控Arduino技术及应用第17章 红外遥控 目录目录IRremote类库成员函数红外接收红外发射17.2￿17.117.3目录IRremote类库成员函数红外接收红外发射17.2 1 红外遥控总述红外遥控总述Arduino可以使用的无线模块很多,驱动方式各有不同本章将要介绍一种最常用、成本最低的无线通信方式――红外通信红外通信是一种利用红外光编码进行数据传输的无线通信方式,是目前使用最广泛的一种通信和遥控手段由于红外线遥控装置具有体积小、功耗低、成本低等特点,因而被广泛应用于各个领域生活中常见的电视机遥控器和空调遥控器,均使用红外线遥控红外遥控总述Arduino可以使用的无线模块很多,驱动方式各 17.1 IRremote类库成员函数1. IRrecv 类IRrecv类可用于接收红外信号并对其解码在使用该类之前,需要实例化一个该类的对象其成员函数如下1) IRrecv( )l功能:IRrecv类的构造函数可用于指定红外一体化接收头的连接引脚l语法:IRrecvobject(recvpin)l参数:•object,用户自定义的对象名。

      •recvpin,连接到红外一体化接收头的Arduino引脚编号17.1 IRremote类库成员函数1. IRrecv 类 17.1 IRremote类库成员函数(2) enableIRIn( )l功能:初始化红外解码l语法:IRrecv. enableIRIn( )l参数:IRrecv,—个IRrecv类的对象l返回值:无3) decode( )l功能:检查是否接收到编码l语法:IRrecv. decode(&results)l参数:•IRrecv,一个IRrecv类的对象•results,一个decode_results类的对象l返回值:int型值,为0表示接收到编码; 为1表示没有接收到编码17.1 IRremote类库成员函数(2)enableI 17.1 IRremote类库成员函数(4) resume( )l功能:接收下一个编码l语法:IRrecv.resume( )l参数:IRrecv,—个IRrecv类的对象l返回值:无2.IRsend 类IRsend类可以对红外信号编码并发送17.1 IRremote类库成员函数(4)resume( 17.1 IRremote类库成员函数(1) IRsend( )l功能:IRSend类的构造函数。

      l语法:IRsendobject( )l参数:object,一个IRsend类的对象2) sendNEC( )l功能:以NEC编码格式发送指定值l语法:IRsend. sendNEC(data,nbits)l参数:•IRsend,一个IRsend类的对象•data,发送的编码值•nbits,编码位数l返回值:无17.1 IRremote类库成员函数(1)IRsend( 17.1 IRremote类库成员函数(3) sendSony( )l功能:以Sony编码格式发送指定值l语法:Irsend.sendSony(data,nbits)l参数:•IRsend,一个IRsend类的对象•data,发送的编码值•nbits,编码位数l返回值:无4) sendRaw( )l功能:发送原始红外编码信号l语法:IRsend. sendRaw(buf,len,hz)l参数:•IRsend,一个IRsend类的对象•buf,存储原始编码的数组•len,数组长度•hz,红外发射频率l返回值:无17.1 IRremote类库成员函数(3)sendSon 17.1 IRremote类库成员函数除此之外还有如下函数,用于其他常见协议的红外信号发送:lsendRC5( );lsendRC6( );lsendDISH( );lsendSharp( );lsendPanasonic( );lsendJVC( );在红外通信中的两端,一端进行红外信号的编码并发送,另一端接收红外信号并解码。

      以下示例中将使用红外遥控器作为红外信号的发送端,使用Arduino和一体化接收头作为红外信号的接收端17.1 IRremote类库成员函数除此之外还有如下函数, 17.2红外接收要想使用遥控器来控制Arduino,首先需了解遥控器各按键对应的编码,不同的遥控器,不同的按键,不同的协议,都对应着不同的编码可通过IRremote的示例程序来获取遥控器发送信号的编码红外信号接收端的制作只需将红外一体化接收头按图17-1连人Arduino即可,示例中将红外一体化接收头的输出脚连接到Arduino的11号引脚17.2红外接收要想使用遥控器来控制Arduino,首先需了 17.2红外接收这里使用以下程序对红外信号进行解码,可以通过选择“文件”→“示例”→IRremote→IRrecvDemo菜单项找到该程序下载好该示例程序后,使用遥控器向红外一体化接收头发送信号,并在串口监视器中査看,则会看到如图17-2所示的信息17.2红外接收这里使用以下程序对红外信号进行解码,可以通过 17.2红外接收遥控器的每个按键都对应了不同的编码,不同的遥控器使用的编码方式也不相同之所以出现“FFFFFFFF”编码,是因为使用的是NEC协议的遥控器,当按住某按键不放开时,其会发送重复编码“FFFFFFFF”。

      对于其他协议的遥控器,则会重复发送其对应的编码在以上示例中,通过语句int RECV_PIN = 11;IRrecvirrecv;实例化了一个IRrecv类的红外接收对象irreev,并将红外接收头引脚连接到了Arduino的11号引脚上;接着在setup( )中使用enableIRIn( )函数初始化红外解码功能在loop( )中使用decode( )函数检査是否收到编码,并将结果存储到decode_ results类的results对象中解码后的结果会保存在results. value中;最后通过 resume( )函数开始接收下一个编码17.2红外接收遥控器的每个按键都对应了不同的编码,不同的遥 17.2红外接收如果要使用红外遥控器来控制Arduino上连接的设备,则只需将解码后的结果results.value与设定功能的编码进行比对,如果一致,便执行相应的功能,如在以上程序中添加如下语句:switch {case 0xFFA25D:break ;             //按键对应的动作 case 0xFFE21D:break;             //按键对应的动作 case 0xFF9867:break;             //按键对应的动作.......}17.2红外接收如果要使用红外遥控器来控制Arduino上连 17.3红外发射除了使用红外遥控器发射红外信号外,也可以使用Arduino来发送经过编码的红外信号。

      如图17-3所示,只需将红外发射管与Arduino连接即可,连接方式与普通LED类似,只要串联一个限流电阻即可另外,IRremote库只能使用3号引脚作为红外信号输出脚 17.3红外发射除了使用红外遥控器发射红外信号外,也可以使用 17.3红外发射可以通过选择“文件”→“示例”→IRremote→IRrecvDemo菜单项找到该示例程序includeIRsend irsend;void setup( ){ Serial. begin(9600); //初始化串口通信} void loop( ) { if (Serial. read( ) ! = -1) { for (int i = 0; i<3; i++) { irsend.sendSony(0xa90, 12); //发送索尼电视机电源开关对应的编码 delay(40); } }}17.3红外发射可以通过选择“文件”→“示例”→IRremo 17.3红外发射这样便可模拟红外遥控器发射的经过编码的红外信号了虽然红外光不可见,但可以通过或者电脑的摄像头来观察红外LED是否发光,以便排除硬件问题。

      还可以使用两块Arduino进行红外无线通信在一定环境下,即使接收模块与发送模块没有相对,红外信号也可以靠物体反射进行传播以上程序中使用了for循环,发送了3次Sony红外编码,这是因为在Sony、RC5、RC6协议中都规定编码要发送3次IRremote库还可以使用其他函数来发送不同编码的红外信号,如使用sendNEC( )发送NEC编码的红外信号,使用sendPanasonic( )发送松下编码的红外信号等除了这些常见标准协议外,IRremote库还支持发送自定义的原始编码17.3红外发射这样便可模拟红外遥控器发射的经过编码的红外信 17.4 本章小结本章介绍了一种目前使用最广泛的通信和遥控手段――红外通信,其因体积小、功耗低、成本低等特点,被广泛应用于各个领域本章分别从IRremote类库成员函数、红外接收、红外发射三个方面对其进行了一些简单介绍17.4 本章小结本章介绍了一种目前使用最广泛的通信和遥控手 Thank You!Thank You! 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.