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

標題: 【Arduino】108種傳感器模塊系列實驗(116)--- 24L01無線模塊 [打印本頁]

作者: eagler8    時間: 2019-9-18 20:16
標題: 【Arduino】108種傳感器模塊系列實驗(116)--- 24L01無線模塊
37款傳感器與模塊的提法,在網絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止37種的。鑒于本人手頭積累了一些傳感器和模塊,依照實踐出真知(一定要動手做)的理念,以學習和交流為目的,這里準備逐一動手試試做實驗,不管成功與否,都會記錄下來---小小的進步或是搞不定的問題,希望能夠拋磚引玉。

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






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




作者: eagler8    時間: 2019-9-18 21:06


作者: eagler8    時間: 2019-9-18 21:46


作者: eagler8    時間: 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引腳塊判斷是否完成數據接收和數據發送


作者: eagler8    時間: 2019-9-18 21:57

NRF24L01電原理圖

作者: eagler8    時間: 2019-9-19 08:53


作者: eagler8    時間: 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 的電阻。


作者: eagler8    時間: 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 口就可以了,當然用串口也可以了。





作者: eagler8    時間: 2019-9-19 09:31


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


作者: eagler8    時間: 2019-9-19 09:40


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

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




作者: eagler8    時間: 2019-9-19 11:14


作者: eagler8    時間: 2019-9-19 13:02


作者: eagler8    時間: 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. }
復制代碼



作者: eagler8    時間: 2019-9-19 14:12


作者: eagler8    時間: 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. }
復制代碼



作者: eagler8    時間: 2019-9-19 14:17


作者: eagler8    時間: 2019-9-19 14:29


作者: eagler8    時間: 2019-9-19 16:22


作者: eagler8    時間: 2019-9-19 16:24


作者: eagler8    時間: 2019-9-19 16:25


作者: eagler8    時間: 2019-9-19 16:26


作者: zlt_123456    時間: 2020-4-11 15:35
問一下出現Mirf.h: No such file or directory錯誤是啥意思
作者: eagler8    時間: 2020-10-24 15:36
zlt_123456 發表于 2020-4-11 15:35
問一下出現Mirf.h: No such file or directory錯誤是啥意思

沒有這樣的文件或目錄




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 精品国产乱码久久久久久丨区2区 | 中文字幕日韩欧美一区二区三区 | 日韩一区在线播放 | 久久亚洲视频 | 一区二区三区在线免费观看 | 91超碰caoporn97人人 | 自拍第1页 | 黄色欧美在线 | 欧美日韩久久久久 | 精品www| 综合久| 羞羞网站免费观看 | 亚洲成人福利在线观看 | 夜夜爽99久久国产综合精品女不卡 | 国产第一亚洲 | 欧美一区二区三区在线看 | 久久天堂网 | 欧美日韩精品专区 | 激情一区二区三区 | a在线视频观看 | 成人激情免费视频 | 亚洲视频一区二区三区四区 | 日本天天操 | 中文字幕免费在线 | 成人av网页 | 99视频在线免费观看 | 伊人激情网 | 九九热在线免费视频 | 一区二区三区国产 | 久久国产日韩 | 亚洲毛片在线 | 亚洲精品成人网 | 一本大道久久a久久精二百 国产成人免费在线 | 国产黄a一级 | 国产精品入口久久 | 欧美黄色绿像 | 国产人成精品一区二区三 | 一级黄色片毛片 | 日韩欧美电影在线 | 成人精品一区亚洲午夜久久久 | 亚洲色图图片 |