2017年3月8日 星期三

Arduino - 無線電遙控

Arduino 發送及接收無線電訊號

由於紅外線(IR)有指向性,遙控時需對準接收器,而且不能有障礙物阻隔,相較之下,無線電遙控的方式就比較理想。

  • nRF24L01+ 無線電傳輸/接收模組



nRF24L01+接腳圖

圖片來源



  • LD1117A壓降IC

參考 smallbee 的說明,由於 nRF24L01+ 接的電源需為3.3V,Arduino電源為5V,因此需要 LD1117A 壓降 IC,以及4.7uF 電容,將 5V 降為 3.3V。

需注意LD1117A 有多種不同的壓降電壓,如下圖 L33AUL 中的 33 表示3.3V

LD1117A規格


參考 http://tmrh20.github.io/RF24 ,電路圖如下


後來發現 Arduino 的3.3V接腳可供電給 nRF24L01+,修改後的電路圖如下



下載 RF24程式, 開啟 examples\GettingStarted 的 Arduino 程式,這隻程式只要調整裏面的參數,分別上傳到 Arduino 上,就可成為 RF 傳送及接收器,並透過序列埠監控視窗觀察資料。

參考資料: Arduino nRF24L01+

其中以下這段程式,即是使用第7、8腳位,如電路圖中的D7、D8接腳

/* Hardware configuration: Set up nRF24L01 radio on SPI bus plus pins 7 & 8 */
RF24 radio(7,8);



  • 發送端設定

在這個 GettingStarted 程式中,將 radioNumber 及 role 設定為 1,然後上傳到 Arduino。這個設定下程式會先送出訊號,然後等待對方回傳訊號,收到後便將訊息寫到序列埠上。


  • 接收端設定

將 radioNumber 及 role 設定為 0,這個設定下程式會先等待訊號,一旦收到訊號,便會發送訊號回去,並將剛才收到的訊號,寫到序列埠上。

沒有留言: