NRF24L01無(wú)線收發(fā)器模塊的功能:
?Cost(對(duì)于類型版本,費(fèi)用在1 $到3 $之間)
?Range
?Availability
?易于使用
NRF24L01無(wú)線收發(fā)器模塊的類型:
NRF24LO1有兩種類型:
?NRF24L01具有天線(在開(kāi)放空間中大約為公里)
?NRF24L01(無(wú)天線)(在開(kāi)放空間中大約為50米)
NRF24L01無(wú)線收發(fā)器模塊的應(yīng)用:
?無(wú)線家庭自動(dòng)化
?Drones遠(yuǎn)程控制
?遠(yuǎn)程傳感器,用于溫度,壓力,警報(bào)等
?機(jī)器人控制和監(jiān)視
NRF24L01無(wú)線收發(fā)器模塊的功耗:
?此模塊的功耗在傳輸過(guò)程中僅為12mA左右
?模塊的電壓范圍是1.9至3.6V
第2步:觀看視頻以了解更多詳情
第3步:要克服的問(wèn)題
許多用戶遇到NRF24L01模塊的問(wèn)題。這些問(wèn)題的根源通常來(lái)自3.3v Power。由于該模塊沒(méi)有足夠的電流能力。這是為什么我建議使用以下任一方式:
?帶有穩(wěn)壓器和旁路電容器的基本模塊,以保持穩(wěn)定性
?從+ 3.3V到Gnd直接在模塊上的3.3 uF至10 uF(MicroFarad)電容器
步驟4:原理圖
CE和CSN引腳可以連接到任何數(shù)字引腳。然后,在RF24庫(kù)中,您可以指定使用的引腳。我選擇了引腳8和9,因?yàn)槲覍⒃谑纠惺褂盟鼈儭?/p>
在我們的例子中,我們將使用Arduino Uno,這就是為什么您應(yīng)該遵循以下說(shuō)明(或遵循上圖)的原因:
MOSI連接到數(shù)字引腳11
MISO連接到數(shù)字引腳12
SCK連接到數(shù)字引腳13
SS(未使用)
注意:使用NRF24L01時(shí),您必須記住這些數(shù)字引腳不可用。
請(qǐng)觀看以下視頻
步驟5:下載RF24庫(kù)
在此項(xiàng)目中,我們使用了RF24庫(kù),該庫(kù)可以在Github上下載:RF24庫(kù)
1。首先,您需要單擊“下載ZIP”按鈕
2。將zip文件解壓縮到您的Arduino主目錄中:Linux/Linux上的Arduino/庫(kù)或Windows中的文檔/Arduino/庫(kù)。
步驟6:發(fā)射器Arduino代碼
發(fā)送器草圖將如下所示:
/** Arduino Wireless Communication Tutorial
* Transmitter Code
*
* by Smart Technology, https://makesmarttech.blogspot.com/
*
* Library: TMRh20/RF24,https://tmrh20.github.io/RF24
*/
#include
#include
#include
#define button 7
RF24 radio(8, 9); // CE, CSN
const byte address[6] = “00001”;
boolean buttonState = 0;
void setup() {
pinMode(button, INPUT);
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_MAX);
radio.stopListening();
}
void loop() {
delay(5);
radio.stopListening();
buttonState = digitalRead(button);
radio.write(&buttonState, sizeof(buttonState));
}
第7步:接收器Arduino代碼
接收器草圖將如下所示:
/** Arduino Wireless Communication Tutorial
* Receiver Code
*
* by Smart Technology, https://makesmarttech.blogspot.com/
* Library: TMRh20/RF24, https://tmrh20.github.io/RF24
*/
#include
#include
#include
#define led 7
RF24 radio(8, 9); // CE, CSN
const byte address[6] = “00001”;
boolean buttonState = 0;
void setup() {
pinMode(7, OUTPUT);
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_MAX);
radio.startListening();
}
void loop() {
delay(5);
radio.startListening();
while (!radio.available());
radio.read(&buttonState, sizeof(buttonState));
if (buttonState == HIGH) {
digitalWrite(led, HIGH);
}
else {
digitalWrite(led, LOW);
}
}
第8步:獲得支持
責(zé)任編輯:wv
-
nRF24L01
+關(guān)注
關(guān)注
17文章
331瀏覽量
69655 -
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
187829
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論