NRF24L01 XN297L 無線網路 區域遠距傳輸
買到的測試東東
想單純 只做 區域 遠距傳輸
兩組nFR24L01 2.4G無線模組,一組用來發射使用,一組用來接收使用,這裡說一下,nFR24L01 2.4G無線模組只能單向雙工,一個模組只能單純發送或接收,不能改變,所以我們使用兩塊Arduino開發板來分別收發。
NRF24L01是一款工作在2.4-2.5GHz區段,採用全球開放ISM 頻段,最大0dBm 發射功率,免許可證(NCC認證)使用。在空曠的地方傳輸可達100米傳輸的距離,並支援六路通道的資料接收。
每次最多可發28字元
NRF24L01
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):
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
STATUS = 0x00 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=0 TX_FULL=0XN297L 測試結果
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 看起來一樣 但沒法直接套
留言
張貼留言