
¿Qué es un módulo de radiofrecuencia NRF24L01?
Los módulos de radiofrecuencia nrf24l01 son transmisores/receptores inalámbricos que podemos emplear como forma de comunicación entre procesadores como Arduino. El alcance va a ser determinado por el voltaje con el que alimentemos el módulo y la antena que usemos.
El módulo de radiofrecuencia nrf24l01 es un dispositivo inalámbrico de tamaño compacto, su uso es bastante sencillo y el consumo es mínimo su funcionamiento se encuentra dentro del rango de los 2.4 GHz. El funcionamiento del módulo de radiofrecuencia nrf24l01 radica en la recepción y envío de datos, el cual no se puede realizar al mismo tiempo. Por este motivo el costo es muy bajo en los modelos, teniendo un diseño sencillo y robusto. Idealmente se sugiere que se utilice con una pareja para tener un enlace completo.
Refiriéndonos al modulo que utilizaremos en el ejemplo el modulo de radiofrecuencia NRF24L01, podemos observar que es una opción económica además de ser compacto para conectar dos microcontroladores por medio de un enlace de radiofrecuencia. El modulo NRF24L01 es un chip que se puede implementar en comunicaciones inalámbrica, esto es debido a que se encarga de varios aspectos de la transmisión de manera automática.
Indice del Artículo

¿Qué es la radiofrecuencia?
La radiofrecuencia, la cual se abrevia RF o se le llama también espectro de Radiofrecuencia, es la porción menos energética del espectro electromagnético, los cuales están entre 3 hercios (Hz) y 300 gigahercios (GHz). El espectro electromagnético se refiere a cómo se distribuye la energía de las ondas electromagnéticas. Este espectro queda determinado por las radiaciones que se emiten. Las ondas, por su parte, suponen la propagación de esta radiación, acarreando energía. Las radiofrecuencias se pueden dividir en frecuencias extremadamente bajas, altas, pasando por otros tipos de frecuencias en el medio.
Aplicaciones de un Módulo de Radiofrecuencia NRF24L01
El NRF24L01 es un módulo bastante completo para implementar comunicaciones inalámbricas, ya que se encarga de varios aspectos de la transmisión de forma completamente automática. Por ejemplo: dispone de verificación de la integridad de datos mediante CRC, retransmisión automática y direccionamiento de los nodos inalámbricos.
¿Te interesa un módulo de radiofrecuencia NRF24L01? Mercado Libre
Ventajas del Módulo de Radiofrecuencia NRF24L01
El módulo de radiofrecuencia NRF24L01 se pueden utilizar en cualquier proyecto que requiera envío y recepción de datos. En ocasiones su utilizan para llevar un control de información. Tienen la ventaja respecto a los demás módulos de conexión inalámbrica que su robustez y simplicidad lo hacen el mejor cuando no requieres enviar grandes masas de datos.
Si se usa en espacios abiertos y, con menor velocidad de transmisión, su alcance puede llegar hasta los 100 metros. Para mayores distancias, hasta 1000 metros, existen módulos provistos con una antena externa en lugar de una antena trazada sobre la misma placa, como se observa en la imagen.
Información técnica:
- Chip NRF24L01
- Frecuencia: ISM 2.4 GHz
- Modulación: GFSK con control de ganancia automática
- Control de datos: SPI
- Velocidad: 250kbps, 1Mbps y 2Mbps (configurable)
- Alimentación: 1.9V a 3.6V
- Consumo: Transmisión: 11.3mA, recepción: 13.5mA @ 2Mbps, 900nA en power down y 26uA en standby.
- Pin IRQ de interrupción para recepción
- 100 metros en espacios abiertos

Características eléctricas del Módulo de Radiofrecuencia NRF24I01
Para la prueba de este dispositivo se utilizará el Módulo NRF24L01.
- Alimentación de 900 nA en modo inactivo.
- Regulador de voltaje integrado.
- Entrega de 1.9 a 3.6V.
- Tolerancia máxima de entrada de 5V.
Diagrama de conexión del emisor con arduino uno

Diagrama de conexión del receptor con arduino uno

Código de programación en Arduino uno
Se enviará una señal escrita por nosotros donde vamos a determinar la posición del servomotor, a continuación te presentamos el código para el emisor y el receptor.
//PROGRAMA DEL EMISOR // Se deben incluir las libreías que mostramos a continuación #include <SPI.h> #include <RF24.h> //Llamaremos radio a las variables de acuerdo a los pines utilizados para el emimsor RF24 radio(7, 8); // CE, CSN //IMatriz para la identificación del receptor con el emisor, generando una conexión fiel y única const byte identificacion[6] = "00001"; void setup() { Serial.begin(9600); //Iniciamos la variable radio radio.begin(); //Identificación de los valores a incluir. radio.openWritingPipe(identificacion); //Establecemos la potencia de la conenxión, que sera menor al tener poca distancia entre receptor y emisor radio.setPALevel(RF24_PA_MIN); //Se establece el emisor radio.stopListening(); } void loop() { //Variable para los datos que vamos a incluir en la PC char caracter; if (Serial.available() > 0) { //Leemos el carácter que se introdujo caracter = Serial.read(); //Primero se ingresa la variable a envier y después la longitud if (sizeof(caracter) == 1) { radio.write(&caracter, 1); } } }
//PROGRAMA DE RECEPTOR //Incluimos las libreías para el receptor y el servomotor que usaremos de ejemplo #include <SPI.h> #include <RF24.h> #include <Servo.h> //Llamaremos radio a las variables de acuerdo a los pines utilizados para el receptor RF24 radio(7, 8); // CE, CSN //IMatriz para la identificación del receptor con el emisor, generando una conexión fiel y única const byte identificacion[6] = "00001"; Servo miServo; //Nombre para el servo void setup() { miServo.attach(5); // Pin de control del servo Serial.begin(9600); //Iniciamos la variable radio radio.begin(); //Identificación del receptor radio.openReadingPipe(0, identificacion); //Establecemos la potencia de la conenxión, que sera menor al tener poca distancia entre receptor y emisor radio.setPALevel(RF24_PA_MIN); //Establecemos el receptor radio.startListening(); } void loop() { if (radio.available()) { char texto; //Creamos la matriz para el envío de datos radio.read(&texto, 1); //Declaramos comandos para determinar la posición del servomotor if (sizeof(texto)>0) { switch(texto) { case '1': miServo.write(0); break; case '2': miServo.write(20); break; case '3': miServo.write(40); break; case '4': miServo.write(60); break; case '5': miServo.write(80); break; case '6': miServo.write(100); break; case '7': miServo.write(120); break; case '8': miServo.write(140); break; case '9': miServo.write(160); break; case '0': miServo.write(180); break; } } } }
Síguenos en nuestras redes sociales y si te gusto el contenido deja tu mensaje.