關于紅外線接收的一點思路 我現(xiàn)在在做電視機紅外線接受,發(fā)射器,看了一些書,書上說信號被調(diào)制在38khz的調(diào)制信號上,但我通過一顆紅外接收管加兩級放大后看紅外線波形,示波器要打到10ms檔上才能看到完整波形,照書上說的話應該打到50us檔上就能看到波形了,而且這個波形像梯形波,請問這是怎么一回是,我用的紅外線源就是長虹電視機的遙控器,這樣的話我的接收程序怎么寫呢?
你不用管他怎么調(diào)制的,你只需要用一個接收頭就可以了,出來的就是方波,根據(jù)兩個下降沿來判斷信號就行了(空閑狀態(tài)為高電平),我當初用示波器觀察了一天才了解是怎么回事
那如果有人一直按著遙控器,單片機不是會當一個信號并記錄下來,而且我用的是pic16c57的片子,沒有中斷的,兩個下降沿的時常如何判斷,而且如何確定一個信號已經(jīng)結束了呢,
如果你沒做過紅外遙控接受,建議你先用帶中斷的片子來搞,用57是有一定難度的
看了你寫的紅外線接收的程序,有點問題 你寫的接收程序第二條就用goto轉跳到rf1,而在rf1上用了retlw 0這個指令,但這個指令不是要使用call指令返回時才用的嗎,如果goto指令用了retlw 0,那返回到哪里去, 這個和遙控器使用的芯片有關,你可以了解一下有關這個遙控器按鍵的定義,也可用示波器觀察。最好你先寫一段程序來讀碼,觀察一下按鍵定義和規(guī)律。
如果要求不高的話可以用紅外的編碼、解碼芯片 如果想要誤碼率小的話最好自己編發(fā)射和接收(再加上解碼)的程序
1.從紅外線發(fā)射出來的是什么?接收倒的又是什么?一些高低電平嗎? 2.我們怎么樣來對這些進行解碼?所謂的碼是什么代碼?是0.1碼嗎?還是什么? 問題好多,一切在于沒有經(jīng)驗,謝謝大家?guī)兔饣蟆?BR>
你學過高頻嗎?學過會容易理解一點 紅外傳輸一般分為兩種: 1。有載波:就是把基帶信號(就是“0”,“1”)調(diào)制到38k的載波上去,由紅外發(fā)光管發(fā)射(同發(fā)光二極管)出去; 然后在接收端用紅外光敏二極管(或三極管)或者紅外一體化接收頭接收。 用光敏二極管或三極管接收需要用程序或ic(如:cx20106等)解調(diào)。然后再對基帶信號進行處理。這種方法主要用于載波需要有多種頻率的場合。 用一體化接收頭的靈敏度比較高,體積相對比較小,內(nèi)部集成了38k解調(diào)、低通濾波和其他一些抗干擾電路。這種接收頭使用比較簡單,不過據(jù)我使用過的情況來看,靈敏度越高抗干擾性能就越差,常常伴有脈沖干擾,用程序還是可以解決的。 基帶信號最好使用編碼、調(diào)整占空比等以加強抗干擾性能。
2。直接用0,1信號發(fā)送:在距離比較近(cm級別),環(huán)境干擾比較小的情況下使用。 我的想法是直接將遙控器的信號經(jīng)過兩級放大,是三極管放大后輸出,但我現(xiàn)在就是不知道,38khz的信號如何記入單片機,我想不用解碼芯片
好呀,發(fā)射一個9013就夠了,假如買不到距離不夠而且買不到大功率發(fā)射管的話可以把兩個發(fā)射管串聯(lián)起來。
為什么要把38k信號輸入單片機呢?你用紅外光敏三極管接收?成本倒是低了好多。工藝要求就比較高了。 |