Comunicación inalámbrica con el nrf24l01 con Arduino

Comunicación inalámbrica con el modulo nrf24l01 con Arduino. En este tutorial haremos una conexión punto a punto entre dos modulos tranceptores con el NRF24L01. Entonces este circuito se controla mediante un puerto SPI y permite enviar y recibir datos digitales en la frecuencia de 2.4Ghz.

Introducción al nrf24l01

 Este tutorial consiste en el uso de los módulos de comunicación RF (radio frecuencia) nrf24l01 + (2 pzas). Estos módulos serán conectados cada uno a un Arduino Uno para mandar un string de un máximo 10 caracteres incluyendo /r y /n, mediante el monitor serial de su respectivo COM. El modo del monitor serial está configurado como retorno de .

MATERIALES

–       Módulo de comunicación inalámbrica nrf2401 (2 pzas)

–       2  Arduino Uno

–       2 Cables USB serial

NRF_0

Conexión con el nrf24l01 con Arduino

NRF_2

 

 NRF_1

 

 NRF24L01 con Arduino

El nrf2401 + es un circuito altamente integrado, de ultra bajo consumo (ULP), transceptor de RF de 2Mbps para la banda ISM de 2,4 GHz (Industrial, Scientific and Medical). Con corrientes inferiores a 14 mA, administración avanzada de energía, y una gama de alimentación de 1,9 a 3,6 V, el nRF24L01 ofrece una solución que permite una duración verdadera de meses a años de duración de la batería cuando se ejecuta con pilas de botón o AA / AAA.

El nrf2401 integra un transceptor RF de 2,4 GHz que soporta una interfaz SPI de alta velocidad para el controlador de la aplicación. No se requieren filtros externos, resonadores, o diodos VCO.

Caracteristicas del modulo NRF24L01+

·         2,4 GHz GFSK RF transceptor IC

·         Operación en la banda ISM de 2,4 GHz sin licencia en todo el mundo

·         1 Mbps y 2 Mbps de velocidad de datos en el aire

·         Enhanced ShockBurst ™ protocolo hardware acelerador

·         Bajo consumo de energía – meses o años de vida de la batería

·         Compatible con todas las Series nRF24L Nordic en 1 y el modo 2 Mbps

·         Compatible con nRF24E Nordic y nRF240 Series en el modo de 1Mbps

PROGRAMA EN Arduino PARA AMBOS ARDUINOS UNO

DETALLES DE PROGRAMA

Incluye SPI.h la cual controla todo lo relacionado con este protocolo.

Incluye Mirf.h la cual declara las funciones que controlaran al módulo.

Incluye nRF24L01.h contiene las definiciones de comandos en Hexadecimal.

Incluye MirfHardwareSpiDriver.h, esta librería funciona para comunicarse con el NRF24L01 mediante SPI.


#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>

El siguiente segmento de  código es para inicializar el módulo NRF24L01, al lado derecho de cada línea de código hay un comentario explicando lo que hace.

void setup()
{</pre>
Mirf.spi = &MirfHardwareSpi; //Inicializa controlador de SPI
Mirf.init(); //Inicializa PINES del SPI
Mirf.payload = 1; //Define el payload, cantidad de bytes que enviara el NRF
Mirf.channel = 90; //Seleccion de canal
Mirf.config();
Mirf.configRegister(RF_SETUP,0x06); // 1MHz

Mirf.setTADDR((byte *)"TX_01"); // Seleccion de Direccion
Serial.begin(57600); //Inicializa Serial a 57600 baudios
Serial.println("Iniciando ...");
<pre>

Esta function transmit() se dedica a enviar lo ingresado desde consola de character en character, cabe mencionar que se debe enviar en formato byte (uint8_t)

</pre>
void transmit(const char *string)
{
byte c;
for( int i=0 ; cadena[i]!=0x00 ; i++ ){
c = cadena[i];
Mirf.send(&c);
while( Mirf.isSending() ) ;
}

}
<pre>

La función transmitlf() agrega el fin de la cadena (\n) y el carácter de escape para retornar el carro (‘\r’)

</pre>
void transmitlf(void)
{
byte c;
c = '\r';
Mirf.send(&c);
while( Mirf.isSending() ) ;

c = '\n';
Mirf.send(&c);
while( Mirf.isSending() ) ;
}
<pre>

Función dedicada a la recepción de caracteres desde serial

void serialEvent() {
char inchar = (char)Serial.read();
// Concatena caracter ingresado
inputstring += inchar;
// Fin de la cadena, recibido <CR>
if(inchar == '\r') {input_stringcomplete = true;}
}

Monitor_NRF (2)

Figura. Como se observa en la figura superior se están enviando las cadenas de caracteres entre COM52 y COM53

SONY DSC

Figura. Ejemplo de chat.

SONY DSC

Figura. Conexion de Modulos NRF24l01.

Este tutorial es propiedad de HeTPro. Queda expresamente prohibida la reproducción total o parcial por cualquier medio o soporte de los contenidos de esta publicación sin la autorización expresa del editor, cualquier duda, sugerencia o permiso para redistribuir el material favor de mandar un correo a contacto@hetpro.com.mx

Si la redistribución de este material es para fines educativos, difusión tecnológica o cualquier otro fin sin lucro, HeTPro está de acuerdo en que el material sea distribuido sin la necesidad de requerir el permiso del autor.

Para descargar la librería MIRF ingresa a: http://playground.arduino.cc/InterfacingWithHardware/Nrf24L01

Para más ejemplos y tutoriales:

http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo

23 Comments

  1. Mario Alberto Mendez septiembre 19, 2014
    • Hector Torres septiembre 22, 2014
    • Administrador septiembre 23, 2014
  2. Emanuel octubre 21, 2014
    • Hector Torres octubre 21, 2014
  3. Julio Reyes octubre 30, 2014
  4. Emanuel octubre 30, 2014
  5. Andres Morales noviembre 12, 2014
  6. Ernesto Juarez mayo 19, 2015
    • Jesus mayo 21, 2015
  7. Arturo septiembre 29, 2015
    • Hector Torres octubre 1, 2015
      • Arturo octubre 6, 2015
  8. Alberto febrero 5, 2016
    • Hector Torres febrero 5, 2016
  9. raul lavié julio 18, 2016
    • Hector Torres julio 18, 2016
  10. Hugo octubre 30, 2016
    • Saul Jesus noviembre 7, 2016
  11. Carlos diciembre 15, 2016
    • Saul Jesus diciembre 16, 2016
  12. jean febrero 11, 2017

Escríbenos tus dudas o comentarios

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Usamos Cookies en nuestro sitio WEB

Por favor confirma, si aceptas nuestras cookies de rastreo. También puedes negar el uso de cookies de rastreo y seguir navegando sin que ninguna información sea enviada a servicios de terceros.