網頁中所使用的零件可至露天賣場訂購:
賣場的無線發射接收模組可直接使用微控制器 ( 例如,單晶片 8051、AVR 和 PIC ... 等 ) 晶片來做為編碼與解碼,連接線路非常簡單!兩端的訊號同步使用 UART ( Universal Asynchronous Receiver/Transmitter, 通用非同步收發傳輸器 ) 接腳 TxD 與 RxD,再分別與無線發射、接收模組的 DATA 接腳連接用以傳送與接收編碼訊號,詳細接線圖如上圖所示。
- RF433MHz(無線發射接收模組)入門學習套件 (可用於 Raspberry Pi, Arduino, 單晶片, 8051, AVR)
- RF433MHZ入門學習套件 - 加購 RF433 MHZ 無線發射接收模組
- RF433MHZ - ASK 無線發射接收模組套件 (可用於 Raspberry Pi, Arduino, 單晶片, 8051, AVR)
- RF433MHZ入門學習套件 - 加購 433MHZ - ASK 無線發射接收模組套件
無線發射接收模組與微控制器的連接線路 |
賣場的無線發射接收模組可直接使用微控制器 ( 例如,單晶片 8051、AVR 和 PIC ... 等 ) 晶片來做為編碼與解碼,連接線路非常簡單!兩端的訊號同步使用 UART ( Universal Asynchronous Receiver/Transmitter, 通用非同步收發傳輸器 ) 接腳 TxD 與 RxD,再分別與無線發射、接收模組的 DATA 接腳連接用以傳送與接收編碼訊號,詳細接線圖如上圖所示。
圖片上所列的 AT89S51 與 AVR ATtiny2313 線路,發射與接收的程式類似,因此下面使用 AT89S51 ( Keil C ) 發射與 AVR ATtiny2313 ( AVR Studio 4 ) 接收中的原始碼做說明,完整的程式碼可在下面所提供的連結下載。
注意到電源的部分,除了 AT89S51 需要使用 +5V 的電源供應之外,根據 AVR ATtiny2313 資料手冊的第一頁關於速度與電壓的要求,可以使用的電壓範圍在 2.7 - 5.5V @ 8MHz,所以可以使用兩顆乾電池來做為 ATtiny2313 的電源,不管是做為發射端或是接收端都是可以正常工作的
- ATtiny2313V:0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V
- ATtiny2313 :0 - 10 MHz @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V
無線發射模組程式碼 ( AT89S51 ):
為了確保編碼傳送可正確傳送到接收端,因此我們自行定義編碼原則。傳送的編碼分為四個位元組,每個位元組所代表的意思如下:
- byte 1:SYNC 同步訊號 ( 0xAA )
- byte 2:RADDR 定義傳送到哪一個接收端;設定是 ( 0x44 )
- byte 3:CMD 在接收端執行預先定義的動作編碼。設定是執行 LED 亮 ( 0x11 ) 和滅 ( 0x22 ) 兩個命令
- byte 4:checksum 最後一個為元式傳送檢驗和,等於 byte 2 + byte 3
上面的程式也有組合語言的版本,裡面的程式結構差異不大,可互相做為參考。
無線接收模組程式碼 ( AVR ATtiny2313 ):
接收的部分我們使用 AVR ATtiny2313 做解碼與接收的晶片。程式一開始進行 IO 與 UART 初始化 ( ioinit() ),然後程式進入無窮迴圈
當一直等待 UART 接收的訊號時,其實 ATtiny2313 就會耗電,最好的方法就是讓它進入到睡眠狀態,需要的時候再叫醒它就好。因此如果想要微控制器進 IDLE MODE,就新增一個副程式,並將副程式加入到無窮迴圈裡就可以了。
程式碼下載與測試:
- AT89S51
- ATtiny2313
下面檔案使用 AVR Studio 4 編譯;不同版本時請新建一個專案檔,再加入下面其中一個原始檔,設定好晶片以及環境後就可以進行編譯;或是使用連結中已編譯好的燒錄檔 (.hex)
下面是使用相同的程式碼,但使用 RF 315 MHz 無線發射接收模組所做的測試。可以知道,控制的方式大同小異。
右邊是 AT89S51 (+5V),負責發射;左邊是 ATtiny2313 (+3V),負責接收。每隔一秒鐘傳送一次命令使 LED 亮滅。注意到,只要在兩這之間有東西阻隔或是接近 (如影片中切換電源開關時),傳輸就會有遺漏,做測試時可以自己試試!
相同程式碼但使用不同的無線發射接收模組 ( RF 315 MHz ) 的測試 |
上面就是使用微控制器 UART 硬體功能來實現無線傳送接收的方法。其他關於無線模組應用的文章,請看下面的賣場部落格文章連結。
<<相關資料與使用說明連結>>
你好~感謝作者的付出及分享,可以請問模組的 433MHz 可以用 Tektronix(太克)示波器 TDS 1012 來觀看傳輸訊號的波形嗎? Thanks~
回覆刪除當然可以!看這一篇裡的說明,示波器更好
刪除http://ruten-proteus.blogspot.tw/2013/03/Wireless-RF-RPi-sim-HT12E.html
非常感謝!
刪除