樹莓派與Arduino Leonardo使用NRF24L01無線模塊通信之基於RF24庫 (一) 配置與測試


引腳連接說明

與樹莓派的連線

NRF24L01 => 樹莓派

GND          =>   GND

VCC          =>    3.3V

CE           =>   GPIO25 即22管腳

CSN         =>   CE0(GPIO8) 即 24管腳

SCK         =>   SCLK(GPIO11)即23管腳

MOSI       =>   MOSI(GPIO10)即19管腳

MISO       =>   MISO(GPIO9)即21管腳

IRQ          =>   GPIO18即12管腳

nRF24L01硬件連接

此模塊是使用SPI方式連接,在標准SPI口基礎增加CE和CSN引腳: nRF24L01 Arduino Leonardo
VCC <-> 3.3V
GND <-> GND
CE <-> D9
CSN <-> D10
MOSI <-> ICSP MOSI
MISO <-> ICSP MISO
SCK <-> ICSP SCK
IRQ <-> 不接

配置說明

樹莓派

 將RF24庫復制到樹莓派(或通過git直接獲取),https://github.com/TMRh20/RF24.git。進入RF24目錄后執行如下命令,進行編譯和安裝(選擇SPI方式)

./configure --driver=SPIDEV
sudo make install -B

修改/etc/modprobe.d/raspi-blacklist.conf,如果其中存在
blacklist spi-bcm2708,將其注釋。

修改/etc/modules文件,在其中追加一行,開啟SPI。
spidev
reboot重啟樹莓派后,/dev下會新增spidev0.0和spidev0.1兩個設備文件。

修改RF24/example_linux/GettingStarted.cpp文件,
同上面的Arduino一樣,發送端不必修改,
接收端將radioNumber從默認的0修改為1。
在當前目錄下執行make后,生成GettingStarted的二進制文件。

使用sudo ./ GettingStarted執行,並輸入0進入接收模式。
如Arduino的發送端配置、運行正常,則正常發送回應包:

如果上面圖片中的參數為0x00或者0xff,可能連接存在問題。

Arduino

 從https://github.com/TMRh20/RF24.git下載RF24后,將其復制到Arduino安裝目錄下的libraries目錄下,啟動ArduinoIDE后,從例子中選擇RF24->GettingStarted。

發送端不必修改,直接編譯上傳即可。
接收端將代碼中的radioNumber從默認的0修改為1。

如上述配置接線正常,可在Serial Monitor中看到發送方和接收方的輸出,大致如下:

可能由於接線問題導致程序無法正確傳輸數據,此時可以采用下面方法測試arduino是否正確連接nrf24l01:

去https://github.com/tmirun/Arduino-nrf24l01-learn 下載測試代碼下載解壓后你可以在里面找到一個叫 rf24_hardware_test 的文件夾, 打開里面的 rf24_hardware_test.ino 文件,

燒到arduino里面。然后打開串口調試窗口,在arduino加載完代碼后 5 秒后會出現類似下面的內容 證明線全部好了, 如果全部出現 0xff 或 0x00請重新查看下鏈接是否正確。*注意 串口要調到 57600否則會出現亂碼。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM