Tecnología

InfotronikBlog Idea guardada 0 veces
Sé la primera persona en valorar esta idea Valorar

Arduino Ejemplos: El modulo NRF2401 comunicación Bidireccional

Como vimos en la entrada anterior: Arduino Ejemplos: El modulo NRF2401 comunicación Unidireccional se pueden enviar datos de un módulo nRF2401 a otro. Bien, esta comunicación puede realizarse en los dos sentidos, es decir, cada modulo tiene la capacidad de enviar y recibir datos.
Para ello necesitaremos dos canales, uno para enviar y otro para escuchar.
Esta comunicación es de tipo Half-Duplex ya que no transmite ni recibe los datos por el mismo canal, si no que abre un canal para enviar y lo cierra para escuchar. Un buen ejemplo de este tipo de comunicación son las emisoras de radio de tipo civil, donde el operador pulsa un botón para hablar y tiene que soltarlo para escuchar.
con este diagrama se entiende mucho mejor lo que quiero explicar:


La configuración en ambos Arduinos es prácticamente la misma, solo cambian algunas cosas como el canal donde recibimos y enviamos que tienen que estar al contrario en cada programa, eso lo configuramos en el void setup().
También tendremos que poner a la escucha en el setup el modulo receptor, si no, no funcionara.

Setup del emisor:

nRF.begin();
nRF.setRetries(15, 15); // Retardo y numero máximo de reintentos.
nRF.openWritingPipe(pipes[0]); //Abrimos el canal 0 para escribir.
nRF.openReadingPipe(1, pipes[1]); //Abrimos el canal 1 para leer.

Setup del receptor:

nRF.begin();
nRF.setRetries(15, 15); // Retardo y numero máximo de reintentos.
nRF.startListening(); //Ponemos el modulo en escucha.
nRF.openWritingPipe(pipes[1]); //Abrimos el canal 1 para escribir.
nRF.openReadingPipe(1, pipes[0]); //Abrimos el canal 0 para leer.
La parte resaltada en negrita es lo que hay que tener en cuenta a la hora de programar los Arduinos, el canal openWritingPipe del Arduino A es el openReadingPipe del Arduino B y viceversa.

El programa en si es muy parecido al anterior, cuando presionamos el pulsador en el Arduino A, mandamos al Arduino B encender el LED y el Arduino B contesta al Arduino A si el LED esta encendido o apagado.

Aquí tenéis una captura de los monitores seriales:



Bueno aquí os dejo el programa para quien le quiera echar un vistazo, es una muy buena base para hacer proyectos mas elaborados con este tipo de módulos, como por ejemplo un mando de RC multifunción el cual ya tengo empezado y subiré próximamente cuando este un poco mas "pulido".

Descargar Ejemplo Arduino nRF2401 Comunicación Bidireccional.rar

Espero les sirva, Saludos!!!
Fuente: este post proviene de InfotronikBlog, donde puedes consultar el contenido original.
¿Vulnera este post tus derechos? Envía una notificación de una presunta infracción de derechos. También puedes hacerlo a través de nuestro formulario de contacto.
¿Qué te ha parecido esta idea?

Esta idea proviene de:

Y estas son sus últimas ideas publicadas:

Usos para Raspberry Pi

Buenas a todos!!! Esta publicación va con un poco de retraso... ya tenía la Raspberry Pi 2 desde hacia bastante tiempo, pero como la tenia en otros usos y no he podido hacerle una entrada en condicion ...

Recomendamos

¡No te pierdas nuestra selección diaria!

Suscríbete y recibirás en tu correo nuestras mejores ideas

Suscríbete ahora

Relacionado

Arduino Comunicaciones Ejemplos ...

Arduino Ejemplos: El modulo NRF2401 comunicación Unidireccional

Buenas a todos!!! Siguiendo con la comunicación inalámbrica le toca el turno a los módulos NRF2401. Estos pequeños módulos comunican con Arduino para poder transmitir y recibir datos en la banda de 2.4GHz. Esto hace posible una comunicación a una distancia de unos 250 metros, más que considerable si lo comparamos con los módulos HC-06 que solo tiene un alcance de entre 5 y 10 metros. Como casi tod ...

Arduino Ejemplos i2C ...

Arduino ejemplos: LCD con i2c

Buenas a todos!!! Si ya vimos antes como utilizar un LCD 16x02, Arduino: El LCD 16x2 y Arduino: Diferentes efectos en un LCD 16x2 directamente conectando a Arduino usando en total un mínimo de 6 líneas, esto puede que no sea un problema si tú proyecto no utiliza muchos sensores, pero si es necesario usar el máximo de pines disponibles existe una solución que puedes usar, el módulo i2c para LCD. Co ...

Arduino Ejemplos manuales ...

Ejemplos Arduino: Semáforo (Street Light)

Buenas a todos!!! Hoy les traigo un ejemplo de los más básicos que se pueden realizar con Arduino: El semáforo. Si bien es un practica sencilla, nos ayudará a entender como realizar secuencias con LED y el bucle FOR que creo ya describí en otra entrada de este mismo blog. Arduino: Efecto Coche fantástico Podría haber realizado la practica con un solo semáforo, pero creo que queda mucho más bonito ...

analógico Arduino Ejemplos ...

Arduino ejemplos: Lectura analógica y led PWM

Muy buenas a todos!!! Muchos de los sensores que utilizamos para Arduino son sensores analógicos como potenciómetros, fotoresistencias, etc. Para esto Arduino utiliza unos pines específicos, que van desde el A0 al A5 en Arduino UNO y del A0 al A7 en el Arduino Nano. El ADC: Para poder leer correctamente los valores se utilizan 3 pines por sensor, +5V An GND. Por si mismo Arduino es incapaz de rea ...

Arduino Bluetooth Comandos AT ...

Arduino: Los comandos AT para el modulo bluetooth HC-06

Hace poco que he empezado a trastear con el modulo de comunicaciones bluetooth HC-06 y me he dado cuenta de la gran versatilidad para una enorme cantidad de proyectos. Pero este modulo viene con una configuración de fábrica (Nombre, Contraseña, Baud rate...), pero es algo que se puede cambiar. Para ello utilizaremos los comandos AT. ¿Que son los comandos AT? En un principio los Comandos AT eran u ...

Arduino Bluetooth Coche ...

Arduino: Driver L298N y Bluetooth HC-06

Buenas a todos!!! Ya iba siendo hora de poner algo de comunicación serial, y aunque parezca ya un poco avanzado, es muy sencillo utilizar el bluetooth HC-06 en Arduino. Con este emisor/receptor he construido este sencillo Rover que fácilmente se podrá controlar desde cualquier terminal Android con Bluetooth. El módulo HC-06: El HC-06 es un dispositivo de comunicación inalambrica operando en la fr ...

Android Studio Aplicaciones Arduino ...

Android: DFPlayer Mini Bt Controla tu modulo DFPlayer Mini fácil y sencillo

Después de ver la buena aceptación del programa para Android DFPlayer Mini Bt para controlar dicho modulo a través de un terminal Android, decidí hacerle algunas mejoras y de ahí ha salido esta su siguiente: DFPlayer Mini Bt v2. En DFPlayer Mini Bt v2 se ha mejorado la interface y añadido nuevas funcionalidades y una mejora en la comunicación entre el modulo HC-06 y el terminal. En la pagina de ay ...

Aplicaciones Arduino Ejemplos ...

Arduino: Grabación y lectura de Infrarrojos (IR) y control de 4 reles

Buenas a todos otra vez!!! Esta semana he estado trasteando con la comunicación infrarroja o IR (Infra Red). Este tipo de comunicación es unidireccional, es decir, la comunicación se efectúa en un solo sentido. Casi todos los controles remoto de TV, reproductores de DVD, incluso el mando del aire acondicionado funcionan con este sistema. ¿Que es la luz infrarroja? La luz infrarroja o radiación inf ...

analógico Arduino i2C ...

XboxRC24 Transmitter Un mando Radio Control con corazón Arduino (Parte 2)

Buenas Ardublogeros!!! La primera versión del software ya esta lista así que en esta entrada voy a explicar el código ya que esta vez he optado por estructurar el software por pestañas como vimos en la entrada anterior: Ejemplos Arduino: Trabajando con pestañas en el Sketch. Es algo que ya había visto en algún proyecto y no le había hecho mucho caso, pero en programas donde hay muchas lineas creo ...

Android Studio Arduino Bluetooth ...

Controlar DFPlayer Mini con Android por Bluetooth Parte 2

Buenas a todos otra vez!!! Para que no se hiciera una entrada un poco larga, he decidido hacerlo en dos partes, la parte 1 que es la parte del programa para Android DFplayer Mini BT y la parte de Arduino que sera esta segunda. Lo que más me ha complicado el proyecto ha sido el hecho de que para que funcione el DFPlayer utiliza la comunicación serial, con lo que tenia que habilitar otro puerto seri ...