Microcontrollers Lab

Table of Contents

NRF24L01 is een van de legale RF communicators voor moderne toepassingen. NRF24L01 is de goedkoopste en het komt met grote eigenschappen. Een enkele module communiceert op 2,4 GHz frequentie, waardoor het legaal is. Hij kan gegevens zenden en ontvangen met één enkele module. Zenden is niet zijn enige mogelijkheid, het kan communiceren met in totaal 6 andere dezelfde NRF24L01 modules tegelijk. Het apparaat heeft een interface met de Arduino-toepassing en bestrijkt allerlei toepassingen voor afstandsbediening. Deze draadloze module maakt gebruik van het SPI-communicatieprotocol en biedt een datasnelheid van 10MB met een adresbereik van 125, waardoor het de meest betrouwbare RF-module is. De RF-module gebruikt de GFSK-module om de data te transceveren.

NRF24L01 Pinout Configuration

In NRF24L01 zijn er geen speciale pennen, alle pennen die het biedt om te communiceren zijn aanwezig in alle microcontrollers en raad. Het apparaat zal met een externe microcontroller/Arduino door deze spelden interfacen om te werken. Het bestaat uit 8 spelden. Alle beschikbare pennen zijn:

Voedingspennen

VCC

De voedingspen van de module is VCC, die zichzelf verbindt met de voeding.

GND

nRF24L01 werkt met een andere microcontroller en het zal een gemeenschappelijke grond nodig hebben om ermee te werken. GND pin zal de vereiste van de gemeenschappelijke grond oplossen.

Communicatie Pinnen

CE

CE is een enable pin, die de transmissie/ontvangst van de module activeert. Het zal het apparaat slechts activeren wanneer er een HIGH staat op zichzelf.

CSN

Deze speld is voor het activeren van het gegevens luisteren en verwerking van de microcontroller. Om de datacommunicatie tussen de microcontroller en de module te houden moet deze HIGH zijn.

SCK

Het is de klokpulsspeld van SPI-communicatie in nRF24L01. De gegevens zullen bewegen tussen de module en de microcontroller volgens de klokpuls op de SCK pin.

MOSI

De gegevens die worden verzonden van de microcontroller via SPI pinnen worden ontvangen door nRF24L01 op de MOSI pin.

MISO

De instructies die door de nRF24L01 via SPI pinnen worden doorgegeven, worden door de microcontroller op de MISO pin ontvangen.

IRQ Interrupt Pin

IRQ is een interrupt pin, die de gebeurtenis genereert telkens als er nieuwe data beschikbaar is voor SPI pinnen. Het helpt om feedback naar de zender te sturen.

NRF24L01 RF Module Eigenschap

  • Het werkt op 2,4GHz frequentie waardoor het legaal is in bijna elk land.
  • Een enkele module kan zowel als zender of ontvanger fungeren.
  • Een ingebouwde antenne kan de gegevens tot 100 meter ver zenden.
  • Een module nRF24L01 kan met maximaal 6 andere modules tegelijk communiceren.
  • Het vereist 3,3 volt om te werken, maar voltages kunnen maar tot 3,6 volt gaan, anders duurt het niet lang voordat het warm wordt en verbrandt.
  • Het apparaat heeft een ingebouwde oscillator van 16MHz.
  • De transmissiesnelheid van nRF24L01 is 256kbps tot 2Mbps.
  • Het apparaat heeft 125 kanalen bereik, die de functie van het bedienen van 125 verschillende netwerken op een enkele plaats geeft.
  • De kanaal frequenties variëren van 2400MHz tot 2525MHz.

NRF24L01 Toepassingen

  • In de creatie van een klein mesh-netwerk, nRF24L01 is de beste keuze om te gebruiken.
  • Remote control toepassingen bij het ontwikkelen van en commerciële werken wonderwel met nRF24L01.
  • De meeste IoT-toepassingen op huisniveau hebben deze draadloze module maar op een klein niveau only.

Hoe de NRF24L01 Communicatie Module

nRF24L01 is bruikbaar met alle microcontrollers en smart boards, maar om het te gebruiken, moeten sommige pinnen en data-informatie worden begrepen. Om de module te gebruiken verbind het met een andere microcontroller met SPI-protocol. Geef eerst de voeding aan de apparaten en verbind dan hun SPI pinnen volgens het gegeven circuit.

Nadat u de module heeft aangesloten, moet u in gedachten houden dat de nRF24L01 op twee manieren kan werken. De eerste is zender en de tweede is ontvanger. Om te kunnen communiceren als zender en ontvanger moet de microcontroller eerst bekend zijn. In de moderne toepassing, de Arduino is het enige apparaat dat de meest efficiënte communicatie van nRF24L01 communication.

Interfacing met Arduino

Er is veel werk en onderzoek over nRF24L01 op het internet dat kan helpen om het te gebruiken in vele toepassingen, maar er is de basis van deze module in Arduino elke ontwikkelaar moet begrijpen. De basisverrichting van nRF24L01 is zender en ontvanger, in Arduino, allebei zijn uitvoerbaar door de volgende methodes. Hier is de schakeling voor Arduino UNO.

Hoe te gebruiken als zender Voorbeeld

Wanneer nRF24L01 zal fungeren als een zender dan kan het alleen gegevens zenden op een enkel kanaal naar een andere module. Om het als zender te gebruiken moet het programma in Arduino bekend zijn. Na het uploaden van het programma zijn er geen manieren zonder programmering de wijzen tussen zender en ontvanger zijn veranderlijk. Om het als zender te gebruiken zou de volgende code moeten worden geupload:

Details over zender code

De communicatie tussen Arduino en nRF24L01 hangt af van de volgende bibliotheken:

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

Zoals we weten dat elk Arduino bord een specifieke SPI pin van MISO, MOSI, en SCK heeft. Zo, zal Arduino niet moeten over hen vertellen maar CSN en CE de spelden moeten initialiseren. De nRF24L01 bibliotheek heeft een ingebouwde functie om de PIN van zowel CSN als CE te krijgen die is:

RF24 radio(3, 2);

Het getal 3 vertegenwoordigt de CE pin en 2 vertegenwoordigt de CSN pin. Beide zijn veranderlijk volgens om het even welke digitale spelden; hier zijn zij volgens het hierboven gegeven circuit.

Daarna moet de module initialiseren door het volgende commando te gebruiken:

radio.begin();

Het adres is definieerbaar met 5 bits voor het apparaat waarop het de ontvanger moet communiceren. Elk 5 bits getal is bruikbaar.

radio.openWritingPipe(10101);

Daarna moet de module zijn modus kennen. Ofwel werkt het als een ontvanger of zender. Het volgende commando maakt van de nRF24L01 een zender.

 radio.stopListening();

Dan is het apparaat bruikbaar als zender. Het enige dat men weet te initialiseren is het zenden van data. Houd er altijd rekening mee dat slechts 32 bytes data per keer verstuurbaar zijn in verband met de modulebeperking. Het volgende commando zal helpen om dat te definiëren:

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

De zenddata is definieerbaar in de setup of loop van het programma.

Hoe NRF24L01 te gebruiken als ontvanger Voorbeeld

Het bovenstaande deel gaat over de zendmethode, maar de ontvangermethode verschilt niet van de zender. In de zender gaan slechts drie instructies veranderen.

  • Het adres kanaal, dat niet beschikbaar was in de zender
  • De initialisatie van de module als ontvanger
  • Gegevens ontvangst en controle methode

Hier is de volgende code voor de ontvanger.

Detail over de ontvanger code

Zoals u kunt zien zijn slechts drie delen verschillend voor de ontvanger van de zender.

Het eerste deel is het adres deel:

radio.openReadingPipe(0,10101);

In het adres deel, zijn er nu twee delen. het tweede deel is het adres deel dat het adres van het transmissie apparaat definieert. Het eerste deel, “0”, definieert het kanaal. Aangezien we hierboven hebben besproken dat de module 6 kanalen biedt om tegelijk te communiceren, zal het eerste deel van de programmering helpen om meerdere kanalen te bouwen.

Het tweede deel is de initialisatie van de module als een zender. Om de module als zender te initialiseren, initialiseert u het volgende commando:

radio.startListening();

Het derde deel is de ontvangst van de gegevens.

if (radio.available())

Het zal helpen om te weten over de inkomende gegevens

radio.read( data, size );

Het zal helpen om de gegevens te lezen.

NRF24L01 Voorbeeld

Er zijn een heleboel toepassingen die nRF24L01 kan gebruiken, maar het maken van een mesh is een van de beste mogelijkheden van nRF24L01 die het anders maakt dan een andere module. Om het als netwerk te gebruiken zouden totaal 3-7 modules beschikbaar moeten zijn. Volg de gegeven afbeelding.

Dan moet de volgende instructie worden gebruikt om de verschillende kanalen te initialiseren aan de ontvangerkant.

De ontvanger is niet in staat om onderscheid te maken tussen apparaten, dus ontwikkelaars moeten altijd in gedachten houden dat de gegevens niet hetzelfde mogen zijn tussen zenders.

2D Diagram

Alternatieve Modules:

  • 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 Ontvanger Module
  • 433MHz RF Zender Module
  • TSOP1738 IR Ontvanger
  • Arduino MKR1000 WiFi Board

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.