Microcontrolere Lab

Table of Contents

NRF24L01 este unul dintre comunicatoarele RF legale pentru aplicațiile moderne. NRF24L01 este cel mai ieftin și vine cu caracteristici excelente. Un singur modul comunică la o frecvență de 2,4 GHz, ceea ce îl face legal. Acesta poate transmite și primi date printr-un singur modul. Transrecepția nu este singura sa abilitate, acesta poate comunica cu un total de alte 6 module NRF24L01 identice la un moment dat. Dispozitivul se interfațează cu aplicația Arduino și acoperă toate tipurile de aplicații de telecomandă. Acest modul wireless utilizează protocolul de comunicare SPI și oferă o rată de date de 10MBs cu o gamă de 125 de adrese, ceea ce îl face cel mai fiabil modul RF. Modulul RF utilizează modulul GFSK pentru a transceiver datele.

Configurația pinilor NRF24L01

În NRF24L01 nu există niciun pin special, toți pinii pe care îi oferă pentru a comunica sunt prezenți în toate microcontrolerele și plăcile. Dispozitivul se va interfața cu un microcontroler extern/Arduino prin acești pini pentru a funcționa. Acesta este format din 8 pini. Toți pinii disponibili sunt:

Pinii de alimentare

VCC

Pin-ul de alimentare al modulului este VCC, care se conectează cu sursa de alimentare.

GND

nRF24L01 funcționează cu un alt microcontroler și va avea nevoie de o masă comună pentru a funcționa cu acesta. Pinul GND va rezolva cerința de masă comună.

Pinii de comunicare

CE

CE este un pin de activare, care activează transmisia/recepția modulului. Acesta va activa dispozitivul numai atunci când există o stare HIGH pe el însuși.

CSN

Acest pin este pentru activarea ascultării și procesării datelor de la microcontroler. Pentru a menține comunicarea de date între microcontroler și modul, acesta trebuie să fie HIGH.

SCK

Este pinul de impuls de ceas al comunicării SPI în nRF24L01. Datele se vor deplasa între modul și microcontroler în funcție de impulsul de ceas de pe pinul SCK.

MOSI

Datele transmise de la microcontroler prin pinii SPI vor fi recepționate de nRF24L01 la pinul MOSI.

MISO

Instrucțiunile transmise de nRF24L01 prin intermediul pinilor SPI vor fi recepționate de microcontroler la pinul MISO.

IRQ Pin de întrerupere

IRQ este un pin de întrerupere, care generează evenimentul ori de câte ori o nouă dată este disponibilă pentru pinii SPI. Ajută la trimiterea de feedback către emițător.

Caracteristică modul RF NRF24L01

  • Funcționează la frecvența de 2,4 GHz, ceea ce îl face legal în aproape toate țările.
  • Un singur modul poate acționa atât ca emițător, cât și ca receptor.
  • O antenă încorporată poate trimite datele până la 100 de metri.
  • Un modul nRF24L01 poate comunica cu maxim 6 alte module în același timp.
  • Este nevoie de 3,3 volți pentru a funcționa, dar tensiunile se pot extinde doar până la 3,6V, altfel nu va dura mult timp să se încălzească și să ardă.
  • Dispozitivul are un oscilator încorporat de 16MHz.
  • Viteza de transmisie a nRF24L01 este de 256kbps până la 2Mbps.
  • Dispozitivul are o gamă de 125 de canale care oferă caracteristica de a opera 125 de rețele diferite într-un singur loc.
  • Frecvențele canalelor variază de la 2400MHz la 2525MHz.

Aplicații NRF24L01

  • În crearea unei rețele mesh mici, nRF24L01 este cea mai bună alegere de utilizat.
  • Aplicațiile de control la distanță la nivel de dezvoltare și comercial funcționează de minune cu nRF24L01.
  • Majoritatea aplicațiilor IoT la nivel casnic au acest modul wireless, dar numai la un nivel mic.

Cum se utilizează modulul de comunicație NRF24L01

nRF24L01 este utilizabil cu toate microcontrolerele și plăcile inteligente, dar pentru a-l utiliza, trebuie înțelese unele informații despre pini și date. Pentru a utiliza modulul, conectați-l cu un alt microcontroler cu protocol SPI. În primul rând, dați intrarea de putere dispozitivelor și apoi atașați pinii lor SPI conform circuitului dat.

După ce îl atașați, țineți minte că există două moduri în care nRF24L01 poate funcționa. Primul este emițător și al doilea și receptor. Pentru a comunica ca emițător și receptor microcontrolerul trebuie să fi știut mai întâi. În aplicația modernă, Arduino este singurul dispozitiv care suportă cea mai eficientă comunicare a comunicării nRF24L01.

Interfațarea cu Arduino

Există o mulțime de lucrări și cercetări despre nRF24L01 pe internet care pot ajuta la utilizarea acestuia în multe aplicații, dar există baza acestui modul în Arduino pe care fiecare dezvoltator ar trebui să o înțeleagă. Funcționarea de bază a nRF24L01 este emițătorul și receptorul, în Arduino, ambele sunt realizabile prin următoarele metode. Iată circuitul pentru Arduino UNO.

Cum se utilizează ca emițător Exemplu

Când nRF24L01 va acționa ca emițător, atunci acesta poate transmite date doar pe un singur canal către un alt modul. Pentru a-l utiliza ca emițător, programul din Arduino ar trebui să știe. După încărcarea programului nu există modalități fără programare modurile între emițător și receptor sunt schimbabile. Pentru a-l utiliza ca emițător ar trebui încărcat următorul cod:

Detalii despre codul emițătorului

Comunicarea dintre Arduino și nRF24L01 depinde de următoarele biblioteci:

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

Cum știm că fiecare placă Arduino are un pin SPI specific de MISO, MOSI și SCK. Deci, Arduino nu va trebui să ne spună despre ele, dar pinii CSN și CE trebuie inițializați. Biblioteca nRF24L01 are o funcție încorporată pentru a obține PIN-ul atât al CSN cât și al CE care este:

RF24 radio(3, 2);

Numărul 3 reprezintă pinul CE și 2 reprezintă pinul CSN. Ambele sunt schimbabile în funcție de orice pin digital; aici sunt în funcție de circuitul dat mai sus.

După aceea modulul trebuie inițializat folosind următoarea comandă:

radio.begin();

Adresa este definibilă cu 5 biți pentru dispozitivul la care trebuie să comunice receptorul. Orice număr de 5 biți este utilizabil.

radio.openWritingPipe(10101);

După aceasta modulul trebuie să își cunoască modul. Fie că funcționează ca receptor, fie că funcționează ca emițător. Următoarea comandă va face din nRF24L01 un emițător.

 radio.stopListening();

Atunci dispozitivul este utilizabil ca emițător. Singurul lucru cunoscut pentru inițializare este trimiterea de date. Rețineți întotdeauna că numai 32 de octeți de date pot fi trimiși la un moment dat din cauza limitării modulului. Următoarea comandă vă va ajuta să definiți acest lucru:

const char data = "DATA";radio.write(&data, sizeof(data));

Datele de transmisie pot fi definite în configurarea sau în bucla programului.

Cum se utilizează NRF24L01 ca receptor Exemplu

Partea de mai sus se referă la metoda de transmisie, dar metoda receptorului nu este diferită de cea a emițătorului. În emițător, doar trei instrucțiuni se vor schimba.

  • Canalul de adrese, care nu era disponibil în emițător
  • Inițializarea modulului ca receptor
  • Metoda de recepție și verificare a datelor

Iată următorul cod pentru receptor.

Detaliu despre codul receptorului

După cum observați doar trei părți sunt diferite pentru receptor față de emițător.

Prima parte este partea de adresă:

radio.openReadingPipe(0,10101);

În partea de adresă, există acum două părți. a doua este partea de adresă care definește adresa dispozitivului de transmisie. Prima parte, care este “0”, definește canalul. Așa cum am vorbit mai sus că modulul oferă 6 canale pentru a comunica la un moment dat, prima parte a programării va ajuta la construirea mai multor canale.

A doua parte este inițializarea modulului ca emițător. Pentru a inițializa modulul ca emițător, inițializați următoarea comandă:

radio.startListening();

Cea de-a treia parte este recepționarea datelor.

if (radio.available())

Aceasta va ajuta la cunoașterea datelor primite

radio.read( data, size );

Aceasta va ajuta la citirea datelor.

NRF24L01 Exemplu

Există o grămadă de aplicații în care nRF24L01 este utilizabil, dar realizarea unei plase este una dintre cele mai bune abilități ale nRF24L01, ceea ce îl face diferit de un alt modul. Pentru a-l utiliza ca plasă ar trebui să fie disponibil un total de 3-7 module. Urmați imaginea dată.

Apoi următoarea instrucțiune ar trebui folosită pentru a inițializa diferitele canale la capătul receptorului.

Receptorul nu este capabil să diferențieze între dispozitive, astfel încât dezvoltatorii să țină cont întotdeauna de faptul că datele nu ar trebui să fie aceleași între emițătoare.

Diagramă 2D

Moduli alternativi:

  • XBee S2C Module
  • SX1278 LoRa RF Module
  • SIM900A GSM Module
  • ESP12E WiFi Module
  • PN532 NFC RFID Module
  • HM-10 Bluetooth Module
  • HC-.05 Bluetooth Module
  • 433MHz RF Receiver Module
  • 433MHz RF Transmitter Module
  • TSOP1738 IR Receiver
  • Arduino MKR1000 WiFi Board

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.