a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 簡單穩定地感應你——紅外感應開關的創新制作

簡單穩定地感應你——紅外感應開關的創新制作

作者: 時間:2011-02-21 來源:網絡 收藏
酒店的廁所之旅
我們家族八輩貧農,生活在一個東北的小山村,雖然說沒見過什么大場面,可是好山好水的,生活倒也不錯。從小對電子制作的著迷也受到了環境的限制,很難去一趟城市,也沒見過什么新奇玩意兒。話說,在我13歲的那年,老爸朋友的兒子結婚,在城里置辦了酒席,請我們一家三口過去。人家的婚禮真是氣派,就在鐵力市中心最豪華的大酒店舉行。酒店里金碧輝煌,地面光得照人,墻上貼著大大的“喜”字。年頭久遠,記不清更多的細節,唯有一件事讓我印象深刻。菜上來了,有我最愛吃的大蝦,配上大瓶的可樂,兩眼一閉、大嘴一張,吃它個天翻地覆、死去活來。吃飽喝足,來到豪華酒店的廁所門前。廁所里也金碧輝煌,地面也光得照人,墻上貼著大大的“男”字。沒錯,就是這里了。走進去看到一排小便池,小便池并不稀奇,之前也有見過,稀奇的是小便池上面貼著標語,上寫“向前一小步,文明一大步”。更稀奇的是標語的下面有一個方形的金屬板,金屬板中間有一個黑色方形的玻璃。我一邊小便一邊研究著,我發現時不時地從黑色玻璃里面會亮起一個小紅燈。我把身體前后移動,小紅燈也跟著閃爍。當我轉身離開的時候,突然聽到“嘩嘩”的沖水聲。我馬上回來看,小紅燈又開始閃爍,我一走開它又沖水。難道黑色玻璃后面有人在看?我有點害羞,沒敢再過去研究。來到洗手臺,發現一排水龍頭竟然都沒有閥門開關,我拍了拍出水口,沒有反應。忽然發現出水口下面也有一個黑色玻璃,我把手伸過去,水就自然地流了出來。我確定黑玻璃的后面沒有人,這應該是一種感應裝置,可以感應到我的手。可它到底是如何感應的呢?洗完了手,正準備出門,又發現門旁邊的干手機。干手機的底部也有一片黑玻璃,當我把手放在下面時,一股暖風出現了。


這次豪華酒店的廁所之旅把我給震撼了,原來電器的開關可以這么智能,不用我們觸碰到它,它就可以感應到我。我的腦子開始高速運轉,想象著這項技術應用到自己家中的情景。媽媽洗菜可以不用開水龍頭,家里的電燈不用出力按就可以開關,還有家里的電視機、電風扇、奶奶的收音機都可以放上這種感應開關。把它裝在大門上,和門鈴連接,只要有人站在門口,門鈴就會響。我的小伙伴來家里找我,一定會把他們嚇一跳的。想著想著,忍不住笑出聲來。

從數字電路到

上了大學后,學校里有很多書店。在沒有發現之前,我一直在書店的電子技術專區里徘徊。那里有好多關于電子制作的書,都是我喜愛的。我最愛看的就是電子制作500例之類的書,里面的好多制作簡單又實用。某天,我突然在書中發現了紅外線感應干手機的制作實例。一下把我帶回到那一次難忘經歷——豪華酒店的廁所之旅。我要實現我少年的夢想,我要實現這個制作。接下來的日子里,我就開始研究紅外線感應干手機的原理和電路。
原來,所謂的感應開關,只是利用了人眼看不到的紅外線來感應物體。感應開關的核心元器件就是紅外反射傳感器。紅外反射傳感器包括一個紅外線發光二極管和一個紅外線光敏二極管,它們兩個都朝著一個方向,被封裝在一個塑料外殼里。使用時,紅外線發光二極管點亮,并發出一道人眼看不見的紅外光。如果傳感器的前方沒有物體,那么這道紅外光就以299792458m/s的速度(光速)消散在宇宙中。
但如果傳感器前方有不透明的物體時,紅外光就會被反射回來,會照在旁邊的紅外線光敏二極管上。紅外線光敏二極管接收到紅外光后,其輸出引腳的電阻值就會產生變化。通過判斷這個阻值的變化,它就可以感應到前方的物體,進而控制電器開關了。
了解了原理,又看到了書中的電路原理圖后,我卻產生了新的疑惑。紅外線發光二極管應該和普通二極管的驅動電路一樣,用紅外線光敏二極管加一個三極管放大接收信號來驅動繼電器不就可以了嗎?為什么還要加NE555和CD4069兩個芯片,把簡單的事情搞復雜了呢?看了后面的文章介紹才知道,原來這樣做的目的是為了防止環境光的干擾。在我們生活的環境里,處處都暗藏著紅外線。太陽是最常見的紅外線發光體,還有火光、燈光、紅外線遙控器和一些不可預知的光源。問題來了,身邊這么多紅外線光源,傳感器里的紅外線光敏二極管怎么知道哪些光是環境里的紅外光,哪些光是它鄰居發出來的紅外光呢?于是天才的工程師想到了調制解調的辦法。他們把紅外線發光二極管以某一頻率進行調制,即讓它以一定的頻率閃爍。在紅外線光敏二極管一端則設計一個電路,讓接收端可以篩選出這一頻率的紅外光源。像收音機一樣,傳感器只要以自己的頻率發射,再以自己的頻率接收就可以過濾掉其他頻率光源的干擾了。


哈哈,看過原理之后,心中暗自生起了一團烈火。然后以70km/h的速度(坐車)奔向電子市場。備齊了元器件,照著原理圖制作出了實物。不得不佩服我當時的焊接水平,用了一片小小的洞洞板,把電路制作得小巧、緊湊。不過接上電源之后,問題就來了,當我把手放在感應區域時,指示燈并沒有亮。后來發現,這是發射頻率和接收頻率不匹配導致的,因為采用的是RC電路產生頻率,簡單地說就是靠電容的充放電周期產生頻率,所以頻率很容易隨溫度變化而變化。電路的調試花了我許多時間,在沒有示波器的幫助下,光靠反復修改電阻值和電容值的測試來達到成功是多么困難的事情呀!當同學把手放在感應區,指示燈亮起的那一刻,所有調試的困苦都轉化為成就感,在同學們贊嘆的話語中成幾何性倍增了。
像電影一樣,故事到了高潮,接下來的每一步都是墜落。同學們只看到了光彩的一面,背地里它悄悄出現的問題,都成為我們私下獨處時的傷痛。在一個陽光明媚的下午,強光照進室內,感應開關受強光的影響而處在不穩定的狀態,它不斷地自行開關,而且對反射物體沒有反應。家里常用的電視機紅外線遙控器也會讓感應開關失靈。即使把它放在陰暗的角落也會出現一個討厭的問題,即當反射物就會不斷地開關,繼電器的吸合很快,好像一臺電報機。這是因為反射物體正好處在了感應區的臨界點上,也就是“感應到”和“感應不到”的分界線上,物體微微靠近或離開就會產生開關狀態的改變。沒有人會希望自己家的電燈像閃電、水龍頭像音樂噴泉吧。這些問題加在一起,讓感應開關的應用很不理想,辛辛苦苦把家里所有的電燈開關都改裝成感應的,不到一個月又被爸爸改回了傳統開關。慢慢的,對感應開關的興趣就被音控開關、延時開關的制作熱情所取代。幾星期后,我和紅外線感應開關徹底分手了。
從那之后的某一天,我開始學習。幾個月前我對單片機內置的模數轉換器(ADC)產生了興趣,不斷地探索它的妙用,DIS.MUSIC3炫彩音樂顯示器就是利用ADC來采集音頻信號的。突然有一天,我想,利用帶有ADC功能的單片機可不可以取代傳統的數字電路,而讓紅外線感應開關變得更穩定呢?在網上搜索了半天,沒有找到基于單片機的紅外線傳感器的制作。這個情況對我來說亦好亦壞,好的是如果制作成功,這將又會是我的一項創新制作;壞的是我沒有任何可以參考的資料,甚至都不能保證我的想法是否可行。我學習單片機的過程好像是一條正弦波,從基礎開始學習,然后開發應用程序,再后來獨立完成創新制作,到最后又回到了基礎技術問題的研究。接下來的日子里,我做得最多的事是研究紅外線的知識。做了N多次實驗,用不同的紅外線發光源來做研究,找到它們的特性和區別。之后開始研究電路制作簡單、同時又具備高穩定性的紅外感應開關。研究到最后,我自己都驚訝了,原來硬件電路可以如此簡單,簡單到沒有任何多余的元器件——單片機、紅外反射傳感器、LED指示燈和電源。在之前的版本里,硬件電路上還需要加一條導線,但是后來我修改了程序算法,這條導線便光榮下崗了。
是的,程序算法——一種殺人于無形的利器。如果人類和動物的區別是人類具有理性和智慧的話,那么單片機與數模電路的區別就是單片機具有程序控制。單片機程序精確地處理著時間和狀態,軟件的強大把硬件成本降到最低,并可以零成本復制。我熱愛編程,它給了我無窮的樂趣和超乎想象的創新可能。如果我是即將畢業的大學生,我會把這個創新制作寫成論文,讓導師喜笑顏開;如果我是專注科普的《無線電》雜志的作者,我就只能用微小的篇章簡單地說一說這款制作的基本原理了。但在此之前,先讓我們趁著熱情未減,親手制作一下這款基于單片機的紅外感應開關,體驗它的精巧構思,檢驗它的抗干擾能力吧。
我是在面包板上搭建的電路,電源采用的是3節5號電池所組成的4.5V直流電源。因為電路非常簡單,我還特意為了面包板上的接插布局而定義了IO接口。所以我們連導線都不需要,只要把單片機、紅外反射傳感器和LED指示燈插在指定的孔洞里就行了。值得注意的問題有:單片機需要使用帶有ADC功能的STC12C2052AD系列;燒寫程序時,選擇使用內部RC振蕩器;紅外反射傳感器沒有特定的型號,我使用的是RPR220,你也可以使用其他型號的產品。
在面包板搭建的實驗電路上測試,有沒有感覺到它的精簡和穩定呢?把LED指示燈接在P1.7接口上時,它是無鎖存的感應開關,即有反射物體時LED燈亮,物體離開就熄滅,適用于感應式水龍燈。把LED指示燈接在P1.6接口上時,它
是鎖存感應開關,即感應開關觸發1次LED燈亮,2次觸發時LED燈滅,適用于感應式電燈開關。如果把LED指示燈改換成繼電器,就可以用來控制其他電器了。電器可以是任何你想得到的東西,相信你和我一樣,早就有過這樣的夢想。現在是實現它的時候了。
除了實用的開關改裝計劃,紅外感應開關還可以把家居生活變成科幻電影。一張可以感應你的桌子會不會震驚四座呢?普通桌子的上表面嵌著一塊磨砂玻璃板,當桌面空空的時候,桌子沒有什么特別。可是當我們把手、杯子或報紙放在上面時,相應的位置就會發出光來。原來,玻璃下面安裝了數百個LED燈和感應裝置,只要桌子感應到有東西放在上面,就會讓單片機控制對應位置的LED燈點亮。變換單片機的程序還可以玩出更多的花樣呢。
如果用我的這款紅外感應開關是不是也可以實現這部科幻作品呢?在撰寫本文的時候,我也同時在研究這項技術,希望可以用我們常用的單片機來實現,如果真能實現,我再另寫文章與各位分享。那桌子、那感應式電燈都將成為你的作品、你的精心之作。

關鍵問題與解決之道


從年少時廁所里紅外感應開關初體驗,到傳統電路制作的原理及問題,再到用單片機實現更穩定的感應開關設計,直至感應開關在電器開關和感應桌面上的應用。紅外感應開關已經逐漸從廁所走向了客廳,從復雜走向了精簡,從波動走向了穩定。那么有誰想知道單片機是怎么做到穩定感應的呢?其中的奧秘又是什么呢?這里就把一些技術實現的基本原理與諸位分享。如果你有更好的方案和改進意見,或者你是這方面資深的專家,歡迎各路英豪與我交流。閑話少說,小弟這里獻丑了哈!

1.如何去除環境光的干擾?

與之前的調制解調的方式不同,在使用ADC功能之后,另一種解決方案會讓測試更有效率。那就是使用雙重檢測方法。前提條件是,單片機可以控制紅外發光二極管的開關。首先,要使用ADC功能讀出接在ADC接口上電壓的模擬量,數值從0到255(十進制)。紅外光敏二極管接收的紅外光線強時,ADC讀出的數值就大,反之就小。我們要做的就是,控制紅外發光二極管在發光時讀一次ADC的數值,然后再讓紅外發光二極管熄滅,再讀一次ADC的數值。我們先假設沒有其他紅外光源的干擾,當紅外發光二極管熄滅時,紅外光敏二極管應該檢測不到光源,ADC讀出的數值也應該為0;當紅外發光二極管點亮,且沒有反射物體時,ADC讀出的值也應該很小,接近于為0;當有反射物體時,紅外光敏二極管檢測到光源,ADC讀出的數值會變大。如果存在其他光源的干擾,那么當紅外發光二極管熄滅時,也會讀到較大的數值。雙重檢測讀出的數值的差距越大,表示干擾光源越弱,反之則越強。我們通過這種雙重檢測,就可以判斷接收到的紅外光是不是發射端發出來的了,兩次檢測的數值之差就是我們需要的最終數值。最終數值將參與下面的算法處理,也是我們判斷和處理的關鍵數據。單片機需要控制紅外發光二極管高速開關,以便更快地采集數據。

最終數值=紅外發光二極管點亮時ADC讀出的數值-紅外發光二極管熄滅時ADC讀出的數值

2.如何解決臨界點的感應波動問題?

微微向前一點就觸發,微微向后一點就關斷,這是臨界點問題的困擾。問題的根源在于,觸發的臨界點和關斷的臨界點是同一個距離。只要在基于單片機系統中把這兩個臨界點分開,這個問題就可迎刃而解。我們知道,單片機需要處理的數據是“最終數值”,它是紅外發光二極管開、關狀態時ADC讀出的數值之差。最終數值也是一個從0到255之間不斷變化的變量。反射物理離傳感器越近,“最終數值”就越大。如果我們在程序里設置,當“最終數值”大于某一值時(例如200)就觸發開關,小于這一值時就關斷開關,那么這樣編程的效果就是單一臨界點的不穩定開關。單片機既然都可以模仿不穩定的開關,自然也很容易創造穩定的開關了!只要寫一下程序的設置就可以很輕松地讓它變得穩定。雙臨界點的設計只需要兩個數值的條件判斷:當“最終數值”大于某一值時(例如200)就觸發開關,當“最終數值”小于另一個數值時(例如150)就關斷開關。這樣一來,在150和200之間就會創建一塊中間區域。當反射物理在這個區域前后移動時,開關仍保持其原來的狀態,或判斷、或觸發。這種雙臨界點的設計,其實是給反射物體一個活動空間,對反射物體的穩定性要求降低了,系統狀態就自然穩定了下來。在實際調試過程中,可以根據應用的需要修改雙臨界點的兩個數值。比如做自動水龍頭時,手的移動范圍較大,所以應該留出較大的活動區域。如果是做自動尋跡小車的傳感器,則可以用較小的活動區域,甚至改用單臨界點來實現。雙臨界點的設計是有啟發性的,你可以利用此設計來做更多的事情,或者用在其他傳感器的穩定性設計之中。

3.如何增加感應的成功率和可靠性?

“最終數值”處理和雙臨界點設計都可以增加系統的穩定性。在多次數據采集中,出現幾次失敗和誤差是很正常的事情。但如果這些誤差左右了開關的狀態,那么這種失敗又由誰來負責呢?我寫的文章錯別字很多,雜志社的編輯老師都說我無藥可救了。當你看到本文時,你要知道一件事,那就是已經有好幾位編輯老師瞪大眼睛幫我改掉了文中的錯別字。最后大家看到的才是精美而通順的文章。在感謝編輯老師的同時,我也要為我們的紅外感應開關配備幾位“編輯老師”,給采集到的數據把關。一旦出現錯誤,就放棄當前的數據,重新采集,這種設計其實就是一種冗余。我在程序中設計了一段循環檢測語句,連續20次檢測和判斷采集到的數據,如果20次中有1次誤差就馬上放棄當前的所有數據,重新檢測。連續20次檢測已經算是很穩定的了,當然你也可以為了更穩定而改用連續50次、100次的檢測,但是系統的反應速度會變慢,靈敏度也會下降。靈敏度和穩定度之間的矛盾是剛性的,在實際測試中找到適合目標系統的檢測次數就可以了。“最終數值”、雙臨界點和20次連續檢測聽上去好像是很復雜的事情,可是在程序里只是很簡單的幾條語句。設計的重點不在于程序的復雜性,而是整個系統的設計思路。下面列出一段關鍵程序部分與大家分享,這個簡單的程序包含了上述的3種抗干擾設計。

4.如何增大感應距離?

經過實驗證明,基于單片機的紅外傳感器的感應距離和單片機的ADC精度、雙臨界點數值、紅外發光二極管的功率、紅外光敏二極管的靈敏度,均和反射物理的反光效果有關,一般的感應距離不會超過20cm。不過,對于開關感應開關的設計已經足夠了。要想增加感應距離,可以對以下幾方面進行改進。只是,更遠的感應距離反而會讓系統產生許多
RAM_H=Read_ADC;//讀出LED亮時ADC端口的值
RAM_L=Read_ADC;//讀出LED滅時ADC端口的值
RAM_H=RAM_H-RAM_L;//取2次檢測值之差,避開環境光干擾if(RAM_H>0x06){//開啟時的距離(應該小于關閉時的距離)CON++;//計數加1
CON2=0;
if(CON>20){//連續20次檢測,以避開干擾
CON=0;
LED_Y=0;//LED指示燈點亮
}
}
if(RAM_H0x03){//關閉時的距離
CON2++;CON=0;if(CON2>20){CON2=0;
LED_Y=1;//LED指示燈熄滅
}
}
“最終數值”、雙臨界點和20次連續檢測的程序部分

不確定因素,效果反而不佳。如果在某些特殊情況還需要更遠的傳送距離,我們就要用新的軟硬件方案來應對了。
☆提高ADC精度,例如將8位ADC換成10位或12位ADC。
☆將雙臨界點的數值設置得更小。
☆用LED驅動電路提高紅外發光二極管的功率(即提高亮度)。
☆為紅外光敏二極管一端加裝信號放大電路。
☆盡量使用反光效果好的反射物體(如白紙、鏡面)。

5.如何進一步提升抗干擾能力?

最后一個問題,是同頻環境光的干擾。在我的實驗中,還沒有出現過這樣的問題,它只存在于理論推理中。但這種干擾的可能性并不為0,所以有必須說明一下。所謂的同頻干擾,就是假設紅外感應開關的周圍正好存在這么一個紅外光源,它也按一定的頻率點亮和熄滅,而這一頻率正好和紅外感應開關中紅外發光二極管的亮、滅頻率一致,且周期相同。這種巧合并不只是彩票頭獎的幸運觀眾才能遇見的,當多個紅外感應開關在較近的距離內同時使用時,問題就自然會出現。如果它們之間的距離不能改變,那就只有用跳頻的方法來解決了。跳頻技術在移動電話和無繩電話機上已經成為必備的功能,為了防止竊聽或當某一頻道被占用時,電話機會自動切換到別的頻道,讓通信更穩定、可靠。對于紅外感應開關來說,跳頻并沒有那么復雜,只要在程序中不斷改變紅外發光二極管的亮、滅時間,用不同的頻率去檢測,其他干擾光源也以相同頻率跳變的機會就少之又少了,再加上前面介紹的20次連續檢測功能,再遇見干擾的可能性就幾乎為0了。
增加以上5項功能,系統的穩定性達到了巔峰,而如此穩定的設計卻絲毫沒有改變硬件制作。仍然是那幾種元器件,穩定與否全看程序的設計。單片機就是這么神奇,創造優良性能于無形之中,帶你體驗精簡設計的內在之力。


更遠距離的對射傳感器方案

還有一種情況,是應用上的需要。如果使用紅外感應開關來制作賽跑的電子終點線,將紅外發射管和接收管分別安裝在跑道的兩端會是更好的解決方案。平時終點線上沒有障礙物,發射的紅外信號輕松地被接收。當有人通過終點線時,人的身體擋住了紅外光的路線,接收端收不到信號而觸發開關,完成比賽的計時。同樣的設計還可以用作防盜報警器。這種對射式的傳感器需要很遠的傳送距離,一般需要2~5m。如果是這種應用,就需要改變軟硬件方案,38kHz調制紅外線不是很好的解決方案。利用單片機產生38kHz的調制紅外線信號,接收端使用具有集信號解調、放大和輸出于一體的紅外傳感器TSOP1838。電路設計同樣精簡,而對射有效距離可以達到7~10m。相關的技術正在被我研究著,這里算是拋磚引玉,希望給正在研究此技術的朋友一點幫助。發揮你的才能,把這項技術運用到生活之中。制作自動干手機、感應水龍頭、感應電燈開關、智能尋跡小車、防盜報警器、感應桌面、比賽計時器等。基于單片機的紅外感應開關將成為你電子競賽、產品設計、趣味DIY的必備佳品。這就是紅外感應開關的創新制作,可以簡單穩定地感應你。





紅外遙控器相關文章:紅外遙控器原理

萬能遙控器相關文章:萬能遙控器代碼


手機電池相關文章:手機電池修復


51單片機相關文章:51單片機教程


模數轉換器相關文章:模數轉換器工作原理


燃氣報警器相關文章:燃氣報警器原理


評論


相關推薦

技術專區

關閉