Kā izmantot NRF24L01 ar Arduino bezvadu saziņai

  • NRF24L01 darbojas brīvajā 2.4 GHz joslā un var pārraidīt līdz 2 Mbps.
  • Lai uzlabotu moduļa stabilitāti, starp VCC un GND ieteicams izmantot kondensatoru.
  • Opcija ar pastiprinātāju optimālos apstākļos var sasniegt attālumus līdz 1 km.

nrf24l01

Ja strādājat ar Arduino un vēlaties ieviest efektīvu bezvadu saziņu starp ierīcēm, nav labākas iespējas par NRF24L01 raiduztvērēja moduli. Šis mazais, bet jaudīgais RF modulis ir viena no populārākajām iespējām, pateicoties tā zemajām izmaksām, ērtai lietošanai un lieliskajai veiktspējai 2.4 GHz joslā.

Šajā rakstā mēs izpētīsim, kā izmantot NRF24L01 moduli ar Arduino, izskaidrojot visu, sākot no visvienkāršākajiem aspektiem līdz progresīviem piemēriem, kā to ieviest projektos. Pārliecināsimies, ka saprotat, kā pieslēgt un izmantot šo moduli gan pamata, gan darbināmajā versijā un kā lietot nepieciešamās bibliotēkas, lai tas darbotos efektīvi.

Kas ir NRF24L01?

El NRF24L01 ir Nordic Semiconductor ražota RF raiduztvērēja mikroshēma, kas darbojas brīvajā joslā. 2.4 GHz. Tas ļauj pārraidīt un saņemt datus bezvadu režīmā starp vairākām ierīcēm, piemēram, mikrokontrolleriem, ar konfigurējamu ātrumu līdz 2 Mb/s Pats interesantākais ir tas, ka tas var darboties ar līdz pat sešām vienlaicīgi pieslēgtām ierīcēm, padarot to par ideālu rīku plašs elektronisko projektu klāsts.

Šim raiduztvērējam ir arī tehnoloģija kļūdu labošanai un neveiksmīgu datu atkārtotai pārsūtīšanai, saglabājot stabilu savienojuma kvalitāti. Tas atvieglo Arduino vai jebkura cita kontroliera, ar kuru tas ir savienots, apstrādes slodzi.

Vēl viens pozitīvs NRF24L01 aspekts ir tā zemais enerģijas patēriņš. stāvoklī Stand-by, tas patērē tikai aptuveni 22 µA, kas ir lieliski piemērots projektiem, kuriem nepieciešams mazs patēriņš. Darbības stāvoklī tā patēriņš var palielināties līdz 15 mA, kad tas sūta datus.

Dažādas NRF24L01 versijas

nrf24l01 pinout

Ir galvenokārt divas NRF24L01 moduļa versijas. The pamata versija Tam ir maza zig-zag antena, kas integrēta pašā moduļa platē. Šī versija ir ideāli piemērota saziņai nelielos attālumos ar efektīvu diapazonu 20 līdz 30 metri slēgtās telpās vai 50 metro atklātās vietās.

No otras puses, mums ir versija ar ārējo antenu un pastiprinātāju, kas pazīstams kā NRF24L01+ PA/LNA (jaudas pastiprinātājs/zema trokšņa pastiprinātājs), kas ievērojami paplašina sakaru diapazonu, sasniedzot līdz pat 1 kilometrs optimālos apstākļos. Šī versija ir dārgāka, taču būtiska, ja nepieciešams veikt lielus attālumus.

Uzturs un svarīgi apsvērumi

NRF24L01 barošanas spriegums ir no 1.9 līdz 3.6 V, tāpēc tas ir ļoti svarīgi Nepievienojiet to tieši Arduino 5 V kontaktam, jo tas var to sabojāt. Ieteicams izmantot Arduino 3.3 V kontaktu, lai to darbinātu, lai gan daudzos gadījumos būs nepieciešams izmantot ārēju sprieguma regulatoru, ja vēlaties garantēt stabilāku barošanas avotu.

Turklāt, lai uzlabotu pārraides uzticamību, it īpaši versijā ar pastiprinātāju, ieteicams ievietot 10 µF līdz 100 µF kondensators starp moduļa barošanas tapām (VCC un GND). Tas stabilizēs jaudu un neļaus sprieguma kritumiem ietekmēt RF signāla stabilitāti.

NRF24L01 savienošana ar Arduino

NRF24L01 izmanto SPI interfeiss lai sazinātos ar mikrokontrolleri. SPI ir sinhronas seriālās komunikācijas interfeiss, kas ļauj ātri un efektīvi pārraidīt datus. Lūk, kā savienot raiduztvērēju NRF24L01 ar a Arduino UNO:

Tap NRF24L01 tapa Arduino UNO
VCC 3.3V
GND GND
CE 9
CSN 10
SCK 13
MOSI 11
Miso 12

Ja izmantojat Arduino MEGA, SPI saziņas tapas būs atšķirīgas:

Tap NRF24L01 Arduino MEGA Pin
VCC 3.3V
GND GND
CE 9
CSN 53
SCK 52
MOSI 51
Miso 50

RF24 bibliotēkas uzstādīšana

Lai izmantotu NRF24L01 ar Arduino, ir jāinstalē bibliotēka RF24, kas ietver visas funkcijas, kas jums būs nepieciešamas, lai vadītu moduli. Šī bibliotēka ir ļoti pilnīga un ļoti optimizēta, lai garantētu ātru un stabilu saziņu.

Lai instalētu bibliotēku, veiciet šīs darbības:

  1. Atveriet Arduino IDE.
  2. Iet uz Skice > Iekļaut bibliotēku > Pārvaldīt bibliotēkas…
  3. Bibliotēkas pārvaldniekā meklējiet “RF24” un instalējiet to.

RF24 bibliotēkas galvenās funkcijas

Kad RF24 bibliotēka būs instalēta, varēsiet izmantot vairākas funkcijas, kas ļaus inicializēt un pārvaldīt saziņu ar raiduztvērēju. Zemāk mēs parādīsim vissvarīgākos:

  • RF24 (uint8_t _cepin, uint8_t _cspin)- Šī funkcija izveido jaunu raiduztvērēja gadījumu, norādot, kuras CE un CSN tapas izmantojat Arduino.
  • tukšs sākums (): Inicializē radio moduli. Šai funkcijai jābūt programmas setup() funkcijā.
  • void openWritingPipe(const uint8_t * adrese)- Atver rakstīšanas kanālu, uz kuru tiks nosūtīti dati. Lai identificētu kanālu, ir nepieciešama 5 baitu adrese.
  • bool write (const void *buf, uint8_t len): sūta datus pa rakstīšanas kanālu. Atgriež vērtību True, ja nosūtīšana bija veiksmīga, un false, ja nosūtīšanu nevarēja veikt.
  • void openReadingPipe(uint8_t numurs, const uint8_t * adrese)- Atver nolasīšanas kanālu, lai modulis varētu saņemt datus no citas adreses.
  • Void startListening()- Aktivizē klausīšanās režīmu, lai saņemtu datus no lasīšanai atvērtiem kanāliem.
  • bool pieejams ()- Pārbauda, ​​vai lasīšanas kanālā ir pieejami dati.
  • Void read (void *buf, uint8_t len): nolasa lasīšanas kanālā pieejamos datus un saglabā tos nodrošinātajā buferī.

Koda piemērs: pamata saziņa starp diviem Arduinos

Lai ilustrētu, kā izmantot NRF24L01, mēs veiksim pamata saziņas piemēru, kurā viens Arduino nosūtīs citam trīs datus: analogās tapas A0 vērtību, laiku milisekundēs, cik ilgi kods ir darbojies (millis()). un vērtības konstante (šajā gadījumā 3.14).

Arduino emitētāja kods:

#include <SPI.h>
#include <RF24.h>

#define CE_PIN 9
#define CSN_PIN 10
RF24 radio(CE_PIN, CSN_PIN);

const byte direccion[5] = {'c','a','n','a','l'};
float datos[3];

void setup() {
 radio.begin();
 radio.openWritingPipe(direccion);
 Serial.begin(9600);
}

void loop() {
 datos[0] = analogRead(A0) * (5.0 / 1023.0);
 datos[1] = millis();
 datos[2] = 3.14;
 bool ok = radio.write(datos, sizeof(datos));
 if (ok) {
 Serial.println("Datos enviados");
 } else {
 Serial.println("Error en el envío");
 }
 delay(1000);
}

Arduino uztvērēja kods:

#include <SPI.h>
#include <RF24.h>

#define CE_PIN 9
#define CSN_PIN 10
RF24 radio(CE_PIN, CSN_PIN);

const byte direccion[5] = {'c','a','n','a','l'};
float datos[3];

void setup() {
 radio.begin();
 radio.openReadingPipe(1, direccion);
 radio.startListening();
 Serial.begin(9600);
}

void loop() {
 if (radio.available()) {
 radio.read(datos, sizeof(datos));
 Serial.print("Voltaje: ");
 Serial.print(datos[0]);
 Serial.print(" V, Time: ");
 Serial.print(datos[1]);
 Serial.print(" ms, Sensor: ");
 Serial.println(datos[2]);
 }
 delay(1000);
}

Šajā piemērā sūtītājs Arduino nolasa potenciometra vērtību, kas savienots ar tapu A0, un nosūta to kopā ar millis () vērtību un nemainīgiem datiem. Saņemošais Arduino saņem šīs trīs vērtības, izdrukā tās uz sērijas monitoru, lai jūs varētu redzēt rezultātus.

Padomi veiktspējas uzlabošanai

Lai gan NRF24L01 ir ļoti efektīva ierīce, tās veiktspēja un diapazons var ievērojami atšķirties atkarībā no vairākiem faktoriem. Tālāk mēs sniedzam dažus padomus, kā uzlabot tā darbību:

  • Izmantojot ārējo barošanas avotu: Ja izmantojat versiju ar PA/LNA, obligāti jāizmanto ārējais barošanas avots. Arduino jauda nebūs pietiekama, lai pareizi darbinātu moduli lielos attālumos.
  • Novietojiet kondensatoru starp VCC un GND: Kondensators no 10 līdz 100 µF uzlabos moduļa stabilitāti un novērsīs strāvas problēmas.
  • Izvairieties no traucējumiem: NRF24L01 darbojas tajā pašā frekvenču joslā kā WiFi tīkli, tāpēc ieteicams izvēlēties kanālus no 2.4 līdz 2.5 GHz, ko parasti izmanto WiFi maršrutētāji.

Izmantojot šo informāciju, jums tagad ir viss nepieciešamais, lai savos projektos sāktu strādāt ar NRF24L01 un Arduino. Šī ierīce paver ļoti daudz iespēju bezvadu sakaru sistēmu izveidei, sākot no sensoru attālās uzraudzības līdz robotu vadīšanai lielos attālumos.


Esi pirmais, kas komentārus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.