步驟1:必需的組件
您需要為此項目提供以下組件:
一塊面包板
PIC單片機12F617,參見win-source
整流橋,例如DF02M,參見win-source
電解電容220 uF/35V和10 uF/16V
3 *陶瓷電容100nF
電壓調節器78L05,見win -source
433 MHz ASK射頻發射器
電阻:1 * 10k,1 * 4k7,3 * 220歐姆
NPN晶體管,例如BC548見win-source
開關
LED:1個紅色,1個綠色
塑料外殼
查看關于如何連接組件的示意圖。
步驟2:設計和構建電子設備
所有控制均由PIC12F617在軟件中執行。在設計電路之前,我需要檢查一下如何輕松激活原來的門鈴。我的模型是Byron 761,可產生叮咚聲,可由9伏電池或8伏交流變壓器供電。在對原始門鈴進行一些測量后,我發現門鈴開關的連接器有一個接地引腳,一個輸入引腳懸空為3.5伏。當關閉此連接時 - 按下門鈴開關 - 只有35 uA的電流流過它。正因為如此,我決定使用一個帶開路集電極的晶體管和發射器接地以激活原來的門鈴,工作正常。
由于門鈴開關在外面,我不喜歡只有很小的事實當按下門鈴開關時,電流會流過門鈴開關,因為當門鈴變得潮濕時,它可能會響鈴而沒有人在那里(不確定這是否真的發生)。在電路中,我使用了220歐姆的上拉電阻,因此當按下門鈴時,門鈴開關的電流為23毫安。
設計的其余部分非常簡單,使用標準整流橋和電壓調節器為電路創建穩定的5 V電源。可以在小型面包板上輕松構建電路。在圖片中,您可以看到我在面包板上構建的電路,包括放入塑料外殼時的最終結果。
第3步:軟件
如前所述,該軟件是為PIC12F617編寫的。它是用JAL編寫的。在過去,我一直使用433 MHz射頻模塊進行射頻傳輸,但我使用了自己的簡單傳輸協議,正如您在本教學中所見:射頻恒溫器
我的協議只要工作正常距離不是太大。對于這個項目,我需要一個更可靠的RF傳輸協議。經過一番研究后,我找到了用C語言編寫的Arduino虛擬線庫。由于我使用帶有JAL編程語言的PIC,因此我將此庫從C移植到JAL并在此Instructable中使用它。這個虛擬庫比我使用的簡單協議具有更好的可靠性。當然傳輸總是出錯。為了最大限度地減少傳輸損失,每條消息使用不同的序列號發送3次,每條新消息。
在這個項目中,PIC運行的內部時鐘頻率為8 MHz,其中定時器虛擬庫使用圖2來以比特率1000比特/秒發送RF消息。
按下外門鈴開關時,軟件會執行以下操作:
去除門鈴開關。如果在50 ms的去抖時間后仍然按下,則程序繼續下一步,否則將忽略按下的門鈴開關。
如果禁用傳輸開關未激活,則通過433 MHz RF發送器發送3字節消息 - 地址,命令和序列號,綠色LED將亮起一秒鐘。與此同時,原來的門鈴將通過激活BC548晶體管半秒鐘來振鈴。
如果禁用傳輸開關處于活動狀態,則執行相同的操作,但不會發生RF傳輸。通過這種方式,可以遠程關閉無線門鈴,同時保持原始門鈴的運行。
只有在按下門鈴開關后再次松開時,才會啟動新的門鈴傳輸和新鈴聲。當門鈴開關持續按下時,這可以防止門鈴繼續振鈴。
附加了JAL源文件和Intel Hex文件。如果您有興趣將PIC單片機與JAL(一種類似Pascal的編程語言)一起使用,請訪問JAL下載站點。
責任編輯:wv
-
發射器
+關注
關注
6文章
843瀏覽量
53404 -
無線門鈴
+關注
關注
1文章
21瀏覽量
11858
發布評論請先 登錄
相關推薦
評論