16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino
LOS LOS MÓDULOS DE RADIO NRF2 N RF2401 401
Usando radios radios para comunicar nuestros Arduinos Arduinos
Home (Http: (Http://Www //Www.Prom .Prometec.N etec.Net) et) Los Módulo Móduloss De Radio Radio NRF2401 NRF2401
OBJETIVOS . Presentar los módulos de radio NRF2401. Describir la forma de conectarlos a nuestros Arduinos o similares. Presentar un par de programas sencillos que nos permitan usarlos en nuestros proyectos para enviar
y recibir órdenes o datos. este primer ejemplo de de programa la comunicación será unidireccional.. En este primer
MATERIAL REQUERIDO.
Arduino UNO o equivalente (http://www.prometec.net/categoria-
producto/arduinos/).
(http://www.prometec.net/producto/arduino-uno/)
http://www.prometec.net/nrf2401/
1/18
16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino
Un par de módulos de radio NRF2401 (http://www.prometec.net/producto/nrf24l01/),
(http://www.prometec.net/wpcontent/uploads/2015/02/modulo-transceptor-rf-nrf24l0124ghz-arduino-pic-avr-atmel-8347-MLA20003406135_112013F.jpg)
Algunos cables de protoboard, preferiblemente Dupont macho/hembra (http://www.prometec.net/producto/cables-dupont-macho-hembra/) más una protoboard (http://www.prometec.net/producto/protoboard-830/)
(http://www.prometec.net/tiendas-online-prometec/)
LAS CONEXIONES DE RADIO
Hemos visto en anteriores sesiones, que poder usar conexiones inalámbricas nos ofrece unas posibilidades a las que resulta difícil renunciar cuando te acostumbras, y hemos hecho pruebas de conexiones tanto WIFI como Bluetooth. Las WIFI nos permiten conectarnos a Internet con facilidad y podemos publicar páginas Web con valores de nuestros sensores y Arduinos o simplemente acceder a estos Duinos y pasarles parámetros u órdenes. EL BlueTooth es ideal si queremos controlar nuestros Arduinos sin más controlador que un móvil que ya llevamos habitualmente en el bolsillo. Pero tanto el BT como el WIFI tienen unas limitaciones considerables en lo que se reere a la distancia a la que podemos usarlo. No pasa más allá de 20 metros y eso en condiciones óptimas, pero no es raro que necesitemos más distancia, digamos 50 m, 0 200 m, y porque no un kilómetro. Como siempre, cuando hay una necesidad en el mercado, surge alguien dispuesto a ofrecer una solución en forma de electrónica, y en esta ocasión vamos a presentar una solución magnica para el tipo de problema que planteamos. Un medio de dar órdenes a un Arduino o similar, a una distancia que puede variar entre 50 metros y hasta digamos un kilómetro. En esta sesión vamos a presentar y dar los primeros pasos con unos magnícos dispositivos de radio basados en el chip de Nordic semiconductor NRF24, y que podemos encontrar en multitud de módulos de diferentes fabricantes, compatibles entre sí, por muy poco dinero,
que es lo que nos gusta en esta casa. Este dispositivo NRF2401, integra en un único chip, toda la electrónica y bloques funcionales precisos, para establecer comunicaciones RF (Radio Frecuencia) entre dos o más puntos a diferentes velocidades, (Hasta 2 Mb/seg) con corrección de errores y protocolo de reenvió cuando es necesario, sin intervención del control externo, lo que nos permite aislarnos de tobo el trabajo sucio y complicado relacionado con la http://www.prometec.net/nrf2401/
2/18
16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino
transmisión física. Las características más destacadas son:
Muy baratos, unos pocos dólares. Operan en la banda de 2.4Ghz, que es de libre uso a nivel mundial. Velocidad congurable de 250kb, 1 Mb o 2Mb por segundo. Muy bajo consumo en Stand By (Cuando no se usan). El alcance depende de si hay visión directa entre los nodos, o por el contrario hay obstáculos, pero nos
ofrece un mínimo de unos 20 m hasta un máximo e 80m en óptimas circ unstancias, en el modelo básico con la antena integrada. Podemos encontrar modelos con antenas más ecaces por un coste un poco superior (no mucho no os
asustéis) que aumentan de forma importante el alcance hasta casi un km. Si no queremos complicarnos la vida son muy fáciles de usar y congurar y además son los enlaces más
baratos que podemos encontrar para vincular nuestros Arduinos. Compatibles con todo un rango de modelos de diferentes tipos y fabricantes.
LAS ONDAS DE RADIO
A nales del siglo XIX, James C. Maxwell estableció las leyes del electromagnetismo que describen la propagación de las ondas electromagnéticas y la relación que existe entre los campos magnéticos y la electricidad (de ahí el nombre) estableciendo una de las teorías básicas que regulan el funcionamiento del mundo moderno. Todas la ubicuas emisiones de RF que nos rodean actualmente, fueron descritas por Maxwell y sus ecuaciones hace ya más de 100 años, y eso incluye las emisiones de radio en AM y FM, las de televisiones, tanto analógicas como digitales, la conexión de tu teléfono móvil y hasta las conexiones WIFI y Bluetooth de las que hemos hablado previamente. Las primeras emisiones de radio viables se atribuyen en 1901 Guillermo Marconi y son el precedente de toda la tecnología de radio actual apoyándose en los trabajos de Maxwell y Heinrich Hertz de quien deriva la unidad de medida de la frecuencia Hercios en español (Hertz en inglés)
La descripción de una onda de RF se realiza por su frecuencia, en Hercios, que indica el número de
pulsos por segundo a los que bate la señal, y por su amplitud que indica la intensidad.
Ya hemos hablado antes del espectro de frecuencia y vamos a destacar que en la práctica llamamos RF a las señales de frecuencia inferior a los 300Ghz
http://www.prometec.net/nrf2401/
3/18
16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino
(http://www.prometec.net/wp-content/uploads/2015/02/Image8766.jpg) Como podéis ver, el espectro de radiofrecuencias parece el camarote de los hermanos Marx, con los servicios de radio, TV, telefonía y demás por lo que es importante que los dispositivos que usemos emitan en el rango de frecuencias libres, es decir, en las que se permite que cualquiera emita y reciba, sin interferir con la operación normal de emisiones que operan los servicios sometidos a regulación. Nuestros humildes módulos NRF2401 emiten a 2.4 GHz, lo que es banda libre y no requieren de ningún permiso para usarse en ninguna parte del mundo (Por mucho que os quieran meter miedo con esto). Pero a cambio, no tenemos garantía de que no haya alguien más emitiendo en esta banda en las cercanías, lo que puede producir interferencias con nuestra emisiones.
Cuando sintonizas tu emisora FM en el dial, digamos 103.4, es porque la emisora paga a la
administración para ser la única que pueda emitir legalmente en esa frecuencia y de ese modo impida la interferencia de otros servicios comerciales. Por eso el espectro de radiofrecuencias está sometido a un estricto control administrativo, en todos los
países, para evitar que señales en competencia intereran entre si anulando la posibilidad de transmitir información valida.
DIAGRAMA DE CONEXIÓN DE UN MÓDULO NRF2401
Estos módulos usan el bus SPI para acelerar la conexión con el micro controlador por lo que vamos a ver la descripción de los pines necesarios para su conexión, en vista superior:
(http://www.prometec.net/wp-content/uploads/2015/02/pinout_nrf24l01.jpg)
http://www.prometec.net/nrf2401/
4/18
16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino
Hay dos librerías básicas para el manejo de los NRF2401s en Arduino, la NRF24 que es la que vamos a usar aquí (Porque me parece más sencilla) y la librería MIRF.
PIN
NRF2401
ARDUINO UNO
MEGA
GND
1
GND
GND
VCC
2
3.3
3.3
CE
3
9
9
CSN
4
10
53
SCK
5
13
52
MOSI
6
11
51
MISO
7
12
50
IRQ
8
2
–
Es importante recalcar que estos módulos funcionan a
; EL fabricante previene contra conectarles a
5V so pena de achicharrarlos. La librería
espera que hagas unas conexiones de pines d iferentes, así que no te conviene u sar este diagrama de conexión si pretendes utilizarla.
Tenéis que comprender que los modelos
usan diferentes pines para el control del y luego para rematar la faena, según la librería cambian de nuevo.
Vamos con el esquema de conexión de protoboard:
(http://www.prometec.net/wp-content/uploads/2015/02/Untitled-Sketch_bb.png) Para poder emitir y recibir con estos módulos vamos a necesitar dos Arduinos congurados con estas conexiones a los que llamaremos emisor y receptor, porque inicialmente los programas van a ser distintos. Empezaremos haciendo la prueba más sencilla posible. Uno de ellos, el emisor, radia una serie de números y el otro, el receptor, los recibe y muestra en la consola serie.
http://www.prometec.net/nrf2401/
5/18
16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino Aunque estos módulos consumen muy poco en uso o en Stand by, pueden absorber en el arranque más
de lo que la fuente de 3.3V de puede proporcionar, lo que impide que arranque correctamente o que tenga un funcionamiento errático, especialmente en el caso del emisor. Si buceáis en
, veréis cantidad de páginas recomendándoos usar unos
entre los
pines tal y cual. Aunque tomar precauciones nunca sobra, los vagos somos incapaces de hacer algo así, mientras no se
demuestre que es imprescindible. En mi caso he comprobado que la manera más sencilla de evitar problemas (Que los he tenido) ha sido
asegurarme de que el tiene una alimentación correcta y abundante, mediante un de los típicos. Esta sencilla precauc ión ha hecho que en mi caso los p roblemas se reduzcan hasta desaparecer.
(http://www.prometec.net/wp-content/uploads/2015/02/power.jpg)
PROGRAMANDO LAS RADIOS
Vamos a montar un primer ejemplo en el que crearemos dos programas diferentes que corren en dos Arduino diferentes. El primero será el programa emisor, que radiará números en secuencia desde 0 hasta el 255, y el segundo el programa receptor, que nos permitirá comunicarnos en una única dirección inicialmente. Vamos con el programa emisor y para ello necesitamos la librería RF24-master (http://www.prometec.net/wp-content/uploads/2015/02/RF24master.zip), cuya última versión siempre podéis encontrar en https://github.com/maniacbug/RF24 (https://github.com/maniacbug/RF24). Empezamos con unos cuantos includes, necesarios para el NRF2401 y para el bus SPI:
#include
#include #include #include
Después tenemos que crear una instancia de la radio, indicándole los pins de control, y la siguiente línea indica el pipe a utilizar, que podemos imaginar como uno de los diferentes canales en los que la radio puede operar.
RF24 radio(9,10); const uint64_t pipe = 0xE8E8F0F0E1LL;
El pipe es un numero de 64 bits, lo que indicamos con el tipo
, , y por si no estuviera sucientemente claro, le indicamos al compilador que se trata de un LL al nal del número, o sea LongLong = 64 bits .
Y ahora basta con inicializarla en el setup:
http://www.prometec.net/nrf2401/
6/18
16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino
void setup(void) {
Serial.begin(9600); radio.begin();
radio.openWritingPipe(pipe); }
En el programa principal, simplemente vamos incrementando una variable para luego transmitirla por la radio
int msg[1] ;
void loop(void) {
for (int x=0;x<2255;x++) {
msg[0] = x ; radio.write(msg, 1);
} }
Aqui os dejo el programa completo Prog_79_1_Emisor (http://www.prometec.net/wp-content/uploads/2015/02/Prog_79_1_Emisor.rar) En cuanto al programa receptor Prog_79_1_Receptor (http://www.prometec.net/wp-content/uploads/2015/02/Prog_79_1_Receptor.rar), tenemos que empezar incluyendo las mismas librerías, y un array mínimo para el entero a recibir, e instanciamos la radio como radio
#include #include #include #include
RF24 radio(9,10); const uint64_t pipe = 0xE8E8F0F0E1LL; int msg[1];
El setup es casi el mismo.
void setup(void) {
Serial.begin(9600); radio.begin(); radio.openReadingPipe(1,pipe); radio.startListening();
}
Pero en vez de usar radio radio.openWritingPipe(pipe) para escribir, usamos radio.openReadingPipe(1,pipe) para poder leer y después radio.startListening() nos permite comenzar la escucha. Y ya solo falta el setup con el programa que recibe:
void loop(void) {
if (radio.available()) {
int done = radio.read(msg, 1); Serial.println(msg[0]);
} }
Se nos ha vuelto a perder la parte difícil, porque no me digáis que no es sencillo y elegante. El tema no da para más. Si corréis los programas en Arduinos diferentes, la salida del receptor debería ser algo así:
http://www.prometec.net/nrf2401/
7/18
16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino
(http://www.prometec.net)
TIENDA (HTTP://WWW.PROMETEC.NET/TIENDA/)
ARDUINO (HTTP://WWW.PROMETEC.NET/INDICE-TUTORIALES)
(http://www.prometec.net/wp-content/uploads/2015/02/img1.png) Programa por el que no ganaremos ningún premio, pero que ilustra a la perfección como emitir datos numéricos uno a uno entre emisor y receptor mediante radio /WWW.PROMETEC.NET/INDICE-RASPBERRY-PI/) frecuencia. Si habéis llegado hasta aquí, enhorabuena acabáis de emitir por radio, vuestro primer mensaje. RASPBERRY PI (HTTP:/ IMPRESORA 3D (HTTP:/ /WWW.PROMETEC.NET/3D-INDICE/) Bueno, está bien. Enviar un carácter esta chupado, pero ¿Que pasa si hay que enviar un String completo, seguro que la cosa se complica?
FORO (HTTP://WWW.PROMETEC.NET/FOROS-PROMETEC/)
CONTACTO (HTTP://WWW.PROMETEC.NET/CONTACT/)
Pues sí. Para enviar un mensaje de texto tenemos que cambiar un par de cosas. Primero denir un array de char suciente para que quepa el mensaje:
char msg[16]="Prometec.net.\n" ;
Y después cambiar el loop para que envié los 16 caracteres
void loop(void) { radio.write(msg, 16); }
Y por supuesto hay que cambiar el programa del receptor
void loop(void) {
if (radio.available()) {
int done = radio.read(msg, 16); Serial.println(msg);
} }
Basta con llamar a radio.write o radio.read con el array como parámetro y pasarle el número de caracteres que queremos enviar o recibir. Aquí tenéis el emisor y el receptor modicados. Emisor_String (http://www.prometec.net/wp-content/uploads/2015/02/Emisor_String.rar) Receptor_String (http://www.prometec.net/wp-content/uploads/2015/02/Recptor_String.rar) He visto en Internet un programa que me encantó, porque lo que hace es colocar un LED rojo y uno Verde en los pines 3 y 5 de Arduino y después emite números entre 0 y 255 en el emisor mientras en el receptor corre un programa que controla que los números se reciban en el orden adecuado. Cuando es así, ilumina brevemente la luz verde, en caso contrario la roja. Lo bueno de esto es que os sirve como ejemplo de si tenéis una buena recepción o no, ya que según el baile de los LEDs tenéis una idea bastante aproximada de los errores de trasmisión que tenéis en vuestra zona. Usad el programa Prog_79_1_Emisor (http://www.prometec.net/wp-content/uploads/2015/02/Prog_79_1_Emisor.rar) para el emisor y este programa en el receptor Prog_79_4 (http://www.prometec.net/wp-content/uploads/2015/02/Prog_79_4.rar).
http://www.prometec.net/nrf2401/
8/18
16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino
RESUMEN DE LA SESIÓN . Presentamos las unidades de radio NRF2401, que son ideales para muchos proyectos, porque son
buenas, bonitas y baratas. Vimos como conectarlas a nuestros Arduinos con conanza usando el SPI y un par de pines. Descargamos y usamos la librería RF24 para el manejo de las radios y vimos los comandos básicos
para enviar y recibir. Hicimos un montaje de prueba con una comunicación en una única dirección.
Anterior (http://www.prometec.net/hlkrm04//)
Siguiente (http://www.prometec.net/duplexnrf2401) (https://www.facebook.com/prometecnet1541207239447373/timeline/)
« COMENTARIOS MÁS VIEJOS (HTTP://WWW.PROMETEC.NET/NRF2401/COMMENT-PAGE-3/#COMMENTS)
(176) COMMENTS
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=22615#Respond)
Roberto (http://www.prometec.net/nrf2401/)
30 Jun 2017
Creo qu ya se por que tengo el error de void value not ignored as it ought to be, tengo instalada la libreria RF24-master pero la hecha por TMRh20 en lugar de la de manicbug, ya la tenia instalada anteriormente, pero con la nueva versión de arduino no están las carpetas de las librerías instaladas en la carpeta libraries del disco duro, solo estan las que son por default en arduino ide y no se como desintalarla, la instale con el gestor de librerias de arduino, y aunque copio la libreria de manicbug a la carpeta libraries me sigue dando el mismo error, supongo que por conicto de librerias, como la pudo desinstalar e instalar la de manicbug?
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=22484#Respond)
Alberto
25 Jun 2017
Hola; Mi nombre es Alberto. Adquirí hace unos meses el GPS Shields DUINOPEAK así como el módulo NRF2410 en su tienda (atención exquisita). Ambos funcionan perfectamente por separado, pero cuando pongo el Shield del GPS en un arduino UNO y a través de este Shield conecto los pines del NRF2410 no consigo que funcione. Si programo un sketch para transmitir datos con NRF2410 en
http://www.prometec.net/nrf2401/
9/18
16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino
arduino UNO funciona correctamente, si trato de conectar los nes de este módulo al Shield del GPS el programa ya no funciona. He probado a encender un LED utilizando el Shields del GPS a modo de protoboard y funciona correctamente. ¿qué estoy haciendo mal?. Muchas gracias.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=22436#Respond)
Roberto (http://www.prometec.net/nrf2401/)
21 Jun 2017
Hola, en el programa del receptor que publicaste me sale una falla en la linea 30 al compilar, me dice void value not ignored as it ought to be, no se donde se pueda encontrar el error, PD: no he podido hacer funcionar estos módulos todavía, agradecería tu orientación
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=22479#Respond)
Ivan (http://www.prometec.net/members/ivan/)
25 Jun 2017
Hola Roberto, he descargado el programa y no me da ningún error al compilarlo. Prueba a actualizar la libería y si no te funciona copianos el error completo a ver si podemos ayudarte. Un slaudo.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=22293#Respond)
Cristian (http://www.prometec.net/nrf2401/)
13 Jun 2017
Estimados los e probado y tengo varias librerías, me podrían decir si en estos módulos la velocidad de transmisión afecta la distancia? es decir a menor velocidad es cierto que mayor distancia? lo otro e probado dos librerías la nRF24L01.h, que va junto con la RF24 y e probado la nRF24L01p.h, esta ultima muy facil de usar, alguien tiene datos al respecto con relación a distancia, en lo personal lo que mas e logrado conseguir son 500 mts pero nunca el kilómetro que promete… solo utilizo los que vienen con amplicador y antena externa.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=22308#Respond)
Ivan (http://www.prometec.net/members/ivan/)
14 Jun 2017
Hola Crsitian, pues la verdad es que yo no lo he llegado a probar hasta tan lejos, a ver si alguien puede aportarnos algo. Un saludo.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=21499#Respond)
http://www.prometec.net/nrf2401/
10/18
16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino
Erik
09 May 2017
como puedo saber si mis módulos funcionan?, son el modelo con antena, los probé como scaner con el ejemplo de la librería nrf24 y me manda varios datos, pero a la hora de probar emisor y receptor no funciona, ya verique las conexiones y el código y no logro ver cual es la falla, ya alimente con fuentes externas los arduinos, a lo que me reero es que si hay alguna forma de saber si están dañados mis módulos, medir alguna resistencia o probar continuidad en algún lugar, ayuda por favor.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=21590#Respond)
Ivan (http://www.prometec.net/members/ivan/)
11 May 2017
Hola Erik, estos módulos no tienen ningún led testigo que nos haga saber que funciona. Si por separado funcionan, es de suponer que funcionan bien, pero tampoco te puedo decir mucho más. Yo estoy utilizando un par de ellos para un coche RC y no me han dado problemas.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=21470#Respond)
Robert (http://www.clubaeromodelismecalella.com)
09 May 2017
Buenas, Muchas gracias por los códigos, llevo dos días jugando como un niño pequeño con los módulos. Sin embargo, llevo cuatro horas peleándome con el que funciona de emisor. Lo he insertado en un viejo código que tenía de generación PPM y, a los pocos segundos de enviar tramas, se queda como bloqueado y no vuelve a funcionar hasta reiniciar el Arduino emisor. He puesto varios “chivatos” para que me digan en qué parte de las interacciones se queda y es dentro del loop justo al hacer unas cuantas radio.write(). Se para no solo la emisión, también el programa entero. Muchas gracias por vuestra ayuda! Un saludo desde Girona. Robert.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=21517#Respond)
Ivan (http://www.prometec.net/members/ivan/)
09 May 2017
Hola Robert, puede ser que la alimentación durante la transmisión sea insuciente, porque es el momento que tiene mayor pico de consumo, aunque lo digo un poco así a huevo. A ver si puedo hacer aluna prueba y te comento. Un saludo.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=21463#Respond)
Antonio (http://www.prometec.net/nrf2401/)
09 May 2017
Buenas! Quería comentar un suceso que me trae un poco desquiciado desde hace tiempo.
http://www.prometec.net/nrf2401/
11/18
16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino
El caso es que estoy utilizando los módulos de radiofrecuencia tanto con arduino unos como con nanos (éstos últimos chinos). Cuando subo el programa emisor al arduino uno y empleo los nanos como receptores todo funciona según lo esperado, pero cuando quiero usar los arduinos nanos como emisores, solo me envían uno o dos paquetes de datos en los instantes posteriores a hacerles reset y posteriormente no envían nada. He probado comprando otros módulos de rf por si era ese el problema, pero no he conseguido solucionarlo.. alguien sabe que es lo que sucede?? Saludos y buen post.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=21519#Respond)
Ivan (http://www.prometec.net/members/ivan/)
09 May 2017
Hola Antonio, puede ser que la alimentación durante la transmisión sea insuciente, porque es el momento que tiene mayor pico de consumo, aunque lo digo un poco así a huevo. A ver si puedo hacer alguna prueba y te comento. Un saludo.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=20866#Respond)
miguel (http://[email protected])
19 Abr 2017
Hola, soy novato en Arduino, y viendo los modulos nRF24L01 he pensado que se podrían usar para hacer un mando para controlar un robot que estoy haciendo. He probado el programa que envía números de 1 a 255 de un arduino a otro y veo que funciona muy bien. El problema es que tengo que enviar muchos códigos distintos para poder manejar las distintas partes del robot y he pensado que si utilizara un teclado 3×4 seria fácil enviar hasta 128 codigos distintos. El problema que me encuentro es que no se como pasar los datos char que me da el teclado para poder enviarlos por el nRF24L01 a pesar de que estoy haciéndole una conversión de cadena int con el comando atoi. Si me aparecen como caracteres y enteros en el modulo emisor, pero no recibe nada el modulo receptor. Debo de estar equivocándome en alguna parte. Desearia si es posible me ayudase para poder poner en orden mi programa. Gracias de antemano.Miguel P.D. El programa que he modicado es asi: //Envia 3 pulsaciones de teclado 3×4 como numero por nRF24L01 #include #include #include #include #include int msg[1] ; // Array a transmitir RF24 radio(9,10); // Creamos un objeto radio del tipo RF2$ const uint64_t pipe = 0xE8E8F0F0E1LL; // Usamos este canal String clave=”000″; char inicia_clave=’#’; const byte Filas=4; const byte Colum=3; char teclas[Filas][Colum]={ {‘1′ ,’2′ ,’3’}, {‘4′ ,’5′ ,’6’}, {‘7′ ,’8′ ,’9’}, {‘*’,’0′ ,’#’} }; byte pinFilas[Filas]={8,7,6,5};// he dejado libre la linea 9 y 10 pues byte pinColum[Colum]={4,3,2};// son las que usa nRF24L01 Keypad Teclado=Keypad(makeKeymap(teclas),pinFilas,pinColum,Filas,Colum); int numero; http://www.prometec.net/nrf2401/
12/18
16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino
String strNumero; void setup(){ Serial.begin(9600); radio.begin(); radio.openWritingPipe(pipe); // Abrir para escribir Serial.println(“Empezamos”); Serial.println(“Pulsar # antes del numero”); } void loop(){ strNumero=’0′ ; int n=0; char tecla=Teclado.getKey(); if(tecla !=0){ if(inicia_clave==tecla){ while(n<3){ clave[n]=Teclado.waitForKey(); strNumero=strNumero+clave[n]; n=n+1; } Serial.print("cadena= "); Serial.println(clave); numero=strNumero.toInt(); Serial.print("numero= "); Serial.println(numero); msg[0] = numero; radio.write(msg, 1); } } }
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=20941#Respond)
Ivan (http://www.prometec.net/members/ivan/)
21 Abr 2017
Hola Miguel, en principio deberías poder enviar un array de char usando estos módulos, así que puedes convertir la cadena a un array de char y enviarlo.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=20824#Respond)
Javier
18 Abr 2017
Hola, Buenos días. tengo dentro de un recogedor de persiana, un arduino nano, dos relés y el NRF24, todo funciona correctamente, pero a veces cuando pasa corriente por el relé para el motor de la persiana el NRF24 se queda sepia y tengo que reiniciar, ¿ debería de poner un condensador al NRF24 o intentar aislar los cables que vienen del motor ?, dentro del recogedor de la persiana tengo es espacio justo. Gracias de antemano.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=20826#Respond)
admin (http://www.prometec.net/members/admin/) http://www.prometec.net/nrf2401/
18 Abr 2017 13/18
16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino
Hola Javier, Hay varias cosas que puedes probar a ver que pasa. Lo del condensador siempre viene bien aunque habria que ir probando valores a ver que pasa. La otra es eparar la alimentacion de la electronica y el motor para aislarlos lo mejor posible
Javier (http://web)
20 Abr 2017
Hola, Buenas tardes. He revisado la alimentación y esta todo correcto, el problema esta en el motor que tengo conectado al Reply relé es un motor de persiana de solo 140 W, pero genera bastante ruido eléctrico, exactamente siempre cuando el relé desconecta el motor, se me queda el NFR24 bloqueado, la duda que tengo sería un (Http://Www.Prometec.Net/Nrf2401/? condensador en los polos del relé, pero de 100nf o 100uf, el rele es el típico de 10A. Replytocom=20916#Respond) Saludos
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=20586#Respond)
SUSO (http://www.prometec.net/members/susogf/)
09 Abr 2017
Hola Y he realizado una conexión con la librería NRF24 y funciona correctamente para enviar y recibir con un canal pero quería saber cómo podría abrir dos canales distintos de emisión y luego elegir en el receptor el canal del que quiero los datos a modo de Mando de radiocontrol Muchas gracias
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=20620#Respond)
admin (http://www.prometec.net/members/admin/)
10 Abr 2017
Hola Suso, no he hecho esa prueba pero no deberia ser muy complicado usando diferentes pipes
SUSO (http://-)
10 Abr 2017
Es que la verdad no tengo claro la necesidad del segundo canal de transmisión ya que lo que estoy haciendo es un robot con un brazo (estilo andrómina) y lo que trasmito son velocidad, dirección y Reply movimientos del brazo. Entonces en realidad ahora mismo lo que hago es enviar a través de un canal dos matrices de valores enteros, en la primera mando los datos de velocidad y dirección y en la segunda los (Http://Www.Prometec.Net/Nrf2401/? valores de los ángulos de los servos del brazo. Replytocom=20623#Respond) Pero no se, que opinas? Quizás parece más académico crear dos canales, uno para velocidad y dirección y otro para el brazo o incluso tres, uno para velocidad, otro para dirección y el tercero sería para el brazo. No se las ventajas que ofrecería, pero teóricamente así funcionaría un mando de radio control. Lo que sucede es que no sé como en la librearía del NRF21 indicar que canal estoy usando para el envío y luego en recepción cual es el canal que estoy recibiendo. A ver si alguien tiene idea de como indicar el número de canal que emite y el número de canal que recibe. Con uno, seguí tu tutoríal y la verdad es que va bien.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=20628#Respond)
Jesús Sánchez (http://www.prometec.net/members/suso/)
10 Abr 2017
Hola tocayo.
http://www.prometec.net/nrf2401/
14/18
16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino
Si usas un módulo emisor y un módulo receptor en comunicación unidireccional, no tienes porqué crear más canales para enviar más datos (que creo que no sea posible). Por el mismo canal envías todos los datos que quieras empaquetados en un array, que luego en el receptor eliges qué dato quieres utilzar. En varios sketchs de prueba he podido enviar sin problemas datos de temperatura, humedad y valor analógico, incluido decimales. Si tuvieras varios nodos o módulos enviando información a un solo receptor, entonces sí tendrías que abrir un canal para cada emisor, lo que se llama una red en estrella o Multiceiver, pero creo que este no es tu caso. Saludos.
suso (http://-)
10 Abr 2017
Muchas gracias Jesús, pues haré lo que dices, que además funciona perfectamente.
Jesús Sánchez (http://www.prometec.net/members/suso/)
10 Abr 2017
Por nada. Además, tienes parámetros para modicar la potencia, los reintentos, los canales de RF, la velocidad… con lo que puedes ajustar bastante para no perder paquetes. Saludos.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=20555#Respond)
Antonio
07 Abr 2017
Esta antena tambien se puede usar con arduino micro o nano???
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=20629#Respond)
Jesús Sánchez (http://www.prometec.net/members/suso/)
10 Abr 2017
Hola Antonio. Sin problema. Un Micro y un Nano trabajan igual que un UNO.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=20491#Respond)
william sanchez (http://[email protected])
06 Abr 2017
sera posible conectar a estos modulos las lectoras rd-rc522 enviar los datos a la placa aruino y recibir respuesta de validacion de usuario y activar un relee para abrir puerta te agradesco tu respuesta
http://www.prometec.net/nrf2401/
15/18
16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=20496#Respond)
Ivan (http://www.prometec.net/members/ivan/)
06 Abr 2017
No veo por qué no, y sería un proyecto muy chulo para por ejemplo controlar la apertura de una puerta de garaje, que estaríamos encantados de publicar en prometec. Un saludo.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=20115#Respond)
Charlie
29 Mar 2017
Hola, buenas… El ejemplo del 123456… me funciona perfecto teniendo los dos arduinos conectardos vía USB al pc (un MacBook en mi caso), pero cuando empiezo a cambiar el modo de alimentación empieza a fallar muchísimo. Incluso falla con un alimentador para arduino de 5v comprado en esta web. Voy a montar un condensador tal como pone en alguna web que he visto, de que capacidad uf sería lo ideal, de 10uf? Gracias por toda la información vertida en esta web, sois un ejemplo de como delizar clientes. Seguid así.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=19971#Respond)
Manu
25 Mar 2017
Hola, gracias por el tutorial. teniendo en cuenta que habláis de consumo de 1A… os parece que es posible usar el emisor con una bateria? de qué tipo debería ser? saludos
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=20026#Respond)
Ivan (http://www.prometec.net/members/ivan/)
27 Mar 2017
Hola Manu, deberías poder usar una batería pero asegúrate que tenga bastante capacidad o no te durará demasiado. Un saludo.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=20032#Respond)
Jesús Sánchez (http://www.prometec.net/members/suso/)
27 Mar 2017
Hola Manu. Yo he usado, tanto una Li-Po de 3.7V y 3000mA más un convertidor DC-DC de 5V, como una 18650 de capacidad desconocida (China), y con ambas he alimentado todo el conjunto (Arduino, sensores, socket NRF y módulo NRF24). http://www.prometec.net/nrf2401/
16/18
16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino
Saludos.
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=19406#Respond)
Luis Privado
07 Mar 2017
Hola! Estoy teniendo problemas con la comunicación y creo que puede ser debido a la potencia piso del emisor. Por lo que veo usas una fuente de alimentación externa para el emisor pero, ¿usas la fuente para alimentar el arduino emisor y desde este arduino alimentar el NRF24L01? ó, ¿con la fuente alimentas a 3.3V externamente el NRF24L01 independiente del arduino?. Muchas gracias
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=19562#Respond)
admin (http://www.prometec.net/members/admin/)
12 Mar 2017
Hola Luis, tanto el emisor como el receptor tienen su propia alimentacion en el ejemplo y conviene que sea de al menos 1A porque los emisores pueden neceistar un cierto pico cuando envian señales
Reply (Http://Www.Prometec.Net/Nrf2401/? Replytocom=19574#Respond)
Jesús Sánchez (http://www.prometec.net/members/suso/)
12 Mar 2017
Hola Luis. Ultimamente he trabajado con estos módulos, tanto básicos como amplicados, y ciertamente los que traen antena externa y amplicador deben ser alimentados con una fuente aparte. No he visto necesario en el modelo básico (con antena integrada) y actuando como emisor, y lo he logrado hacer con los propios 5V de Arduino, sin problemas (red Multiceiver). Saludos.
GIVE A REPLY Message
Name (required)
Email (required)
URL
http://www.prometec.net/nrf2401/
17/18
16/7/2017
Los módulos de radio NRF2401 | Tutoriales Arduino
Post comment WordPress Anti-Spam by WP-SpamShield (https://wordpress.org/extend/plugins/wp-spamshield/)
Copyright Prometec (http://www.prometec.net)
http://www.prometec.net/nrf2401/
(http
(http (http
18/18