NRF24L01 XN297L 無線網路 區域遠距傳輸

買到的測試東東

1100米遠距離 NRF24L01+PA+LNA的無線模塊 送天線

NRF24L01+ 無線模塊 功率加強版 2.4G無線收發通信模塊


想單純 只做 區域  遠距傳輸

兩組nFR24L01 2.4G無線模組,一組用來發射使用,一組用來接收使用,這裡說一下,nFR24L01 2.4G無線模組只能單向雙工,一個模組只能單純發送或接收,不能改變,所以我們使用兩塊Arduino開發板來分別收發。

NRF24L01是一款工作在2.4-2.5GHz區段,採用全球開放ISM 頻段,最大0dBm 發射功率,免許可證(NCC認證)使用。在空曠的地方傳輸可達100米傳輸的距離,並支援六路通道的資料接收。

每次最多可發28字元 
NRF24L01

NRF24L01一对多通信方法程序详解
四、是否可以一对多相互通信?
答:可以。nrf24l01最多一对几个呢?答案是无数个!官方手册上说,nrf24l01可以一对六,指的是自身的通道有6个,而且这种模式只能是1收6发,不能1发6收。所以我们一般不用这种方式。我们一般只用nrf24l01的通道0,通过改变频道和地址来实现1对多的互发。它属于2.4G芯片,但实际上,可以在2.4G到2.5G之间的频道上通信,一共有125个频道,它的地址是5字节的。所以用这种方式,可以实现一对无数的通信。当然,这只是一种理论,实际上由于环境中的各种干扰,太多了就乱了。
五、实现一对多通信的一种最常用的办法
一对多,最常用的办法就是跳频通信。不要被“跳频通信”四个字吓倒,其实就是换频道。原理:假设现在1对10通信相互收发数据,给10个节点的NRF24L01设置为不同的频道,如10 20 30 ……主机的NRF24L01,要想获得某个节点的数据,就设置为某个节点的频道,然后收发数据,完成以后,可以再去和另外一个节点通信。由于单片机运行速度快,挨个获取10个节点的数据,也就是眨眼的功夫。
原来是IO口电平匹配问题,以前NRF24L01是3.3V供电,5V IO口驱动的,现在XN297就不行了,必须也得3.3V IO口驱动,这一点没有NRF24L01做得好
***************************************************************
拿了2塊 Nano 測試,結果有一片 連好NRF後 連上傳都不行 結果發現 只要 D12 接上 這片NANO就死了另一片不會 確定是這片壞了
接法:多查幾個 怎麼都不一樣?
大部分看到另一種接法 是這樣
https://www.mysensors.org/build/connect_radio
MISO(D12) IRQ(D2)
SCK (D13) MOSI(D11)
CE (D9) CSN(D10)
GND (GND) VCC(3.3V)
*****另種
CE (D7) CSN(D8)
http://makerkuo.weebly.com/nrf24l01.html
Here are details of the Pinout and connections to Arduino (updated):

Signal

RF Module

PIN

Cable

COLOR

"Base Module"

PIN

Arduino pin for

TMRh20

RF24 Library

Arduino pin for

RF24 Library

Arduino pin for

Mirf Library

MEGA2560 pin

RF24 Library

Arduino Pin for

RH_NRF24

RadioHead Library

MEGA2560 Pin for

RH_NRF24

RadioHead Library

GND

1

Brown

GND

GND

GND *

GND

GND *

GND *

GND *

VCC

2

Red

VCC

3.3 V

3.3V *

3.3V

3.3V *

3.3V *

3.3V *

CE

3

Orange

CE

7

9

8

9

8

8

CSN

4

Yellow

CSN

8

10

7

53

10

53

SCK

5

Green

SCK

13

13

13

52

13

52

MOSI

6

Blue

MO

11

11

11

51

11

51

MISO

7

Violet

MI

12

12

12

50

12

50

IRQ

8

Gray

IRQ

-

2

per library

N/C

N/C

CE 跟 CSN 程式中可設定
Nano 比較奇怪
http://www.arduino.cn/thread-17602-1-1.html
原來後方6Pin也有功用

搞老半天 一直無法成功 板子又出問題
所以找到
http://www.arduino.cn/thread-17602-1-1.html
教怎麼確認 接線沒錯 NRF24L01 有動作
下載後
直接開 rf24_hardware_test 目錄下就有連線圖
經測試 Nano 接 11 12 13 跟接 6pin(ICSP)那邊效果一樣
測試 壞掉那一塊 果然還是不行 連上傳都卡住
這時想到 是不是(ICSP)那邊沒焊好 乾脆拿掉
再測 恩~~~ 修好了
這個測試版 真好用 早一點找到 就不用搞那麼久 還不確定問題在哪?
***************************************
這是我測的NRF24L01
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0 RX_ADDR_P0-1 = 0xe7e7e7e7e7 0xc2c2c2c2c2 RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6 TX_ADDR = 0xe7e7e7e7e7 RX_PW_P0-6 = 0x00 0x00 0x00 0x00 0x00 0x00 EN_AA = 0x3f EN_RXADDR = 0x03 RF_CH = 0x4c RF_SETUP = 0x07 CONFIG = 0x0e DYNPD/FEATURE = 0x00 0x00 Data Rate = 1MBPS Model = nRF24L01+ CRC Length = 16 bits PA Power = PA_MAX

XN297L  測試結果

STATUS = 0x00 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=0 TX_FULL=0
RX_ADDR_P0-1 = 0xe7e7e7e7e7 0xc2c2c2c2c2
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xe7e7e7e7e7
RX_PW_P0-6 = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA = 0x01
EN_RXADDR = 0x01
RF_CH = 0x4c
RF_SETUP = 0x17
CONFIG = 0x0e
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1MBPS
CRC Length = 16 bits
PA Power = PA_MAX
Model = nRF24L01+
*****************************************************************************

終於搞定了

怎麼搞就是連不起來
就在快要放棄的時候 想說用筆電再試一次 程式燒錄好後 筆電竟然會叫
一秒叫一次逼 把USB拔掉就不叫了 我想該不會是供電不足吧? 現在的新筆電有這功能?
換成另一個一般的 NRF24L01 甚麼都一樣的情況下 筆電就不叫了...真的是電源?
再把 麵包板電源 請出來用.....
哈哈 連通了
Arduino\libraries\RF24\examples\GettingStarted
兩邊都是燒這支 但其中一邊 bool radioNumber = 0; 要改成 1
就是一個0 一個1
開 序列監視 不管哪一邊 輸入 T "傳送" 就會開始動
唉~ 為了電源問題 又搞了一天.....
ps:確定 XN297L 看起來一樣 但沒法直接套

留言

熱門文章