兩年前曾經DIY過一個電腦紅外遙控器的,現在也還能用的,只是年初升級到了WIN7操作系統,但是那個PC遙控軟件卻不能在win7下使用,所以被閑置了。最近有點燒高清,我目前的高清是用筆記本+平板電視實現的,通過HDMI傳輸信號,那畫面質量真的是沒法說,為什么沒有用臺式機呢,因為臺式機和電視機分別在房間的兩頭,需要用很長的HDMI線連接,中間還得跨越一道門,不但不方便也不好看,還費錢,還好新買的筆記本已經被調較得可以播放高清了,唯一遺憾的是筆記本只能放在電視機很近的地方,這樣控制播放就很不方便了,于是萌生了再次搞一個紅外遙控器的念頭。
因為筆記本不帶串口,這樣就不能用原來的串口紅外接收器了,要么買一個USB接口的接收器,要么就是搞一個USB-串口轉換器。在瀏覽以前買編程器的淘寶店的時候發現了有USB-TTL的轉換器,也有USB-UART的接口,在下單發貨后才發現只買了USB-TTL的轉換器,沒有買USB-UART接口,有點暈啊。不過俺在此以前已經研究過了遙控器軟件官方提供的接收器電路,發現這個接收器只是利用了串口的幾根線做了個竊電電路,真正起作用的只是RXD一根線而已,而USB-TTL模塊本身就帶5v輸出的,是標準的TTL電平。 USB-TTL模塊到貨后,插入電腦,提示要到官方網站下載驅動(cp1202),win7本身沒有這個驅動,要注意的是官方網站上下的驅動在win7下是安裝不了的,最后是在其他下載網站上下的才安裝成功的。因為這個接口是TTL電平的,所以不需要RS232電平轉換電路了,直接將H0038紅外接收器引腳用杜邦線接入模塊對應引腳就應該可以了。搭好電路,然后啟動遙控器軟件,發現軟件可以接收到信號,但是收到的編碼幾乎只有FFFFFF9這類數字,顯然接收到的紅外編碼沒有正確解碼,考慮到用PC機自帶串口+自制接收器能正確解碼,問題肯定出在模塊上,再次參考官方接收器電路,看到RXD信號還經過了一級三極管,按此修改了電路,還是不行,而且連接收都不行了,更不要說解碼了?嗨稼は肓艘魂嚕蝗幌氲絉S232用的是負邏輯,而USB-TTL是正邏輯,如果在RXD上加一級反相電路不就可以了?說干就干,用三極管做個反相電路是最簡單了,大概的計算了一下電路參數,焊好電路,再試,成功! 接下來將模塊和軟件安裝到筆記本上,測試,也可以接收到紅外信號。奇怪的是需要按很多次按鈕,才有可能接收到一次信號,這樣的話,遙控起來就很費勁了。剛開始多次更換USB插座、重新安裝軟件,下載新版本軟件,提高遙控器軟件的進程優先級,關閉其他一些軟件,因為懷疑是CPU運算過于繁忙的問題,造成遙控器軟件不能及時接收到紅外信號,這些措施都沒有取得什么效果,曾經也想過是不是接口的電壓輸出是3.3v而不是5v的,經測試這個模塊輸出的確實是5v,所以也不是電壓的問題。上網查了一下,幾乎沒有人提這個問題,只看到有一個人說了他在PC上工作正常的接收器到了筆記本上就不正常了,有人答了一下說可能是筆記本供電不足的問題。手頭上正好用著一個USBHUB,可以外接電源的,正好可以測試這個問題,USBHUB接到筆記本,然后模塊接到USBHUB,一個開關電源做電源。哈,可以隨時接收到紅外信號了!這么說有可能確實是供電不足的問題,那么在把外接電源去掉試試看吧,結果也沒問題! 問題基本解決了,還有疑問沒解決:為什么直接接上USB端口不行,經過一級USBHUB就可以了呢?
|