Microcontrollers Lab

Table of Contents

NRF24L01 es uno de los comunicadores RF legales para aplicaciones modernas. NRF24L01 es el más barato y viene con grandes características. Un solo módulo se comunica en la frecuencia de 2,4 GHz, lo que lo hace legal. Puede transmitir y recibir datos con un solo módulo. Transmitir no es su única capacidad, puede comunicarse con un total de otros 6 módulos NRF24L01 iguales a la vez. El dispositivo interactúa con la aplicación Arduino y cubre todo tipo de aplicaciones de control remoto. Este módulo inalámbrico utiliza el protocolo de comunicación SPI y ofrece una velocidad de datos de 10MBs con un rango de direcciones de 125, lo que lo convierte en el módulo RF más fiable. El módulo RF utiliza el módulo GFSK para transmitir los datos.

Configuración de pines del NRF24L01

En el NRF24L01 no hay pines especiales, todos los pines que ofrece para comunicarse están presentes en todos los microcontroladores y placas. El dispositivo se comunicará con un microcontrolador/Arduino externo a través de estos pines para funcionar. Consta de 8 pines. Todos los pines disponibles son:

Pines de alimentación

VCC

El pin de alimentación del módulo es VCC, que se conecta con la fuente de alimentación.

GND

nRF24L01 opera con otro microcontrolador y necesitará una tierra común para operar con él. El pin GND resolverá el requisito de la tierra común.

Pines de comunicación

CE

CE es un pin de habilitación, que activa la transmisión/recepción del módulo. Sólo activará el dispositivo cuando haya un estado ALTO en el mismo.

CSN

Este pin es para activar la escucha y procesamiento de datos desde el microcontrolador. Para mantener la comunicación de datos entre el microcontrolador y el módulo debe estar en estado ALTO.

SCK

Es el pin de pulso de reloj de la comunicación SPI en el nRF24L01. Los datos se moverán entre el módulo y el microcontrolador de acuerdo con el pulso de reloj en el pin SCK.

MOSI

Los datos transmitidos desde el microcontrolador a través de los pines SPI van a ser recibidos por el nRF24L01 en el pin MOSI.

MISO

Las instrucciones transmitidas desde el nRF24L01 a través de los pines SPI son recibidas por el microcontrolador en el pin MISO.

Pin de Interrupción IRQ

IRQ es un pin de interrupción, que genera el evento cada vez que un nuevo dato está disponible para los pines SPI. Ayuda a enviar retroalimentación al transmisor.

Característica del Módulo RF NRF24L01

  • Trabaja en la frecuencia de 2.4GHz lo que lo hace legal en casi todos los países.
  • Un solo módulo puede actuar como transmisor o receptor.
  • Una antena incorporada puede enviar los datos hasta 100 metros.
  • Un módulo nRF24L01 puede comunicarse con un máximo de otros 6 módulos a la vez.
  • Requiere 3,3 voltios para funcionar, pero los voltajes sólo pueden extenderse hasta 3,6V, de lo contrario no tardará en calentarse y quemarse.
  • El dispositivo tiene un oscilador incorporado de 16MHz.
  • La velocidad de transmisión del nRF24L01 es de 256kbps a 2Mbps.
  • El dispositivo tiene un rango de 125 canales que da la característica de operar 125 redes diferentes en un solo lugar.
  • Las frecuencias de los canales varían de 2400MHz a 2525MHz.

Aplicaciones del nRF24L01

  • En la creación de una pequeña red de malla, el nRF24L01 es la mejor opción para usar.
  • Las aplicaciones de control remoto a nivel de desarrollo y comercial funcionan de maravilla con el nRF24L01.
  • La mayoría de las aplicaciones de IoT a nivel doméstico cuentan con este módulo inalámbrico pero sólo a un nivel pequeño.

Cómo usar el módulo de comunicación NRF24L01

El nRF24L01 es utilizable con todos los microcontroladores y placas inteligentes pero para usarlo, se deben entender algunos pines e información de datos. Para utilizar el módulo conéctalo con otro microcontrolador con protocolo SPI. En primer lugar, dar la entrada de alimentación a los dispositivos y luego adjuntar sus pines SPI de acuerdo con el circuito dado.

Después de adjuntarlo ten en cuenta que hay dos formas en que el nRF24L01 puede operar. La primera es transmisor y la segunda y receptor. Para comunicarse como transmisor y receptor el microcontrolador debe haber conocido primero. En la aplicación moderna, el Arduino es el único dispositivo que soporta la comunicación más eficiente de la comunicación nRF24L01.

Interfaz con Arduino

Hay una gran cantidad de trabajo y la investigación sobre nRF24L01 en Internet que puede ayudar a utilizar en muchas aplicaciones, pero hay la base de este módulo en Arduino cada desarrollador debe entender. El funcionamiento básico del nRF24L01 es el transmisor y el receptor, en Arduino, ambos son alcanzables a través de los siguientes métodos. Aquí está el circuito para Arduino UNO.

Cómo utilizar como transmisor Ejemplo

Cuando el nRF24L01 actuará como transmisor entonces sólo puede transmitir datos en un solo canal a otro módulo. Para utilizarlo como transmisor el programa en Arduino debe haber conocido. Después de cargar el programa no hay maneras sin la programación de los modos entre el transmisor y el receptor son cambiables. Para usarlo como transmisor se debe subir el siguiente código:

Detalles sobre el código del transmisor

La comunicación entre Arduino y nRF24L01 depende de las siguientes librerías:

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

Como sabemos cada placa Arduino tiene un pin SPI específico de MISO, MOSI y SCK. Por lo tanto, Arduino no tendrá que contar con ellos, pero los pines CSN y CE necesitan inicializarse. La biblioteca nRF24L01 tiene una función incorporada para obtener el PIN de ambos CSN y CE que es:

RF24 radio(3, 2);

El número 3 representa el pin CE y el 2 representa el pin CSN. Ambos son cambiables de acuerdo con cualquier pin digital; aquí están de acuerdo con el circuito dado anteriormente.

Después de que el módulo debe inicializar utilizando el siguiente comando:

radio.begin();

La dirección es definible con 5 bits para el dispositivo en el que debe comunicar el receptor. Cualquier número de 5 bits es utilizable.

radio.openWritingPipe(10101);

Después de que el módulo debe conocer su modo. Ya sea que esté trabajando como receptor o transmisor. El siguiente comando hará que el nRF24L01 sea un transmisor.

 radio.stopListening();

Entonces el dispositivo es utilizable como transmisor. Lo único que se conoce para inicializar es el envío de datos. Siempre hay que tener en cuenta que sólo se pueden enviar 32 bytes de datos a la vez debido a la limitación del módulo. El siguiente comando ayudará a definir que:

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

Los datos de transmisión es definible en la configuración o bucle del programa.

Cómo utilizar NRF24L01 como un receptor Ejemplo

La parte anterior es todo sobre el método de transmisión, pero el método del receptor no es diferente del transmisor. En el transmisor, sólo van a cambiar tres instrucciones.

  • El canal de direcciones, que no estaba disponible en el transmisor
  • La inicialización del módulo como receptor
  • Método de recepción y comprobación de datos

Aquí está el siguiente código para el receptor.

Detalle sobre el código del receptor

Como se puede observar sólo tres partes son diferentes para el receptor desde el transmisor.

La primera parte es la parte de la dirección:

radio.openReadingPipe(0,10101);

En la parte de la dirección, hay dos partes ahora. la segunda es la parte de la dirección que define la dirección del dispositivo de transmisión. La primera parte que es “0” define el canal. Como hemos hablado anteriormente que el módulo ofrece 6 canales para comunicarse a la vez, la primera parte de la programación ayudará a construir múltiples canales.

La segunda parte es la inicialización del módulo como transmisor. Para inicializar el módulo como transmisor, inicialice el siguiente comando:

radio.startListening();

La tercera es la recepción de datos.

if (radio.available())

Ayudará a conocer los datos entrantes

radio.read( data, size );

Ayudará a leer los datos.

NRF24L01 Ejemplo

Hay un montón de aplicaciones nRF24L01 es utilizable, pero hacer una malla es una de las mejores habilidades de nRF24L01 que lo hace diferente de otro módulo. Para utilizarlo como una malla total de 3-7 módulos deben estar disponibles. Siga la imagen dada.

Entonces la siguiente instrucción debe utilizar para inicializar los diferentes canales en el extremo del receptor.

El receptor es incapaz de diferenciar entre los dispositivos por lo que los desarrolladores siempre tienen en cuenta que los datos no deben ser los mismos entre los transmisores.

Diagrama 2D

Módulos alternativos:

  • Módulo XBee S2C
  • Módulo LoRa RF SX1278
  • Módulo GSM SIM900A
  • Módulo WiFi ESP12E
  • Módulo RFID NFC PN532
  • Módulo Bluetooth HM-10
  • HC-05 Módulo Bluetooth
  • Módulo receptor RF de 433MHz
  • Módulo transmisor RF de 433MHz
  • TSOP1738 Receptor IR
  • Placa WiFi Arduino MKR1000

Deja una respuesta

Tu dirección de correo electrónico no será publicada.