Go Down

Topic: Conexión de 2 Arduinos Uno (Slaves) con Arduino Mega (Master) con I2C (Read 961 times) previous topic - next topic

JORGE_ROBLEDO

Que tal amigos, espero que me puedan echar un poco la mano. La verdad nunca antes había intentado hacer una comunicación entre tarjetas de Arduino y esta es la primera vez que lo emplearé.

Lo que pasa es que pleneo comunicar un Arduino Mega como master y 2 Arduinos Uno como esclavos mediante I2C. Mi duda es, ¿puedo configurar los puertos RX/TX de la siguiente manera?

#include <SoftwareSerial.h>
// Hardwire serial #1: RX = pin digital 0, TX = pin digital 1
SoftwareSerial portOne(0, 1);

// Hardware serial #2: RX = pin digital 19 TX = pin digital 18
SoftwareSerial portTwo(19, 18);

void setup() {
  // Abre la comunicacion serial y espera a que el puerto se abra:
  Serial.begin(9600);
  while (!Serial) {
    ; // Espera al puerto serial para conectar.
   
  }

  // Inicia cada puerto serial de software
  portOne.begin(9600);
  portTwo.begin(9600);
}

void loop() {
  // Por default, el ultimo puerto inicializado es escuchado.
  // Cuando se quiera leer un puesto en especifico, se selecciona:
  portOne.listen();
  Serial.println("Datos del Puerto 1:");
  // Mientras hayan datos en camino, leerlos y enviarlos al puerto serial del hardware.
  while (portOne.available() > 0) {
    char inByte = portOne.read();
    Serial.write(inByte);
  }


  Serial.println();

  // Ahora lee el segundo puerto:
  portTwo.listen();
  // Mientras hayan datos en camino, leerlos y enviarlos al puerto serial del hardware.
  Serial.println("Datos del Puerto 2:");
  while (portTwo.available() > 0) {
    char inByte = portTwo.read();
    Serial.write(inByte);
  }

// Paso de linea necesario para separar los datos de los dos puertos:
  Serial.println();
}






Esperome puedan ayudar  :smiley-cry:

surbyte

Dices por I2C y usas dos SoftwareSerial? Me parece que estas algo perdido!

Es es comunicacion x serie.
Ademas el MEGA tiene 4 puertos serie.
Usar SoftwareSerie en un MEGA es una tontería.

Reemplaza un SoftwareSerie por Serial1 y otro por Serial2.

Code: [Select]
SoftwareSerial portOne(0, 1);
lo reemplazas por Serial1
Donde escribiste portOne pones Serial1

Code: [Select]
SoftwareSerial portTwo(19, 18);
Lo reemplazas por Serial2
Donde tienes portTwo escribes Serial2.
Los pines estan en el mismo Mega. No hay forma de confundirse.


Te envié privado con instrucciones para editar tu post. Debes usar etiquetas y leer las normas del foro

Go Up