目標:紅外遙控原理的理解1.紅外遙控簡介
2.紅外遙控原理
紅外遙控通訊系統一般由紅外發射裝置和紅外置收裝置兩大部分組成。
如何區分三個引腳各個作用呢?接受裝置有一條豎直的凸出槓,那條槓對應的腳是電源負(gnd),左邊是資料輸出(vout),右邊是電源正(vdd)
發射端發出高電平,接受端是顯示低電平。當發射端發出低電平,接收端是顯示高電平。3.紅外遙控內部結構
內部結構
發射部分:左側是發射端部分,當發射控制輸出高電平時,三極體q1不導通,紅外發射管l1不會發射紅外訊號;當發射控制輸出低電平的時候,通過三極體q1導通讓l1發出紅外光。
接收部分:r4是乙個電位器,也就是「傳說」中的滑動變阻器。我們通過調整這個滑動變阻器給lm393的2腳乙個閾值電壓,這個電壓值大小可以根據實際情況來確定。而紅外光敏二極體l2收到紅外光的時候,會產生電流,並且隨著紅外光的從弱變強,電流會從小變大。當沒有紅外光或者說紅外光很弱的時候,3腳的電壓就會接近vcc,如果3腳比2腳的電壓高的話,通過lm393比較器後,接收檢測引腳輸出乙個高電平。當隨著光強變大,電流變大,3腳的電壓值等於vcc-i*r3,電壓就會越來越小,當小到一定程度,比2腳的電壓還小的時候,接收檢測引腳就會變為低電平。
有關應用:4.紅外發射原理
除錯
原始訊號就是我們要傳送的乙個資料「0」位或者一位資料「1」位,而所謂38k載波就是頻率為38k的方波訊號,調製後訊號就是最終我們發射出去的波形。我們使用原始訊號來控制38k載波,當訊號是資料「0」的時候,38k載波毫無保留的全部傳送出去,當訊號是資料「1」的時候,不傳送任何載波訊號。接收部分
正常的通訊來講,接收端要首先對訊號通過監測、放大、濾波、解調等等一系列電路處理,然後輸出基帶訊號。但是紅外通訊的一體化接收頭hs0038b,已經把這些電路全部整合到一起了,我們只需要把這個電路接上去,就可以直接輸出我們所要的基帶訊號了由於紅外置收頭內部放大器的增益很大,很容易引起干擾,因此在接收頭供電引腳上必須加上濾波電容,官方手冊給的值是4.7uf,我們這裡直接用的10uf,手冊裡還要求在供電引腳和電源之間串聯100歐的電阻,進一步降低干擾。圖中所示的電路,用來接收圖16-5電路傳送出來的波形,當hs0038監測到有38k的紅外訊號時,就會在out引腳輸出低電平,當沒有38k的時候,out引腳就會輸出高電平。那我們把out引腳接到微控制器的io口上,通過程式設計,就可以獲取紅外通訊發過來的資料了。5.nec協議資料格式
此時out腳的輸出資料又變成了基帶訊號,那麼我們接收到的基帶訊號如何判斷是什麼資料呢?遵循什麼規則來判斷呢?紅外線使用nec協議。nec協議的資料格式是:引導碼,使用者碼,使用者反碼,鍵資料碼,鍵資料反碼,最後加乙個停止位,停止位主要起隔離作用,一般不會進行判斷。協議的資料位就是上面加粗的部分,共4個位元組32位。第乙個位元組是使用者碼,第二個位元組可能也是使用者碼,或者是使用者碼的反碼,具體由生產商決定,第三個位元組就是當前按鍵的鍵資料碼,而第四個位元組是鍵資料碼的反碼,可用於對資料的糾錯。對於我們的遙控器來說,不同的按鍵,就是鍵碼和鍵碼反碼的區分,使用者碼是一樣的。這樣我們就可以通過微控制器的程式,把當前的按鍵的鍵碼給解出來。1、接收管接p3.2(外部中斷0埠)或p3.3(外部中斷1埠),寫程式呼叫外部中斷,觸發方式為下降沿(it1=1),設定變數a,外部中斷服務函式寫a=5,主函式設定顯示裝置顯示變數a;實驗結果:按下遙控器任意鍵,顯示「5」,紅外遙控系統正常,接收管收到紅外訊號並觸發外部中斷。
2、接上面程式,設定變數b,外部中斷服務函式寫b++(累加),主函式設定顯示裝置顯示變數b的值;
實驗結果:顯示資料最少為34,大多顯示36,如果鬆開慢一些顯示值更高,說明紅外遙控器按鍵按下1次,最少觸發34次外部中斷。
3、使用示波器觀察,可以明顯看到波形有引導碼1位,2個8位的位址碼(大多是0x00和0xff),2個8位的按鍵碼,1個結束碼。所有都是電平先0後1(接收頭輸出波形),除引導碼和結束碼外,電平為高=1的時間長短決定資料是0還是1。結果和實驗2中測試的相同,完整的全碼為34個資料位。
微控制器學習筆記 紅外測試
一 原理圖 上面為紅外置受原理圖,下面為紅外發射原理圖 引腳 發射ir t p3.5 接收ir r p3.6 原理 當紅外置收感測器接收到38khz的紅外脈衝時,返回乙個低電平 二 設計目標和思路 目標 需要兩個電路板,乙個電路板用於傳送,另乙個用於接收。按下key1每100毫秒傳送紅外訊號一次。接...
微控制器小白學習之路(四十) DAC轉換編碼
目標 da轉換編碼 狀態圖count和timer1在同乙個中斷中一起自加,數值相同。count加到100後變為0並且value自加1。timer1在自加到1000後變成0,這時候一週期已經結束了,但此時的value才10。想要value到1000,那麼timer1起碼要到1000 100才行。就是v...
51微控制器學習之路(2)
指令編碼格式及分類 一條指令表示計算機所完成的某種操作。它通常由操作碼和運算元兩部分組成。例如 mov a,r1 本系統有下列三種指令編碼格式 1 單位元組指令 49條 2 雙位元組指令 46條 3 三位元組指令 16條 例如 一位元組指令空操作nop的編碼格式為 兩位元組指令mov a,40h的編...