版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Arduino技術(shù)及應(yīng)用第17章 紅外遙控Arduino技術(shù)及應(yīng)用第17章 紅外遙控目錄IRremote類庫成員函數(shù)紅外接收紅外發(fā)射17.2 17.117.3目錄IRremote類庫成員函數(shù)紅外接收紅外發(fā)射17.2 1紅外遙控總述Arduino可以使用的無線模塊很多,驅(qū)動方式各有不同。本章將要介紹一種最常用、成本最低的無線通信方式紅外通信。紅外通信是一種利用紅外光編碼進行數(shù)據(jù)傳輸?shù)臒o線通信方式,是目前使用最廣泛的一種通信和遙控手段。由于紅外線遙控裝置具有體積小、功耗低、成本低等特點,因而被廣泛應(yīng)用于各個領(lǐng)域。生活中常見的電視機遙控器和空調(diào)遙控器,均使用紅外線遙控。紅外遙控總述Arduino可以
2、使用的無線模塊很多,驅(qū)動方式各17.1 IRremote類庫成員函數(shù)1. IRrecv 類IRrecv類可用于接收紅外信號并對其解碼。在使用該類之前,需要實例化一個該類的對象。其成員函數(shù)如下。(1)IRrecv( )功能:IRrecv類的構(gòu)造函數(shù)。可用于指定紅外一體化接收頭的連接引腳。語法:IRrecvobject(recvpin)參數(shù):object,用戶自定義的對象名。recvpin,連接到紅外一體化接收頭的Arduino引腳編號。17.1 IRremote類庫成員函數(shù)1. IRrecv 類17.1 IRremote類庫成員函數(shù)(2)enableIRIn( )功能:初始化紅外解碼。語法:IR
3、recv. enableIRIn( )參數(shù):IRrecv,個IRrecv類的對象。返回值:無。(3)decode( )功能:檢查是否接收到編碼。語法:IRrecv. decode(&results)參數(shù):IRrecv,一個IRrecv類的對象。results,一個decode_results類的對象。返回值:int型值,為0表示接收到編碼; 為1表示沒有接收到編碼。17.1 IRremote類庫成員函數(shù)(2)enableI17.1 IRremote類庫成員函數(shù)(4)resume( )功能:接收下一個編碼。語法:IRrecv.resume( )參數(shù):IRrecv,個IRrecv類的對象。返回值:
4、無。2.IRsend 類IRsend類可以對紅外信號編碼并發(fā)送。17.1 IRremote類庫成員函數(shù)(4)resume(17.1 IRremote類庫成員函數(shù)(1)IRsend( )功能:IRSend類的構(gòu)造函數(shù)。語法:IRsendobject( )參數(shù):object,一個IRsend類的對象。(2)sendNEC( )功能:以NEC編碼格式發(fā)送指定值。語法:IRsend. sendNEC(data,nbits)參數(shù):IRsend,一個IRsend類的對象。data,發(fā)送的編碼值。nbits,編碼位數(shù)。返回值:無。17.1 IRremote類庫成員函數(shù)(1)IRsend(17.1 IRrem
5、ote類庫成員函數(shù)(3)sendSony( )功能:以Sony編碼格式發(fā)送指定值。語法:Irsend.sendSony(data,nbits)參數(shù):IRsend,一個IRsend類的對象。data,發(fā)送的編碼值。nbits,編碼位數(shù)。返回值:無。(4)sendRaw( )功能:發(fā)送原始紅外編碼信號。語法:IRsend. sendRaw(buf,len,hz)參數(shù):IRsend,一個IRsend類的對象。buf,存儲原始編碼的數(shù)組。len,數(shù)組長度。hz,紅外發(fā)射頻率。返回值:無。17.1 IRremote類庫成員函數(shù)(3)sendSon17.1 IRremote類庫成員函數(shù)除此之外還有如下函數(shù)
6、,用于其他常見協(xié)議的紅外信號發(fā)送:sendRC5( );sendRC6( );sendDISH( );sendSharp( );sendPanasonic( );sendJVC( );在紅外通信中的兩端,一端進行紅外信號的編碼并發(fā)送,另一端接收紅外信號并解碼。以下示例中將使用紅外遙控器作為紅外信號的發(fā)送端,使用Arduino和一體化接收頭作為紅外信號的接收端。17.1 IRremote類庫成員函數(shù)除此之外還有如下函數(shù),17.2紅外接收要想使用遙控器來控制Arduino,首先需了解遙控器各按鍵對應(yīng)的編碼,不同的遙控器,不同的按鍵,不同的協(xié)議,都對應(yīng)著不同的編碼??赏ㄟ^IRremote的示例程序來
7、獲取遙控器發(fā)送信號的編碼。紅外信號接收端的制作只需將紅外一體化接收頭按圖17-1連人Arduino即可,示例中將紅外一體化接收頭的輸出腳連接到Arduino的11號引腳。17.2紅外接收要想使用遙控器來控制Arduino,首先需了17.2紅外接收這里使用以下程序?qū)t外信號進行解碼,可以通過選擇“文件”“示例”IRremoteIRrecvDemo菜單項找到該程序。下載好該示例程序后,使用遙控器向紅外一體化接收頭發(fā)送信號,并在串口監(jiān)視器中査看,則會看到如圖17-2所示的信息。17.2紅外接收這里使用以下程序?qū)t外信號進行解碼,可以通過17.2紅外接收遙控器的每個按鍵都對應(yīng)了不同的編碼,不同的遙控器
8、使用的編碼方式也不相同。之所以出現(xiàn)“FFFFFFFF”編碼,是因為使用的是NEC協(xié)議的遙控器,當(dāng)按住某按鍵不放開時,其會發(fā)送重復(fù)編碼“FFFFFFFF”。對于其他協(xié)議的遙控器,則會重復(fù)發(fā)送其對應(yīng)的編碼。在以上示例中,通過語句int RECV_PIN = 11;IRrecvirrecv;實例化了一個IRrecv類的紅外接收對象irreev,并將紅外接收頭引腳連接到了Arduino的11號引腳上;接著在setup( )中使用enableIRIn( )函數(shù)初始化紅外解碼功能。在loop( )中使用decode( )函數(shù)檢査是否收到編碼,并將結(jié)果存儲到decode_ results類的results對
9、象中。解碼后的結(jié)果會保存在results. value中;最后通過 resume( )函數(shù)開始接收下一個編碼。17.2紅外接收遙控器的每個按鍵都對應(yīng)了不同的編碼,不同的遙17.2紅外接收如果要使用紅外遙控器來控制Arduino上連接的設(shè)備,則只需將解碼后的結(jié)果results.value與設(shè)定功能的編碼進行比對,如果一致,便執(zhí)行相應(yīng)的功能,如在以上程序中添加如下語句:switch case 0 xFFA25D:break ; /按鍵對應(yīng)的動作 case 0 xFFE21D:break;/按鍵對應(yīng)的動作 case 0 xFF9867:break;/按鍵對應(yīng)的動作.17.2紅外接收如果要使用紅外遙控
10、器來控制Arduino上連17.3紅外發(fā)射除了使用紅外遙控器發(fā)射紅外信號外,也可以使用Arduino來發(fā)送經(jīng)過編碼的紅外信號。如圖17-3所示,只需將紅外發(fā)射管與Arduino連接即可,連接方式與普通LED類似,只要串聯(lián)一個限流電阻即可。另外,IRremote庫只能使用3號引腳作為紅外信號輸出腳。 17.3紅外發(fā)射除了使用紅外遙控器發(fā)射紅外信號外,也可以使用17.3紅外發(fā)射可以通過選擇“文件”“示例”IRremoteIRrecvDemo菜單項找到該示例程序。#includeIRsend irsend;void setup( ) Serial. begin(9600); /初始化串口通信 voi
11、d loop( ) if (Serial. read( ) ! = -1) for (int i = 0; i3; i+) irsend.sendSony(0 xa90, 12); /發(fā)送索尼電視機電源開關(guān)對應(yīng)的編碼 delay(40); 17.3紅外發(fā)射可以通過選擇“文件”“示例”IRremo17.3紅外發(fā)射這樣便可模擬紅外遙控器發(fā)射的經(jīng)過編碼的紅外信號了。雖然紅外光不可見,但可以通過手機或者電腦的攝像頭來觀察紅外LED是否發(fā)光,以便排除硬件問題。還可以使用兩塊Arduino進行紅外無線通信。在一定環(huán)境下,即使接收模塊與發(fā)送模塊沒有相對,紅外信號也可以靠物體反射進行傳播。以上程序中使用了for循環(huán),發(fā)送了3次Sony紅外編碼,這是因為在Sony、RC5、RC6協(xié)議中都規(guī)定編碼要發(fā)送3次。IRremote庫還可以使用其他函數(shù)來發(fā)送不同編碼的紅外信號,如使用sendNEC( )發(fā)送NEC編碼的紅外信號,使用sendPanasonic( )發(fā)送松下編碼的紅外信號等。除了這些常見標(biāo)準協(xié)議外,IRremote庫還支持發(fā)送自定義的原始編碼。17.3紅外
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 委托竟拍合同(標(biāo)準版)
- 2026年建筑后期維護合同
- 2025年綠色生態(tài)養(yǎng)殖項目可行性研究報告
- 2025年AI智能客服系統(tǒng)優(yōu)化項目可行性研究報告
- 2025年城市公園及綠化工程項目可行性研究報告
- 2025年垃圾焚燒發(fā)電項目建設(shè)可行性研究報告
- 紡織合同范本模板
- 海關(guān)招聘合同范本
- 產(chǎn)品包裝協(xié)議書
- 麗水市2024年浙江云和縣機關(guān)事業(yè)單位集中招聘編外用工25人筆試歷年參考題庫典型考點附帶答案詳解(3卷合一)
- GB/T 3805-2008特低電壓(ELV)限值
- GB/T 3651-2008金屬高溫導(dǎo)熱系數(shù)測量方法
- GB/T 17876-2010包裝容器塑料防盜瓶蓋
- GA/T 1567-2019城市道路交通隔離欄設(shè)置指南
- 最全《中國中鐵集團有限公司工程項目管理手冊》
- 連接器設(shè)計手冊要點
- 藥品注冊審評CDE組織機構(gòu)人員信息
- 營口水土保持規(guī)劃
- 魯迅《故鄉(xiāng)》優(yōu)秀PPT課件.ppt
- 魯迅《雪》ppt課件
- 管道(溝槽)開挖支護方案
評論
0/150
提交評論