當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 工業(yè)控制
[導(dǎo)讀]在生活中,我們常用到紅外線控制各類電器,如彩電、空調(diào)、電風(fēng)扇等,為我們帶來(lái)較多的方便,但有時(shí)我們?nèi)愿械讲环奖?。如看完電視后,用遙控器只能關(guān)掉電視主電源,電視仍處于待機(jī)狀態(tài),使用者還得走到電視跟前,按下

在生活中,我們常用到紅外線控制各類電器,如彩電、空調(diào)、電風(fēng)扇等,為我們帶來(lái)較多的方便,但有時(shí)我們?nèi)愿械讲环奖?。如看完電視后,用遙控器只能關(guān)掉電視主電源,電視仍處于待機(jī)狀態(tài),使用者還得走到電視跟前,按下電視電源開(kāi)關(guān)方能放心。若想看電視,還得動(dòng)身開(kāi)電視,顯得很麻煩,尤其是冬天躺在床上看電視,上上下下,深感不便。本文以利用紅外遙控器來(lái)遙控風(fēng)扇的制作方法為例(可任選一只紅外線遙控器,能調(diào)速,軟件稍作改變,可增加定時(shí)功能等),來(lái)介紹紅外線接收控制器的制作方法,如果制作電視交流電源的開(kāi)、關(guān)控制器,可與電視共用一只遙控器,制作也較簡(jiǎn)單些。

制作思路

     紅外遙控發(fā)射器是利用紅外線作載體傳送信息的,發(fā)射周期不等的經(jīng)過(guò)調(diào)制后串行碼,該串行碼一般由引導(dǎo)碼、用戶識(shí)別碼、操作碼組成。經(jīng)紅外接收頭解碼后得到一串周期不等的矩形波,如示意圖1。

     不同型號(hào)的遙控發(fā)射器的波形寬度不同,即周期T1、T2……不同,在不知手頭遙控發(fā)射器的波形周期的情況下,首先要制作一個(gè)檢測(cè)紅外線周期的工具。根據(jù)測(cè)得的周期規(guī)律來(lái)制作紅外線接收控制器。

制作方法

     檢測(cè)紅外周期的器件制作,見(jiàn)圖2。

    當(dāng)紅外接收頭沒(méi)有接收到發(fā)射器發(fā)送來(lái)的紅外線,其輸出端輸出高電平(約+5V)。當(dāng)接收到紅外線,輸出端電平變低,送到單片機(jī)AT89C2051的外部中斷1口即INT1,使其發(fā)生中斷而進(jìn)入中斷服務(wù):?jiǎn)?dòng)定時(shí)器1并開(kāi)始計(jì)數(shù),相當(dāng)于在圖1的A點(diǎn),1個(gè)周期后即C點(diǎn),單片機(jī)第二次中斷,關(guān)定時(shí)器1,記下周期T1(實(shí)際上只記下TH1的數(shù)值,TL1的值可以丟棄),然后清TH1、TL1,再啟動(dòng)定時(shí)器1重新計(jì)數(shù),第二個(gè)周期完后,同樣會(huì)引起單片機(jī)發(fā)生中斷,再記下周期T2……,如此記下40-50個(gè)周期(一般紅外編碼為4字節(jié),即32BIT,之前還有引導(dǎo)碼,又因接收到的紅外數(shù)據(jù)不一定是從引導(dǎo)碼開(kāi)始,要分析一次完整的串行碼,應(yīng)盡可能多記下紅外矩形波周期數(shù)),接收完后,通過(guò)按輕觸開(kāi)關(guān)將各記下的各周期的TH1在數(shù)碼管顯示出來(lái)以作分析(每按一次輕觸開(kāi)關(guān),顯示下一個(gè)周期數(shù))。

編程方法

在main()中開(kāi)中斷,啟動(dòng)定時(shí)器1,即EA=1; EX1=1; IT1=1; TR1=1;
 在外部中斷1的服務(wù)程序中編寫(xiě)如下語(yǔ)名:
#define CNT 50//預(yù)測(cè)50個(gè)紅外線周期
DATA Byte value_h[CNT];//記錄周期的變量(數(shù)組)
DATA Byte count=0;//接收到的周期數(shù)
void int1(void) interrupt 2
{
 if(TH1==TL1&&TL1==0)  //判斷是否是第一次接收到紅外數(shù)據(jù)
   { 
 TR1=1;
 } else{
 TR1=0;  value_h[count]=TH1;     TH1=TL1=0; TR1=1;  count++;
      if(count==CNT)
      {
         EX1=0;  count=0;      
      } 
  }
}
 假設(shè)接收到的TH的數(shù)值為:
30,50,  04,08,08,08,  04,04,04,04, 04,08,08,08,  04,04,04,04, 08,04,04,08,  04,04,04,04,04,  04,08,08,04,  08,08,08,08,3f,50----
 稍作分析可知,表示高低電平的有效數(shù)為:04,08。若將04定作低電平,08定作高電平,舍棄其他數(shù)據(jù),得到4字節(jié)數(shù)據(jù)即:01110000,01110000 ,10010000,01101111。轉(zhuǎn)為十六進(jìn)制后得:70h,70h,90h,6fh,至此得到遙控發(fā)射器剛才按下的鍵值碼,用同樣的方法可以測(cè)得其他鍵鍵值碼。假設(shè)有:
70h,70h,0x90,0x6f,    //0鍵
70h,70h,  0x00,0xff,  //1鍵
……
70h,70h, 0xd0,0x2f    //power 鍵
 根據(jù)以上數(shù)據(jù)分析得,每鍵碼為4字節(jié),前2字節(jié)固定不變,為用戶識(shí)別碼,后2字節(jié)均不同,是操作碼。將遙控器上的各鍵鍵值碼測(cè)出后,根據(jù)這些數(shù)據(jù)可以根據(jù)制作需要進(jìn)行編程了。因鍵值碼為4字節(jié)太長(zhǎng),不利于編程,需要將各鍵鍵值轉(zhuǎn)為相對(duì)應(yīng)的1字節(jié)的數(shù)據(jù),如:70h,70h,0x90,0x6f,對(duì)應(yīng)于0 ,70h,70h,  0x00,0xff對(duì)應(yīng)于1……
 轉(zhuǎn)換方法:
 建立一個(gè)數(shù)組,將上述測(cè)得的各鍵碼按順序放入數(shù)組中(去掉用戶識(shí)別碼)
code Byte arr[][2]=
{
  0x90,0x6f,  //0,盡可能按鍵0、鍵1……的先后順序放,以符合習(xí)慣
  0x00,0xff,  //1
 ……
  0x10,0xef,  //9
  0xd0,0x2f   //power 13
};
 在接收紅外線的外部中斷1函數(shù)中編寫(xiě)如下的鍵碼轉(zhuǎn)換語(yǔ)句:
DATA Byte arrtmp[4];    
DATA Byte Keytmp;  //轉(zhuǎn)換后的鍵值寄存變量
DATA Byte Keyval=NOKEY; 
bit KeyOk;// 鍵值轉(zhuǎn)換完成與否的標(biāo)志
bit d_Ok;//接收到一個(gè)完整的鍵碼標(biāo)志
void Ex_int(void) interrupt 2
{
 Byte i;
 Byte (*p)[2]; 
  ……
  if(d_Ok)    //若接收到完整的鍵碼
{
     d_Ok=0;  //清除
     if(arrtmp[0]==0x70&&arrtmp[1] 
        ==0x70){  //鍵碼轉(zhuǎn)換
        for(p=arr,i=0;i<14;i++,p++)
 { if(arrtmp[2]==*(*p+0)&&arrtmp[3]
        ==*(*p+1))
 {   Keytmp=i;  KeyOk=1;   //鍵值
 轉(zhuǎn)換成功標(biāo)志
            break;
           } else {Keytmp=NOKEY; }  //未
       接收到完整的鍵值
        }
     }else {  Keytmp=NOKEY; }   
  }       
}
 經(jīng)過(guò)轉(zhuǎn)換后的Keytmp為0、1、2……的整數(shù),然后再編寫(xiě)主函數(shù)、調(diào)速函數(shù)(參源程序),來(lái)進(jìn)行電風(fēng)扇調(diào)速。
 有關(guān)電路的一些解釋:?jiǎn)纹瑱C(jī)U1(AT89C2051)P37腳輸出高低電平通過(guò)R13控制光耦可控硅MOC3041(參數(shù)可在《電子制作》網(wǎng)站查找)通斷,通過(guò)控制其通斷時(shí)間比來(lái)達(dá)到電風(fēng)扇調(diào)速。
 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉