Enviar datos entre 2 Arduino Megas

Hola

quiero comunicar 2 arduinos a 20 mts de distancia para intercambien datos, estuve leyendo que para obtener esta distancia seria necesario acoplarle convertidores a rs485, sin embargo por el momento solo estoy manejando los puertos seriales para comprobar la comunicación entre ellos sin perdidas de señal.
El problema esta que cuando envio un dato de un arduino a otro por Serial1 a 9600 bps al cual le asigno un valor por medio del monitor serial, cuando quiero leerlo a veces no me muestra el mismo caracter que envie, no se si sea por el tipo de cable, por el momento estoy utilizando un cable de prueba pero planeo utilizar cable de ethernet clase 5

alguna idea de como solucionar esta perdida de información?

adjunto los códigos que estoy utilizando tal vez ahí este el problema
quiero pensar que tal vez con algun filtro con resistencias pueda eliminar esta ruido que me genera
gracias y saludos

recibir2.0.ino (254 Bytes)

enviar2.0.ino (229 Bytes)

Hola guitar26, los códigos debes verse, no adjuntarse. Mira en el foro como se postean los códigos y luego lee las Normas para saber cómo hacerlo usando tágs. Del modo que lo has hecho menos respuestas conseguirás.

Por si acaso fuera cuestión de software, prueba esto:

// Funciona tanto para emisor, como para receptor
void setup() {
  Serial.begin(9600);
  Serial1.begin(9600);
}

void loop() {
  if (Serial.available())
    Serial1.write(Serial.read());

  if (Serial1.available())
    Serial.write(Serial1.read());

  // Función write envía los bytes tal y como son
}

guitar26d: planeo utilizar cable de ethernet clase 5

Pues no sería mala idea, porque el ruido introduce voltaje que puede mal interpretar un bit. De seguro que la resistencia generada por el mismo alambre no supone ningún problema, debido a que las señales digitales suelen ser de insignificante intensidad de corriente.

guitar26d: quiero pensar que tal vez con algun filtro con resistencias pueda eliminar esta ruido que me genera

No estoy seguro, pero creo que la comunicación serial tiene sus pines "normalmente" en estado bajo; así que prueba a colocar resistencias "pull-down" (entre pin y tierra) de 4.7k en ambas líneas.

Hola.

Para 20 metros he llegado a usar por I2c sin problemas de comunicación, la comunicación por serie a esa distancia nunca la he probado.

De igual modo necesitas tres hilos para los dos protocolos, SDA, SCL y GND si usas I2c, o RX, TX y GND si usas Serial.