Arduino Esclavo

Hola amigos!

Requiero hacer una consulta. Supongamos que tengo un arduino mega como principal, y 3 arduinos nano como esclavos. Yo puedo introducir el mismo codigo en los arduinos nano? Es decir que todos usen la misma señal? Que no tenga que crear un codigo para cada uno, si no que usen todos el mismo?

Y como los comunicarás?
Por Serial no se puede
Por I2C o SPI si.
Por Serial usando RS485 tmb

1 Like

Hola, con la señal I2C, pero mi consulta es si a los arduinos nano, puedo usar el mismo codigo en los tres.

Si, pero tendras que indicarle a cada uno que dirección esclava tiene. Eso puedes hacerlo generico y almacenarlo en la EEPROM para no variar tu código en los NANOs.

1 Like

Perfecto no conozco mucho sobre el EEPROM, pero voy a leerlo

También podes setear la dirección usando 2 pines (si hay disponibles).
En base a como los conectas tienes hasta 4 direcciones diferentes.
Similar a como se hace en casi todos periféricos I2C que habitualmente usamos.

Arduino EEPROM en google.
solo le pones 1 a un esclavo, 2 al otro y 3 al siguiente y listo.

Hola, si mi idea era usar una protoboard que sea de puentes, conectar las señales I2C del mega y de ahi sacarlas a los nano

Quieres usar puentes usa puentes pero es mas facil con la EEPROM.

No, no es más fácil, porque hay que primero grabar el dato en la eeprom.

De hecho, si quisiese hacer una placa de backup, guardando la dirección en eeprom se complica.
Con 2 pines, y puentes, dip switches o lo que sea, cambia la dirección en nada.

Ahh te parece que no es fácil grabar 1 dato en la EEPROM. Y solo leerlo con el setup?
Nunca mas lo usas pero que el OP haga lo que quiera.

Por qué? Porque no arranca con la dirección que tu quieres? Vaya problema.
Creo que exageras @MaximoEsfuerzo, pero bueno. Que el interesado haga como quiera.

A ver, tienes 3 placas (direcciones 0x10, 0x11, 0x12) y una más de backup por si una falla. ¿Qué dirección le grabas a la de backup si no sabes en qué posición va a ser usada?

Yo no exagero, solo hago sugerencias.

Tengo varias respuestas a esto. Ya que tenemos 3 esclavos y uno falla, podriamos hacer alguna de estas opciones.

  1. Te haces otro sketch para guardarle la dirección.
  2. le grabo 0x13 y lo tengo en cuenta en el código maestro. Si hay un 0x13 es porque me falta un nodo ya sea 0x10, 0x11 o 0x12. El que no responda es el que falta. Entonces creo un metodo para cambiarlo.

Lo que todavía no entiendo es para qué guardar la dirección en eeprom si finalmente queda fija, es prácticamente lo mismo que fijarla en el código y se evita tanta complicación.
Hay que hacer más pasos para finalmente obtener el mismo resultado.

Como decía un viejo profesor "Un problema tiene tantas soluciones como programadores y todas son válidas".

Y que discutimos entonces? Aplicá lo que decis.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.