Mikrocontrollers Lab

Indholdsfortegnelse

NRF24L01 er en af de lovlige RF-kommunikatorer til moderne applikationer. NRF24L01 er den billigste, og den kommer med gode funktioner. Et enkelt modul kommunikerer ved 2,4 GHz-frekvensen, hvilket gør det lovligt. Det kan sende og modtage data med et enkelt modul. Transmodtagelse er ikke dens eneste evne, den kan kommunikere med i alt 6 andre samme NRF24L01-moduler på én gang. Enheden har grænseflader til Arduino-applikationen og dækker alle former for fjernstyringsapplikationer. Dette trådløse modul anvender SPI-kommunikationsprotokollen og tilbyder 10 MBs datahastighed med 125 adresseintervaller, hvilket gør det pålideligt det mest pålidelige RF-modul. RF-modulet bruger GFSK-modulet til at transmittere dataene.

NRF24L01 Pinout Configuration

I NRF24L01 er der ikke nogen specielle pins, alle pins, som det tilbyder at kommunikere, er til stede i alle mikrocontrollere og board. Enheden vil fungere som grænseflade med en ekstern mikrocontroller/Arduino via disse stifter for at fungere. Den består af 8 pins. Alle tilgængelige pins er:

Strømforsyningsstifter

VCC

Modulets strømforsyningsstift er VCC, som forbinder sig selv med strømforsyningen.

GND

nRF24L01 opererer med en anden mikrocontroller, og den vil have brug for en fælles jord for at kunne operere med den. GND-stiften løser kravet om fælles jord.

Kommunikationsstifter

CE

CE er en aktiveringsstift, som aktiverer modulets transmission/modtagelse. Den aktiverer kun enheden, når der er en HIGH-tilstand på den selv.

CSN

Denne pin er til aktivering af datahøringen og -behandlingen fra mikrocontrolleren. For at holde datakommunikationen mellem mikrocontrolleren og modulet skal den være HIGH.

SCK

Det er clockpulsstiften for SPI-kommunikation i nRF24L01. Dataene vil bevæge sig mellem modulet og mikrocontrolleren i overensstemmelse med clockpulsen på SCK-pinden.

MOSI

De data, der overføres fra mikrocontrolleren via SPI-stifter, vil blive modtaget af nRF24L01 på MOSI-pinden.

MISO

Instruktionerne, der sendes fra nRF24L01 ved hjælp af SPI-stifter, vil blive modtaget af mikrocontrolleren på MISO-stiften.

IRQ Interrupt Pin

IRQ er en interrupt pin, som genererer en begivenhed, når der er nye data til rådighed for SPI-stifter. Den hjælper med at sende feedback til senderen.

NRF24L01 RF-modulets funktion

  • Det fungerer ved 2,4 GHz-frekvensen, hvilket gør det lovligt i næsten alle lande.
  • Et enkelt modul kan fungere som både sender og modtager.
  • En indbygget antenne kan sende data op til 100 meter.
  • Et modul nRF24L01 kan kommunikere med maksimalt 6 andre moduler ad gangen.
  • Det kræver 3,3 volt for at fungere, men spændingerne kan kun strække sig op til 3,6V, ellers tager det ikke lang tid at varme op og brænde.
  • Enheden har en indbygget oscillator på 16MHz.
  • Sendehastigheden for nRF24L01 er 256kbps til 2Mbps.
  • Enheden har 125 kanalområde, hvilket giver mulighed for at betjene 125 forskellige netværk på et enkelt sted.
  • Kanalfrekvenserne varierer fra 2400MHz til 2525MHz.

NRF24L01 Anvendelser

  • I forbindelse med oprettelsen af et lille mesh-netværk er nRF24L01 det bedste valg at bruge.
  • Fjernstyringsapplikationer på udviklings- og kommercielle virker vidunderligt med nRF24L01.
  • De fleste IoT-applikationer på hjemmeniveau har dette trådløse modul, men kun på et lille niveau.

Sådan bruges NRF24L01-kommunikationsmodulet

nRF24L01 kan bruges med alle mikrocontrollere og smart boards, men for at bruge det skal man forstå nogle pins og dataoplysninger. For at bruge modulet skal det forbindes med en anden mikrocontroller med SPI-protokol. Først skal du give strømindgang til enhederne og derefter tilslutte deres SPI-stifter i henhold til det givne kredsløb.

Når du har tilsluttet det, skal du huske på, at der er to måder, hvorpå nRF24L01 kan fungere. Den første er sender og den anden og modtager. For at kommunikere som sender og modtager skal mikrocontrolleren have kendt først. I den moderne applikation er Arduino den eneste enhed, der understøtter den mest effektive kommunikation af nRF24L01-kommunikation.

Interfacing with Arduino

Der er meget arbejde og forskning om nRF24L01 på internettet, der kan hjælpe med at bruge det i mange applikationer, men der er grundlaget for dette modul i Arduino, som enhver udvikler bør forstå. Den grundlæggende drift af nRF24L01 er sender og modtager, i Arduino, begge kan opnås gennem følgende metoder. Her er kredsløbet til Arduino UNO.

Sådan bruges som sender Eksempel

Når nRF24L01 vil fungere som sender, så kan det kun sende data på en enkelt kanal til et andet modul. For at bruge det som en transmitter skal programmet i Arduino have kendt. Efter upload af programmet er der ingen måder uden programmering tilstande mellem sender og modtager kan ændres. For at bruge den som sender skal følgende kode uploades:

Detaljer om senderkode

Kommunikationen mellem Arduino og nRF24L01 afhænger af følgende biblioteker:

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

Som vi ved, har hvert Arduino-kort en specifik SPI-pin med MISO, MOSI og SCK. Så Arduino behøver ikke at fortælle om dem, men CSN- og CE-stifter skal initialiseres. nRF24L01-biblioteket har en indbygget funktion til at få PIN-koden for både CSN og CE, som er:

RF24 radio(3, 2);

Tallet 3 repræsenterer CE-pinden og 2 repræsenterer CSN-pinden. Begge kan ændres i henhold til eventuelle digitale pins; her er de i henhold til det ovenfor givne kredsløb.

Derpå skal modulet initialiseres ved hjælp af følgende kommando:

radio.begin();

Adressen kan defineres med 5 bits for den enhed, hvorpå den skal kommunikere modtageren. Ethvert 5-bits nummer kan bruges.

radio.openWritingPipe(10101);

Efter dette modul skal kende sin tilstand. Enten fungerer det som modtager eller sender. Følgende kommando vil gøre nRF24L01 til en sender.

 radio.stopListening();

Så kan enheden bruges som sender. Det eneste, der er kendt for at initialisere, er at sende data. Husk altid på, at der kun kan sendes 32 bytes data ad gangen på grund af modulbegrænsning. Følgende kommando vil hjælpe med at definere det:

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

Sende data kan defineres i programmets opsætning eller loop.

Sådan bruges NRF24L01 som modtager Eksempel

Den ovenstående del handler om transmissionsmetoden, men modtagermetoden er ikke forskellig fra senderen. I senderen vil kun tre instruktioner ændre sig.

  • Adresskanalen, som ikke var tilgængelig i senderen
  • Initialiseringen af modulet som modtager
  • Datamodulets modtagelses- og kontrolmetode

Her er følgende kode for modtageren.

Detaljer om modtagerkoden

Som du gør opmærksom på, er kun tre dele forskellige for modtageren fra senderen.

Den første del er adressedelen:

radio.openReadingPipe(0,10101);

I adressedelen er der nu to dele. den anden er adressedelen, som definerer adressen på sendeenheden. Den første del, som er “0”, definerer kanalen. Da vi ovenfor talte om, at modulet tilbyder 6 kanaler til at kommunikere ad gangen, vil den første del af programmeringen hjælpe med at opbygge flere kanaler.

Den anden del er initialiseringen af modulet som en sender. For at initialisere modulet som sender skal du initialisere følgende kommando:

radio.startListening();

Den tredje er data modtagelse.

if (radio.available())

Det vil hjælpe med at vide om de indkommende data

radio.read( data, size );

Det vil hjælpe med at læse dataene.

NRF24L01 Eksempel

Der er en masse applikationer nRF24L01 kan bruges, men at lave et net er en af de bedste evner i nRF24L01, som gør det forskelligt fra et andet modul. For at bruge det som et net skal der i alt 3-7 moduler til rådighed. Følg det givne billede.

Dernæst skal følgende instruktion bruges til at initialisere de forskellige kanaler i modtagerens ende.

Modtageren er ikke i stand til at skelne mellem enheder, så udviklere skal altid huske på, at dataene ikke skal være de samme mellem sendere.

2D-diagram

Alternative moduler:

  • XBee S2C-modul
  • SX1278 LoRa RF-modul
  • SIM900A GSM-modul
  • ESP12E WiFi-modul
  • PN532 NFC RFID-modul
  • HM-10 Bluetooth-modul
  • HC-05 Bluetooth-modul
  • 433MHz RF-modtagermodul
  • 433MHz RF-sendemodul
  • TSOP1738 IR-modtager
  • Arduino MKR1000 WiFi Board

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.