Go Down

Topic: Trabajar con varios módulos simultaneamente. Error TTX (Read 1 time) previous topic - next topic

Olbapk

Buenas, estoy trabajando con diversos módulos arduinos(uno gsm y uno bluetooth), pero ambos trasmiten la señal por TTX, y me interesa trabajar simultáneamente con ambos. Por ello me preguntaba si habría algún tipo de multiplexor que me permitisiese elegir la señal que entra en la placa. Otra opción que se me ocurre es apagar un dispositivo cuando el otro deba transmitir, el problema es que uno de ellos no podrá estar apagado nunca.

Gracias.

Heke

#1
Apr 02, 2013, 01:19 pm Last Edit: Apr 02, 2013, 01:23 pm by Heke Reason: 1
Existe la libreria newsoftserial que permite crearte un puerto serie en otros pines.

Puede que te haga el apaño...

Te dejo el enlace:
   http://arduiniana.org/libraries/newsoftserial/

Y un ejemplo de codigo para que le heches vistazo rapido, veras que conecta hasta 3 dispositivos serie, un GPS, un LCD y un Termometro:
Code: [Select]
#include <NewSoftSerial.h>

// Un GPS conectado a los pines 3 y 4
NewSoftSerial gps(4,3);

// Un termometro serie a los pines 5 y 6
NewSoftSerial therm(6,5);

// Un LCD serie a los pines 7 y 8
NewSoftSerial LCD(8,7); // serial LCD

void loop()
{
  ...
  // recoger datos del GPS durante unos segundos
  read_gps_data();  // usa GPS como dispositivo activo
  // lee temperatura del termometro
  read_thermometer_data(); // ahora usa el termometro
  // LCD como dispositovo activo
  LCD.print("Data gathered...");
  ...
}


Un saludo
CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

Olbapk

Pues me vienen genial, creo que me puede solucionar todo. Voy a investigar y te comento, muchas gracias Heke.

Olbapk

La verdad que después de mucho investigar tu opción, me resulta muy interesante, y de momento a falta de otras es la que va en cabeza. Digo a falta de otra ya que con tu idea, aún deberia obligar a alguno de los shield a usar alguno de los otros pines, lo que llevaría cableado como mínimo. Por eso me gustaría saber si existe algo como un multiplexor de señales o alguna alternativa similar, para evitar engorros.

Saludos.

noter

Si efectivamente los tres dispositivos son serie asíncrona, no veo nada sencillo que puedan compartir el mismo bus, pues a diferencia de SPI o I2C, el protocolo para UART creo que no observa la existencia de más de un receptor/transmisor (en teoría sería físicamente factible supongo, si se diseñara y  cumpliera un protocolo específico para todos los dispositivos participantes).
Así que creo que la mejor opción sería la que te ha propuesto Heke, aunque también (creo que no has indicado qué arduino usas) puedes usar otros puertos hardware (por ejemplo el mega tiene 4 puertos UART en total).

Go Up