Comprendiendo la Comunicación Serial HalfDuplex entre varios Arduinos.

Hola gente, muy buenas tardes a todos, y desde ya gracias por sus comentarios. Les hago una consulta acerca de un tema que me genera dudas que no logro despejar con la info encontrada.

Yo quiero conectar 6(seis) Arduinos entre sí por el puerto Serial, (son 5(cinco) arduinos NANO y 1(uno) Arduino Mega) a través de conversores de RS485 como se muestra en la imagen:

A cada uno le asignaré un Número de esclavo (por ejemplo 100, 101, 102, 103, 104 y 105).

Se deben intercambiar información entre todos. Es decir, no habrá un MAESTRO que solo pide info a sus esclavos, sino que todas las placas, deben enviar y recibir información a la otras.

La pregunta es la siguiente, si yo envío una trama del tipo:

(INICIO, DIRECCION, DATO1,DATO2,DATO3, CHECKSUM, FINAL)

Obviamente, para que esa información sea utilizada SOLO por la placa que necesito que la reciba, primero voy a fijarme si hay SERIAL.AVAILABLE, y si así fuera leo los 2 primeros datos. Si estos se corresponden con el caracter de INICIO DE TRAMA y con la DIRECCION de la placa, leo el resto.

Esto no me suena lógico, ya que según leí, en cuanto hago un SERIAL.READ, el dato leído se borra.

Esto es correcto? Lo he comprendido bien?

Como me conviene pedir y recibir el dato de una palca a otra? Agradezco su colaboración y aguardo sus amables comentarios.

Atte.

Esto no me suena lógico, ya que según leí, en cuanto hago un SERIAL.READ, el dato leído se borra.

Se borra del buffer del cada arduino, pero el mensaje los recibieron todos al mismo tiempo.
Un consejo: te estas complicando la vida, porque tendrás que escribir un protocolo para evitar las colisiones. Es mejor utilizar un protocolo ya establecido como Modbus, que encontraras varias librerías . Modbus, a pesar de no ser multimaestro, es suficiente para la mayoría de las aplicaciones. Si quieres intercambiar información entre los esclavos, simplemente el maestro es el encargado del intercambio.

Hola Peter, Muchas gracias por tu recomendación. La voy a tener muy en cuenta. Ahora mismo me voy a poner a buscar info de como comunicar a los arduinos entre si via MODBUS por RS485. Si tiene algun ejemplo, me vendría de 10 ya que es la primera vez que trabajo con este protocolo. Agradezco tu pedisposición para la ayuda. Un abrazo.