版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
控制功能-紅外控制一、 用途我們家里很多電器都是紅外線控制,比如:空調(diào)、電視、機(jī)頂盒、風(fēng)扇等等,而每個(gè)電器都會配一個(gè)遙控器,一大堆遙控器放在面前,實(shí)在麻煩,如果能用手機(jī)控制紅外線,就同時(shí)控制所有電器了。二、 原理紅外接收頭的引腳與連線,紅外接收頭有三個(gè)引腳如下圖:D為數(shù)據(jù)輸出,GND為電源地,VCC為電源正要想對某一遙控器進(jìn)行解碼必須要了解該遙控器的編碼方式,本節(jié)中使用的遙控器的編碼方式為:NEC協(xié)議。下面就介紹一下NEC協(xié)議:?NEC協(xié)議介紹:特點(diǎn):(1)8位地址位,8位命令位(2) 為了可靠性地址位和命令位被傳輸兩次(3) 脈沖位置調(diào)制(4) 載波頻率38khz(5)每一位的時(shí)間為1.125ms或2.25ms?邏輯0和1的定義如下圖:
?按鍵按下立刻松開的發(fā)射脈沖:10011010100110100110100001101000■IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIILSBMSBLSBMSBLSBMS&LSB<45ms>:^Address-< ?按鍵按下立刻松開的發(fā)射脈沖:10011010100110100110100001101000■IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIILSBMSBLSBMSBLSBMS&LSB<45ms>:^Address-< Address?[^—Command?1?Command ?MS&上面的圖片顯示了NEC的協(xié)議典型的脈沖序列。注意:這是首先發(fā)送LSB(最低位)的協(xié)議。在上面的脈沖傳輸?shù)牡刂窞?x59命令為0x16。一個(gè)消息是由一個(gè)9ms的高電平開始,隨后有一個(gè)4.5ms的低電平,(這兩段電平組成引導(dǎo)碼)然后由地址碼和命令碼。地址和命令傳輸兩次。第二次所有位都取反,可用于對所收到的消息中的確認(rèn)使用??倐鬏敃r(shí)間是恒定的,因?yàn)槊恳稽c(diǎn)與它取反長度重復(fù)。如果你不感興趣,你可以忽略這個(gè)可靠性取反,也可以擴(kuò)大地址和命令,以每16位!?按鍵按下一段時(shí)間才松開的發(fā)射脈沖:一個(gè)命令發(fā)送一次,即使在遙控器上的按鍵仍然按下。當(dāng)按鍵一直按下時(shí),第一個(gè)110ms的脈沖與上圖一樣,之后每110ms重復(fù)代碼傳輸一次。這個(gè)重復(fù)代碼是由一個(gè)9ms的高電平脈沖和一個(gè)2.25ms低電平和560q的高電平組成。?重復(fù)脈沖2.25m$注意:脈沖波形進(jìn)入一體化接收頭以后,因?yàn)橐惑w化接收頭里要進(jìn)行解碼、信號放大和整形,故要注意在沒有紅外信號時(shí),其輸出端為高電平,有信號時(shí)為低電平,故其輸出信號電平正好和發(fā)射端相反。接收端脈沖大家可以通過示波器看到,結(jié)合看到的波形理解程序。三、器材介紹我們需要的器材包括:紅外線模塊、I/O擴(kuò)展板、arduino控制板、風(fēng)扇模塊、LED模塊。四、實(shí)例我們首先需要進(jìn)行遙控器的紅外解碼:利用Arduino自帶的IRremote庫,進(jìn)行解碼,連接如下:代碼如下:#inelude<IRremote.h>intRECV_PIN=7;//紅外接收頭連接到數(shù)字口7IRrecvirrecv(RECV_PIN);decode^resultsresults;voidsetup(){Serial.begin(9600);irrecv.enablelRInf);}voidloop(){if(irrecv.decode(&results)){Serial.printlnfresults.value,HEX);irrecv.resume();}}這樣按鍵的紅外編碼就以16進(jìn)制的形式返回到串口監(jiān)視器中。經(jīng)過解碼,需要用到的按鍵編碼值以及相應(yīng)的功能如下:遙控器字符鍵值遙控器字符鍵值紅色按鈕OxffOO1OxeflOVOL+OxfeOl2OxeellFUNC/STOPOxfdO230xedl2左2個(gè)三角0xfb0440xebl4暫停鍵0xfa0550xeal5右2個(gè)三角0xf90660xe916向下三角0xf70870xe718VOL-0xf60980xe619向上二角OxfSOa90xe51aEQ0xf20d00xf30cST/REPTOxflOe我們獲取了遙控器的鍵值之后就可以繼續(xù)下面的操作了。在下面的例子中我們將用紅外來控制蜂鳴器和LED燈,示例代碼如下#defineBUZZER9〃蜂鳴器接數(shù)字119#defineLED_RED7〃紅色LED燈接數(shù)字II7#defineIR_IN8〃紅外接收連接到接I丨8intPulse_Width=O;//存儲脈寬intir_code=OxOO;〃命令值voidtimerljnit(void)//定時(shí)器初始化函數(shù){TCCR1A=0X00;TCCR1B=0X05;//給定時(shí)器時(shí)鐘源TCCR1C=0X00;TCNT1=0X00;TIMSKl=0X00;〃禁止定時(shí)器溢出中斷}voidremote_deaI(void)//執(zhí)行譯碼結(jié)果函數(shù){switch(ir_code){caseOxffOO://停止digitalWrite(LED_RED,LOW);〃紅燈不亮digitalWrite(BUZZER,LOW);//蜂鳴器不響break;caseOxfe01://VOL+digitalWrite(LED_RED,HIGH);//紅燈亮break;case0xf609://VOL-digitalWrite(BUZZER,HIGH);//蜂鳴器響break;}}charlogic_value()//判斷邏輯值“0”和T子函數(shù){while(!(digitalRead(8)));〃低等待Pulse_Width二TCNT1;TCNT1=O;if(Pulse_Width>=7&&Pulse_Width<=10)//低電平560us{while(digitalRead(8));〃是高就等待Pulse_Width=TCNTl;TCNT1=O;if(Pulse_Width>=7&&Pulse_Width<=10)//接著高電平560usreturn0;elseif(Pulse_Width>=25&&Pulse_Width<=27)//接著高電平1.7msreturn1;}return-1;}voidpulse_deal()〃接收地址碼和命令碼脈沖函數(shù){inti;〃執(zhí)行8個(gè)0for(i=0;i<&i++){if(logic_value()!=0)〃不是0return;}〃執(zhí)行6個(gè)1for(i=0;i<6;i++){if(logic_value()!=1)〃不是1return;}〃執(zhí)行1個(gè)0if(logic_value()!=0)//不是0return;〃執(zhí)行1個(gè)1if(logic_value()!=1)//不是1return;〃解析遙控器編碼中的command指令ir_code=OxOO;〃清零for(i=0;i<16;i++){if(logic_value()==1){ir_code|=(l?i);}}}voidremote_decode(void)//譯碼函數(shù){TCNTl=0X00;whilefdigitalRead(8))//是高就等待{if(TCNTl>=1563)〃當(dāng)高電平持續(xù)時(shí)間超過100ms,表明此時(shí)沒有按鍵按下{ir_code=OxffOO;return;}}〃如果高電平持續(xù)時(shí)間不超過100msTCNTl=0X00;while)SfdigitalRead(8)));〃低等待Pulse_Width二TCNT1;TCNT1=O;if(Pulse_Width>=140&&Pulse_Width<=141)//9ms{while(digitalRead(8));//是高就等待Pulse_Width=TCNTl;TCNT1=O;if(Pulse_Width>=68&&Pulse_Width<=72)//4.5ms{pulse_deal();return;}elseif(Pulse_Width>=34&&Pulse_Width<=36)//2.25ms{while(!(digitalRead(8)));//低等待Pulse_Width=TCNTl;TCNT1=O;if(Pulse_Width>=7&&Pulse_Width<=10)//560usreturn;}}}voidsetup(){unsignedchari;pinMode(LED_RED,OUTPUT);//設(shè)置與紅燈連接的引腳為輸出模式pinMode(BUZZER,OUTPUT);//設(shè)置與蜂鳴器連接的引腳為輸出模式pinMode(IRJNJNPUT);//設(shè)置紅外接收引腳為輸入}voidloop(){timerl_init();//定時(shí)器初始化while(l){remote_decode();〃譯碼remote
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度高級廚師定制化雇傭服務(wù)合同4篇
- 二零二五年度新材料研發(fā)代理傭金服務(wù)協(xié)議3篇
- 二零二四年學(xué)生公寓床具定制采購及售后服務(wù)協(xié)議3篇
- 2025年度木屋室內(nèi)外裝飾裝修合同4篇
- 2025年度高空電力線路檢修外架爬架租賃協(xié)議3篇
- 2025年度超限貨物安全運(yùn)輸管理協(xié)議合同4篇
- 二零二五版文化產(chǎn)業(yè)園運(yùn)營管理合同4篇
- 二零二五年度智能農(nóng)業(yè)大棚租賃及技術(shù)支持合同4篇
- 二零二四年度信用證融資服務(wù)合同范本3篇
- 2025年度餐飲代銷合同模板4篇
- 開展課外讀物負(fù)面清單管理的具體實(shí)施舉措方案
- 2025年云南中煙工業(yè)限責(zé)任公司招聘420人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025-2030年中國洗衣液市場未來發(fā)展趨勢及前景調(diào)研分析報(bào)告
- 2024解析:第三章物態(tài)變化-基礎(chǔ)練(解析版)
- 2023年江蘇省南京市中考化學(xué)真題
- 供電副所長述職報(bào)告
- 校園欺凌問題成因及對策分析研究論文
- 技術(shù)支持資料投標(biāo)書
- 老年人意外事件與與預(yù)防
- 預(yù)防艾滋病、梅毒和乙肝母嬰傳播轉(zhuǎn)介服務(wù)制度
- 《高速鐵路客運(yùn)安全與應(yīng)急處理》課程標(biāo)準(zhǔn)
評論
0/150
提交評論