- RF433MHz(無線發射接收模組)入門學習套件 (可用於 Raspberry Pi, Arduino, 單晶片, 8051, AVR)
- RF433MHZ入門學習套件 - 加購 RF433 MHZ 無線發射接收模組
- RF433MHZ - ASK 無線發射接收模組套件 (可用於 Raspberry Pi, Arduino, 單晶片, 8051, AVR)
- RF433MHZ入門學習套件 - 加購 433MHZ - ASK 無線發射接收模組套件
使用 75HC595 可以簡單的使用 Raspberry Pi ( 樹莓派 ) 三支 GPIO 接腳設定 HT12E 編碼晶片的位址與資料,可一次控制多達 256 個 HT12D 解碼晶片,很值得學習與使用!
Raspberry Pi + 74HC595 + HT12E + RF 發射模組 |
關於樹莓派如何控制 74HC595,請參考賣場部落格網頁 IO 擴充應用 - 使用 74HC595 (三態輸出八位元移位暫存器 IC)。
線路連接分為兩個部分:第一部分是編碼發射電路;第二部分是接收部分,可延用賣場部落格另一個網頁中介紹的 HT12D 接收電路。
74HC595 控制 HT12E 編碼晶片無線發射電路圖 |
HT12D 解碼晶片無線接收電路圖 |
編碼線路佈線:
請依下面圖片的說明,將樹莓派、74HC595、HT12E 與無線發射模組進行相互之間的佈線。
圖片上所使用的麵包板與跳線不在無線模組套件中,若需訂購請至露天賣場:
在麵包上面插上三顆 IC,缺口都是朝左,中間哪一顆是 HT12E。接著根據下圖接上電源正極 (紅) 與電源負極 (綠) 的單芯線;最後在 HT12E 的 P15 與 P16 中間插上藍色為底的電阻 ( 1 M , 4/1 W, 1%,色碼為棕黑黑黃 )
74HC595、 HT12E 編碼晶片、Rosc 電阻與電源正負極的佈線位置 |
連接樹莓派 ( GPIO #23 - #25 ) 和 74HC595 ( P11, P12, P14 ) 之間的控制線路
- GPIO #34 --> P11 ( SCLK )
- GPIO #24 --> P12 ( SER )
- GPIO #25 --> P14 ( RCLK )
樹莓派與 74HC595 的接線 |
連接編碼晶片之編碼訊號輸出 P17 ( DOUT ) 到無線發射模組的 DATA 接腳位置,再把無線發射模組照圖片方向插上
連接編碼晶片訊號輸出到無線發射模組 DATA 接腳 |
另一方向的佈線圖 |
插上無線發射模組 |
照下圖連接兩顆 74HC595 的串連線路,這是兩顆 74HC595 晶片連接時的方法
- 左 ( 9, QH* ) --> 右 ( 14, SER )
- 右 ( 11, SRCLK ) --> 右 ( 11, SRCLK )
- 右 ( 12, RCLK) --> 右 ( 12, RCLK )
兩顆 74HC595 的連接方式 |
HT12E 編碼資料的設定由位於左邊的那一顆 74HC595 負責,(74HC595) QA - QD 分別對應到 (HT12E) AD8 - AD11
- 左 ( 15, QA ) --> 中 ( 10, AD8 )
- 左 ( 1, QB ) --> 中 ( 11, AD9 )
- 左 ( 2, QC ) --> 中 ( 12, AD10 )
- 左 ( 3, QD ) --> 中 ( 13, AD11 )
編碼資料控制線連接 |
HT12E 的編碼位址設定則是由右邊的 74HC595 負責,(74HC595) QA - QH ( pin15, pin1 - 7 ) 分別對應到 (HT12E) A0 - A7 ( pin1 - 8 )
編碼位址控制線連接 |
完成配線之後的全圖,這時就可以插上記憶卡、網路與電源開始進行測試了。
Raspberry Pi + 74HC595 + HT12E + RF 發射模組 |
程式碼說明:
我們使用樹莓派的三支 GPIO 做為 74HC595 的控制接腳,如果想要由程式觸控制傳送功能的話,就將第 29 行前面的雙斜線取消掉,並加入控制的程式碼在主程式裏,如果不需要此功能就先不要理它
74HC595 控制接腳的設定與初始化,由 SIPO_Create() 負責
74HC595 的控制程式由 SIPO (unsigned char ADR, unsigned char DATA) 函式負責;傳送時編碼資料先傳送再傳送編碼的位址,位元組由高位元先送出
以上,就是使用樹莓派與 74HC595 控制編碼晶片的程式碼。
程式碼下載與測試:
使用下面指令下載原始程式碼與編譯好的執行檔
pi@raspberrypi ~ $ cd codes pi@raspberrypi ~/codes $ mkdir RPi_74595CTLHT12E pi@raspberrypi ~/codes $ cd RPi_74595CTLHT12E pi@raspberrypi ~/codesRPi_74595CTLHT12E $ wget -O - http://goo.gl/TG3uA | tar xvf - --2013-03-02 18:38:24-- http://goo.gl/TG3uA 正在查找主機 goo.gl (goo.gl)... 74.125.31.139, 74.125.31.100, 74.125.31.101, ... 正在連接 goo.gl (goo.gl)|74.125.31.139|:80... 連上了。 已送出 HTTP 要求,正在等候回應... 301 Moved Permanently 位置: <<...此行內容刪除...>> [跟隨至新的 URL] --2013-03-02 18:38:24-- <<...此行內容刪除...>> 正在查找主機 dl.dropbox.com (dl.dropbox.com)... 107.20.203.119, 107.22.172.16, 107.22.210.127, ... 正在連接 dl.dropbox.com (dl.dropbox.com)|107.20.203.119|:80... 連上了。 已送出 HTTP 要求,正在等候回應... 200 OK 長度: 35328 (34K) [application/x-tar] Saving to: `STDOUT' 0% [ ] 0 --.-K/s rpi_HT12E_74595_test 43% [=======================> ] 15,539 60.4K/s rpi_HT12E_74595_test.c 100%[======================================================>] 35,328 133K/s in 0.3s 2013-03-02 18:38:26 (133 KB/s) - written to stdout [35328/35328] pi@raspberrypi ~/codes/RPi_74595CTLHT12E $ ls -l 總計 36 -rwxr-xr-x 1 pi pi 29652 2月 23 18:32 rpi_HT12E_74595_test -rwxr-xr-x 1 pi pi 3423 2月 23 18:32 rpi_HT12E_74595_test.c pi@raspberrypi ~/codes/RPi_74595CTLHT12E $
如果有編輯程式碼需要重新編譯,就輸入下面的指令
pi@raspberrypi ~/codes/RPi_74595CTLHT12E $ sudo sudo gcc rpi_HT12E_74595_test.c -l rt -l bcm2835 -std=gnu99 -o rpi_HT12E_74595_test
程式實際執行的情形,如下面所示;要結束就按下 "Ctrl + C"
pi@raspberrypi ~/codes/RPi_74595CTLHT12E $ sudo ./rpi_HT12E_74595_test
Please input encoder adress and data: address (0xff): 240 data (0xf): 1 Input address: 0xf0, data: 0x1 Encoder Address 7=0, 6=0, 5=0, 4=0, 3=0, 2=0, 1=0, 0=1, Encode Data 7=1, 6=1, 5=1, 4=1, 3=0, 2=0, 1=0, 0=0, Transmission completed!!! Please input encoder adress and data: pi@raspberrypi ~/codes/RPi_74595CTLHT12E $
這個例子也是另一個 595 晶片的應用,使用 595 晶片雖然接線會比較多,但是可省下很多可用的 IO 接腳,使用在 HT12E 編碼位址 ( 8-pin ) 和編碼資料 (4-pin) 共 12 支接腳,只需用到三個樹莓派 GPIO 接腳非常好用。
<<相關資料與使用說明連結>>
- HT12E 編碼晶片數據手冊
- HT12D 解碼晶片數據手冊
- [ 賣場部落格 ] RF433MHz入門學習套件系列文章,包含有:
- 無線天氣資料傳輸 - Arduino Manchester 函式庫應用
- RGB LED 混色 - Arduino 的 Machester ( 曼徹斯特 ) 無線傳輸
- Arduino 之間或與 Raspberry Pi 之間的 RF 433MHz 通訊
- RF433MHZ 無線發射接收模組搭配 HT12( D / E ) 遙控器編碼解碼晶片
- RF433 MHZ 搭配微控制器的使用方法
- RF433MHZ 無線發射接收模組搭配 Raspberry Pi 控制 74HC595 操控 HT12E 遙控器編碼晶片
- 使用樹莓派模擬 HT12E 遙控器編碼晶片的編碼格式
沒有留言:
張貼留言
留言屬名為"Unknown"或"不明"的用戶,大多這樣的留言都會直接被刪除掉,不會得到任何回覆!
發問問題,請描述清楚你(妳)的問題,別人回答前不會想去 "猜" 問題是什麼?
不知道怎麼發問,請看 [公告] 部落格提問須知 - 如何問問題 !