版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
控制功能-紅外控制一、用途我們家里很多電器都是紅外線控制,比如:空調(diào)、電視、機頂盒、風(fēng)扇等等,而每個電器都會配一個遙控器,一大堆遙控器放在面前,實在麻煩,如果能用手機控制紅外線,就同時控制所有電器了。二、原理紅外接收頭的引腳與連線,紅外接收頭有三個引腳如下圖:D為數(shù)據(jù)輸出,GND為電源地,VCC為電源正要想對某一遙控器進(jìn)行解碼必須要了解該遙控器的編碼方式,本節(jié)中使用的遙控器的編碼方式為:NEC協(xié)議。下面就介紹一下NEC協(xié)議:?NEC協(xié)議介紹:特點:(1)8位地址位,8位命令位(2)為了可靠性地址位和命令位被傳輸兩次(3)脈沖位置調(diào)制(4)載波頻率38khz(5)每一位的時間為1.125ms或2.25ms?邏輯0和1的定義如下圖:?按鍵按下立刻松開的發(fā)射脈沖:10011010100110100110100001101000lllllllllllllllllllllllllllllllllLS8MSELSBMS8LS8MS&LSBMSg?45ms?VAddfess.??:Address-:v—CommandCommand?:上面的圖片顯示了NEC的協(xié)議典型的脈沖序列。注意:這是首先發(fā)送LSB(最低位)的協(xié)議。在上面的脈沖傳輸?shù)牡刂窞?x59命令為0x16。一個消息是由一個9ms的高電平開始,隨后有一個4.5ms的低電平,(這兩段電平組成引導(dǎo)碼)然后由地址碼和命令碼。地址和命令傳輸兩次。第二次所有位都取反,可用于對所收到的消息中的確認(rèn)使用??倐鬏敃r間是恒定的,因為每一點與它取反長度重復(fù)。如果你不感興趣,你可以忽略這個可靠性取反,也可以擴大地址和命令,以每16位!?按鍵按下一段時間才松開的發(fā)射脈沖:扣110m$110ms110ms?110m$?lllllllI_LJ_ILCommandRepeatRepeatRepeatRepeat一個命令發(fā)送一次,即使在遙控器上的按鍵仍然按下。當(dāng)按鍵一直按下時,第一個110ms的脈沖與上圖一樣,之后每110ms重復(fù)代碼傳輸一次。這個重復(fù)代碼是由一個9ms的高電平脈沖和一個2.25ms低電平和560四的高電平組成。?重復(fù)脈沖2.25m$注意:脈沖波形進(jìn)入一體化接收頭以后,因為一體化接收頭里要進(jìn)行解碼、信號放大和整形,故要注意在沒有紅外信號時,其輸出端為高電平,有信號時為低電平,故其輸出信號電平正好和發(fā)射端相反。接收端脈沖大家可以通過示波器看到,結(jié)合看到的波形理解程序。三、器材介紹我們需要的器材包括:紅外線模塊、I/O擴展板、arduino控制板、風(fēng)扇模塊、LED模塊。四、實例我們首先需要進(jìn)行遙控器的紅外解碼:利用Arduino自帶的IRremote庫,進(jìn)行解碼,連接如下:代碼如下:^include<IRremote.h>intRECV_PIN=7;〃紅外接收頭連接到數(shù)字口7IRrecvirrecv(RECV_PIN);decoderesultsresults;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個三角0xfb0440xebl4暫停鍵OxfaOS50xeal5右2個三角0xf90660xe916向下三角0xf70870xe718VOL-0xf60980xe619向上三角0xf50a9OxeSlaEQ0xf20d00xf30cST/REPTOxflOe我們獲取了遙控器的鍵值之后就可以繼續(xù)下面的操作了。在下面的例子中我們將用紅外來控制蜂鳴器和LED燈,示例代碼如下#defineBUZZER9〃蜂鳴器接數(shù)字119#defineLED_RED7〃紅色LED燈接數(shù)字II7#defineIRJN8〃紅外接收連接到接II8intPulse_Width=O;//存儲脈寬intir_code=OxOO;〃命令值voidtimerljnit(void)//定時器初始化函數(shù){TCCR1A=0X00;TCCR1B=0X05;//給定時器時鐘源TCCR1C=0X00;TCNT1=0X00;TIMSKl=0X00;〃禁止定時器溢出中斷}voidremote_deal(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”和“1”子函數(shù)(while(!(digitalRead(8)));//低等待Pulse_Width=TCNTl;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)//接著高電平l.7msreturn1;}return-1;}voidpulse_deal()〃接收地址碼和命令碼脈沖函數(shù)(inti;〃執(zhí)行8個。for(i=0;i<8;i++)(if(logic_value()!=0)〃不是0return;}〃執(zhí)行6個1for(i=0;i<6;i++)(if(logic_value()!=1)〃不是1return;}〃執(zhí)行1個0if(logic_value()!=0)〃不是0return;〃執(zhí)行1個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⑻)〃是高就等待(if(TCNTl>=1563)〃當(dāng)高電平持續(xù)時間超過100ms,表明此時沒有按鍵按下(ir_code=OxffOO;return;}}〃如果高電平持續(xù)時間不超過100msTCNTl=0X00;while)SfdigitalRead(8)));〃低等待Pulse_Width=TCNTl;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(IR」N,INPUT);//設(shè)置紅外接收引腳為輸入}voidloop()(timerl_init();//定時器初始化while(l)(remote_decode();〃譯碼remote_deal();
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 開發(fā)區(qū)安全培訓(xùn)制度
- 團(tuán)干部教育培訓(xùn)制度
- 醫(yī)院及科室培訓(xùn)制度
- 員工培訓(xùn)講師管理制度
- 素質(zhì)課培訓(xùn)機構(gòu)請假制度
- 家政人員培訓(xùn)上崗制度
- 語言培訓(xùn)學(xué)校規(guī)章制度
- 建管處培訓(xùn)制度匯編
- 藝術(shù)培訓(xùn)老師考核制度
- 培訓(xùn)機構(gòu)消防安全責(zé)任制度
- 2025房屋買賣合同范本(下載)
- 質(zhì)檢員班組級安全培訓(xùn)課件
- 蓖麻醇酸鋅復(fù)合除味劑的制備及其除臭效能研究
- 海岸帶調(diào)查技術(shù)規(guī)程 國家海洋局908專項辦公室編
- 危重病人的院前急救課件
- 礦井突水機理研究-洞察及研究
- 2025年九江職業(yè)大學(xué)單招《職業(yè)適應(yīng)性測試》模擬試題(基礎(chǔ)題)附答案詳解
- 防御性駕駛安全培訓(xùn)內(nèi)容
- 鉆探原始班報表試行版
- 青年積分培養(yǎng)管理辦法
- 市級應(yīng)急廣播管理制度
評論
0/150
提交評論