久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4053|回復: 28
打印 上一主題 下一主題
收起左側

【Arduino】108種傳感器模塊系列實驗(116)--- 24L01無線模塊

[復制鏈接]
跳轉到指定樓層
樓主
37款傳感器與模塊的提法,在網絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止37種的。鑒于本人手頭積累了一些傳感器和模塊,依照實踐出真知(一定要動手做)的理念,以學習和交流為目的,這里準備逐一動手試試做實驗,不管成功與否,都會記錄下來---小小的進步或是搞不定的問題,希望能夠拋磚引玉。

【Arduino】108種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
實驗一百一十六:NRF24L01+ 無線模塊 功率加強版 2.4G無線收發通信模塊 黑金剛





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:513258 發表于 2019-9-18 20:43 | 只看該作者
NRF24L01
是由NORDIC生產的工作在2.4GHz~2.5GHz的ISM 頻段的單片無線收發器芯片。無線收發器包括:頻率發生器、增強型“SchockBurst”模式控制器、功率放大器、晶體振蕩器、調制器和解調器。輸出功率頻道選擇和協議的設置可以通過SPI 接口進行設置。幾乎可以連接到各種單片機芯片,并完成無線數據傳送工作。極低的電流消耗:當工作在發射模式下發射功率為0dBm 時電流消耗為11.3mA ,接收模式時為12.3mA,掉電模式和待機模式下電流消耗更低。



回復

使用道具 舉報

板凳
ID:513258 發表于 2019-9-18 21:06 | 只看該作者

回復

使用道具 舉報

地板
ID:513258 發表于 2019-9-18 21:46 | 只看該作者

回復

使用道具 舉報

5#
ID:513258 發表于 2019-9-18 21:52 | 只看該作者

性能參數
◆ 小體積,QFN20 4x4mm封裝
◆ 寬電壓工作范圍,1.9V~3.6V,輸入引腳可承受5V電壓輸入
◆ 工作溫度范圍,-40℃~+80℃
◆ 工作頻率范圍,2.400GHz~2.525GHz
◆ 發射功率可選擇為0dBm、-6dBm、-12dBm和-18dBm
◆ 數據傳輸速率支持1Mbps、2Mbps [1]
◆ 低功耗設計,接收時工作電流12.3mA,0dBm功率發射時11.3mA,掉電模式時僅為900nA
◆ 126個通訊通道,6個數據通道,滿足多點通訊和調頻需要
◆ 增強型“ShockBurst”工作模式,硬件的CRC校驗和點對多點的地址控制
◆ 數據包每次可傳輸1~32Byte的數據
◆ 4線SPI通訊端口,通訊速率最高可達8Mbps,適合與各種MCU連接,編程簡單
◆ 可通過軟件設置工作頻率、通訊地址、傳輸速率和數據包長度
◆ MCU可通過IRQ引腳塊判斷是否完成數據接收和數據發送

回復

使用道具 舉報

6#
ID:513258 發表于 2019-9-18 21:57 | 只看該作者

NRF24L01電原理圖
回復

使用道具 舉報

7#
ID:513258 發表于 2019-9-19 08:53 | 只看該作者

回復

使用道具 舉報

8#
ID:513258 發表于 2019-9-19 09:02 | 只看該作者

NRF24L01無線模塊
(1) 2.4Ghz 全球開放 ISM 頻段免許可證使用
(2) 最高工作速率 2Mbps,高效 GFSK 調制,抗干擾能力強,特別適合工業控制場合
(3) 126 頻道,滿足多點通信和跳頻通信需要
(4) 內置硬件 CRC 檢錯和點對多點通信地址控制
(5) 低功耗 1.9 - 3.6V 工作,待機模式下狀態為 22uA;掉電模式下為 900nA
(6) 內置 2.4Ghz 天線,體積種類多樣
(7) 模塊可軟件設地址,只有收到本機地址時才會輸出數據(提供中斷指示),可直接接各種單片機使用,軟件編程非常方便
(8) 內置專門穩壓電路,使用各種電源包括 DC/DC 開關電源均有很好的通信效果
(9) 2.54MM 間距接口,DIP 封裝
(10)工作于 Enhanced ShockBurst 具有 Automatic packethandling, Auto packet transaction handling,具有可選的內置包應答機制,極大的降低丟包率。
(11)與 51 系列單片機 P0 口連接時候,需要加 10K 的上拉電阻,與其余口連接不需要。
(12)其他系列的單片機,如果是 5V 的,請參考該系列單片機 IO 口輸出電流大小,如果超過 10mA,需要串聯電阻分壓,否則容易燒毀模塊! 如果是3.3V的,可以直接和RF24l01模塊的IO口線連接。比如AVR系列單片機如果是5V 的,一般串接2K 的電阻。

回復

使用道具 舉報

9#
ID:513258 發表于 2019-9-19 09:29 | 只看該作者
接口說明
1) VCC 腳接電壓范圍為 1.9V~3.6V 之間,不能在這個區間之外,超過 3.6V 將會燒毀模塊。推薦電壓 3.3V 左右。
(2) 除電源 VCC 和接地端,其余腳都可以直接和普通的 5V 單片機 IO口直接相連,無需電平轉換。當然對 3V 左右的單片機更加適用了。
(3) 硬件上面沒有 SPI 的單片機也可以控制本模塊,用普通單片機 IO口模擬 SPI 不需要單片機真正的串口介入,只需要普通的單片機 IO 口就可以了,當然用串口也可以了。




回復

使用道具 舉報

10#
ID:513258 發表于 2019-9-19 09:31 | 只看該作者


應用領域
● 無線鼠標 鍵盤 游戲機操縱桿
● 無線門禁
● 無線數據通訊
● 安防系統
● 遙控裝置
● 遙感勘測
● 智能運動設備
● 工業傳感器
● 玩具

回復

使用道具 舉報

11#
ID:513258 發表于 2019-9-19 09:40 | 只看該作者

回復

使用道具 舉報

12#
ID:513258 發表于 2019-9-19 09:50 | 只看該作者
低應用成本:NRF24L01集成了所有與RF協議相關的高速信號處理部分,比如:自動重發丟失數據包和自動產生應答信號等,NRF24L01的SPI接口可以利用單片機的硬件SPI口連接或用單片機I/O口進行模擬,內部有FIFO可以與各種高低速微處理器接口,便于使用低成本單片機。

便于開發:由于鏈路層完全集成在模塊上,非常便于開發。自動重發功能,自動檢測和重發丟失的數據包,重發時間及重發次數可軟件控制自動存儲未收到應答信號的數據包自動應答功能,在收到有效數據后,模塊自動發送應答信號,無須另行編程載波檢測—固定頻率檢測內置硬件CRC檢錯和點對多點通信地址控制數據包傳輸錯誤計數器及載波檢測功能可用于跳頻設置可同時設置六路接收通道地址,可有選擇性的打開接收通道標準插針Dip2.54MM間距接口,便于嵌入式應用。



回復

使用道具 舉報

13#
ID:513258 發表于 2019-9-19 11:14 | 只看該作者

回復

使用道具 舉報

14#
ID:513258 發表于 2019-9-19 13:02 | 只看該作者

回復

使用道具 舉報

15#
ID:513258 發表于 2019-9-19 14:08 | 只看該作者
  1. /*
  2. 【Arduino】108種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
  3. 實驗一百一十六:NRF24L01+ 無線模塊 功率加強版 2.4G無線收發通信模塊 黑金剛
  4. 1、安裝“Mirf”庫(下載鏈接 https://github.com/aaronds/arduino-nrf24l01)
  5.      安裝“rf24”庫(下載鏈接 https://github.com/nRF24/RF24)
  6. 2、項目測試 :NRF24L01最簡單測試之Client 示例代碼
  7. 3、模塊接線
  8. Arduino uno    ---    nRF24L01
  9. 3.3V                 ---    VCC:模塊供電引腳
  10. GND                 ---    GND:模塊接地引腳
  11. D7                    ---    CSN:接收端選擇引腳
  12. D8                    ---    CE:發射/接受狀態選擇引腳
  13. D11                  ---    MOSI :控制端輸出,接收端輸入引腳
  14. D13                  ---    SCK:時鐘信號
  15. D12                  ---    MISO:控制端輸入,接收端輸出引腳
  16. *IRQ引腳在本例中不需要接
  17. */

  18. #include <SPI.h>
  19. #include <Mirf.h>
  20. #include <nRF24L01.h>
  21. #include <MirfHardwareSpiDriver.h>

  22. void setup(){
  23.   Serial.begin(9600);
  24.   /*
  25.    * Setup pins / SPI.
  26.    */
  27.    
  28.   /* To change CE / CSN Pins:
  29.    *
  30.    * Mirf.csnPin = 9;
  31.    * Mirf.cePin = 7;
  32.    */
  33.   /*
  34.   Mirf.cePin = 7;
  35.   Mirf.csnPin = 8;
  36.   */
  37.   Mirf.spi = &MirfHardwareSpi;
  38.   Mirf.init();
  39.   
  40.   /*
  41.    * Configure reciving address.
  42.    */
  43.    
  44.   Mirf.setRADDR((byte *)"clie1");
  45.   
  46.   /*
  47.    * Set the payload length to sizeof(unsigned long) the
  48.    * return type of millis().
  49.    *
  50.    * NB: payload on client and server must be the same.
  51.    */
  52.    
  53.   Mirf.payload = sizeof(unsigned long);
  54.   
  55.   /*
  56.    * Write channel and payload config then power up reciver.
  57.    */
  58.    
  59.   /*
  60.    * To change channel:
  61.    *
  62.    * Mirf.channel = 10;
  63.    *
  64.    * NB: Make sure channel is legal in your area.
  65.    */
  66.    
  67.   Mirf.config();
  68.   
  69.   Serial.println("Beginning ... ");
  70. }

  71. void loop(){
  72.   unsigned long time = millis();
  73.   
  74.   Mirf.setTADDR((byte *)"serv1");
  75.   
  76.   Mirf.send((byte *)&time);
  77.   
  78.   while(Mirf.isSending()){
  79.   }
  80.   Serial.println("Finished sending");
  81.   delay(10);
  82.   while(!Mirf.dataReady()){
  83.     //Serial.println("Waiting");
  84.     if ( ( millis() - time ) > 1000 ) {
  85.       Serial.println("Timeout on response from server!");
  86.       return;
  87.     }
  88.   }
  89.   
  90.   Mirf.getData((byte *) &time);
  91.   
  92.   Serial.print("Ping: ");
  93.   Serial.println((millis() - time));
  94.   
  95.   delay(1000);
  96. }
復制代碼


回復

使用道具 舉報

16#
ID:513258 發表于 2019-9-19 14:12 | 只看該作者

回復

使用道具 舉報

17#
ID:513258 發表于 2019-9-19 14:14 | 只看該作者
  1. /*
  2. 【Arduino】108種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
  3. 實驗一百一十六:NRF24L01+ 無線模塊 功率加強版 2.4G無線收發通信模塊 黑金剛
  4. 1、安裝“Mirf”庫(下載鏈接 https://github.com/aaronds/arduino-nrf24l01)
  5.      安裝“rf24”庫(下載鏈接 https://github.com/nRF24/RF24)
  6. 2、項目測試 :NRF24L01最簡單測試之Server示例代碼
  7. 3、模塊接線
  8. Arduino uno    ---    nRF24L01
  9. 3.3V                 ---    VCC:模塊供電引腳
  10. GND                 ---    GND:模塊接地引腳
  11. D7                    ---    CSN:接收端選擇引腳
  12. D8                    ---    CE:發射/接受狀態選擇引腳
  13. D11                  ---    MOSI :控制端輸出,接收端輸入引腳
  14. D13                  ---    SCK:時鐘信號
  15. D12                  ---    MISO:控制端輸入,接收端輸出引腳
  16. *IRQ引腳在本例中不需要接
  17. */

  18. #include <SPI.h>
  19. #include <Mirf.h>
  20. #include <nRF24L01.h>
  21. #include <MirfHardwareSpiDriver.h>

  22. void setup(){
  23.   Serial.begin(9600);
  24.   
  25.   /*
  26.    * Set the SPI Driver.
  27.    */

  28.   Mirf.spi = &MirfHardwareSpi;
  29.   
  30.   /*
  31.    * Setup pins / SPI.
  32.    */
  33.    
  34.   Mirf.init();
  35.   
  36.   /*
  37.    * Configure reciving address.
  38.    */
  39.    
  40.   Mirf.setRADDR((byte *)"serv1");
  41.   
  42.   /*
  43.    * Set the payload length to sizeof(unsigned long) the
  44.    * return type of millis().
  45.    *
  46.    * NB: payload on client and server must be the same.
  47.    */
  48.    
  49.   Mirf.payload = sizeof(unsigned long);
  50.   
  51.   /*
  52.    * Write channel and payload config then power up reciver.
  53.    */
  54.    
  55.   Mirf.config();
  56.   
  57.   Serial.println("Listening...");
  58. }

  59. void loop(){
  60.   /*
  61.    * A buffer to store the data.
  62.    */
  63.    
  64.   byte data[Mirf.payload];
  65.   
  66.   /*
  67.    * If a packet has been recived.
  68.    *
  69.    * isSending also restores listening mode when it
  70.    * transitions from true to false.
  71.    */
  72.    
  73.   if(!Mirf.isSending() && Mirf.dataReady()){
  74.     Serial.println("Got packet");
  75.    
  76.     /*
  77.      * Get load the packet into the buffer.
  78.      */
  79.      
  80.     Mirf.getData(data);
  81.    
  82.     /*
  83.      * Set the send address.
  84.      */
  85.      
  86.      
  87.     Mirf.setTADDR((byte *)"clie1");
  88.    
  89.     /*
  90.      * Send the data back to the client.
  91.      */
  92.      
  93.     Mirf.send(data);
  94.    
  95.     /*
  96.      * Wait untill sending has finished
  97.      *
  98.      * NB: isSending returns the chip to receving after returning true.
  99.      */
  100.       
  101.     Serial.println("Reply sent.");
  102.   }
  103. }
復制代碼


回復

使用道具 舉報

18#
ID:513258 發表于 2019-9-19 14:17 | 只看該作者

回復

使用道具 舉報

19#
ID:513258 發表于 2019-9-19 14:29 | 只看該作者

回復

使用道具 舉報

20#
ID:513258 發表于 2019-9-19 16:22 | 只看該作者

回復

使用道具 舉報

21#
ID:513258 發表于 2019-9-19 16:24 | 只看該作者

回復

使用道具 舉報

22#
ID:513258 發表于 2019-9-19 16:25 | 只看該作者

回復

使用道具 舉報

23#
ID:513258 發表于 2019-9-19 16:26 | 只看該作者

回復

使用道具 舉報

24#
ID:683442 發表于 2020-4-11 15:35 | 只看該作者
問一下出現Mirf.h: No such file or directory錯誤是啥意思
回復

使用道具 舉報

25#
ID:513258 發表于 2020-10-24 15:36 | 只看該作者
zlt_123456 發表于 2020-4-11 15:35
問一下出現Mirf.h: No such file or directory錯誤是啥意思

沒有這樣的文件或目錄
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品在线观看入口 | a国产一区二区免费入口 | 久久成人国产 | 日本不卡一区二区三区 | 国产精品成人一区二区 | 亚洲精品久久久久久久久久久久久 | 成人性视频免费网站 | 欧美一区二区三区精品 | 欧美精品v | 日一区二区三区 | www久久久 | 国产精品免费一区二区三区 | 北条麻妃一区二区三区在线视频 | 日韩国产高清在线观看 | 91免费观看 | 午夜激情国产 | 欧美 日韩 国产 成人 在线 | 日韩中文一区 | 久久88 | 日韩精品一区二区三区中文字幕 | 老熟女毛片 | 国产第一亚洲 | 亚洲三级av | 欧洲国产精品视频 | 国产精品我不卡 | 天天干狠狠| 亚洲第一免费播放区 | 狠狠av | 欧美视频免费在线 | 欧美精品第一页 | 91精品国产综合久久婷婷香蕉 | 亚洲午夜在线 | 99热热| 日韩中文字幕 | 东方伊人免费在线观看 | 国产蜜臀 | av在线免费不卡 | 精品国产乱码久久久久久闺蜜 | 91社区在线观看高清 | 国产精品日韩一区二区 | 色99视频|