Ayuda: Necesito conectar varios arduinos uno maestro y los demas esclavos

Hola amigos, necesito conectar un arduino maestro que pueda recibir variables de otros arduinos que ellos tienen a su vez conectado unos sensores. La idea es del maestro tomar las variables de los esclavos y poder generar otra accion.
Ejemplo

maestro ------- Generar la suma de los que estan activos = 3
------- arduino esclavo 1 ----- sensor---- activo
------- arduino esclavo 2 ----- sensor---- activo
------- arduino esclavo 3 ----- sensor---- desactivado
------- arduino esclavo 4 ----- sensor---- activo

no se como hacer la conexión por favor ayudarme.

Hola:

Lo que vos queres hacer se puede perfectamente. Es comunicación serie y puede ser I2C o SPI.

Ejemplo en I2C:

Obviamente es todo mas sencillo si conectas todos los sensores al mismo Arduino.

Saludos

Amigo, pero es que es un proyecto mas o menos grande y eso nada mas es un ejemplo digamos que voy a utilizar 100 sensores, entonces no podre utilizar solo 1, necesitare mas arduinos.
Si conecto mas arduino solo veo la conexión entre los pines 4 y 5 como hago con los demás?

por eso es un ejemplo, porque se conecta de la misma manera para el resto de los dispositivos, buscando en google, uno de los primeros resultados, en español, es este: http://www.electroensaimada.com/i2c.html muy explicativo, en el, se informa que con i2c se pueden tener hasta 128 dispositivos conectados.

Saludos.
Dependiendo de la distancia podrías usar protocolo serial RS485, y usar ModBus que seria muy profesional. El 485 te permite enlaces de hasta 1200 m, y en la misma linea puedes conectar varios esclavos.

dianroni:

Como te decía gepd, I2C se conecta con dos cables de datos, y los dos de alimentación eléctrica. Los cables de datos (y la alimentación también si queres) va en paralelo de equipo en equipo. Todo se conecta a los mismos cuatro cables.

Aunque no es la única manera de conectar un gran cantidad de sensores, también hay placas multiplexoras que admiten gran cantidad de pines pero que llegan al microprocesador con pocos cables.

La diferencia es que en un caso el programa y procesamiento esta en varias micros, y en el otro en uno solo con la ventaja de que "ve" en forma directa todos los sensores.
No se. Depende el caso por ahí es mejor uno o el otro.

Saludos

Pero segun el chip 485 que uses estarás limitado en la cantidad de dispositivos a conectar asi que tendrias que armarlos usando MAX487 que permite hasta 128 dispositivos
El max485 solo 32 dispositivos.

Otra idea seria armar una topología donde uses digamos 10 arduinos maestro esclavo como escalable.
Entonces tu arduino master consulta a esos 10 que consultas a sus 10 hijos.
total 100 en la 10ma parte de tiempo.

Costo extra 10 unidades que para tu proyecto no representa demasiado.
Ahora todo depende de cuán rápido necesitas actualizar los datos.

Es un proyecto de gran complejidad, programación y hardware, estas solo o tienes ayuda?

Intenta ser algo mas descriptivo.
Donde estarán los sensores ubicados, unos de otros.
Ves dificultad para el cableado, sea cual fuere el método de comunicación empleado?
Como los vas a alimentar, autónomamente o con fuente DC externa.

muchas gracias por la informacion! Se les agradece! :grin: :grin:

Hola que tal, tengo una duda en un caso similar y otra en otro tipo, les voy a comentar de que se trata mi proyecto, estoy haciendo un termociclador digital, el objetivo es controlar el nivel y temperatura del agua, llevo algo avanzado, el caso es que ahorita estoy tratando de ver como enviar una variable guardada al otro arduino al momento de darle un enter (después de seleccionar el valor de la varible) lo intente primero haciendo prender un led al presionar un boton( el maestro resive la entrada del señal del botón cuando sea presionado y manda un H por el puerto serial al esclavo y al resivir el led prende) si funciono pero vi que tenia que abrir el Monitor serial y pues sin abrirlo no funciona, el caso es que para habrir el monitor serial tiene que estar habierto el programa en una computadora y mi proyecto no tendra que estar conectado en una computadora, asi que ¿habra alguna manera de corregir eso?
Otra lo estoy haciendo con dos arduinos por que, para poder obtener una buena ayuda les dire, en mi proyecto, lo primero es que el usuario tiene que seleccionar el valor del nivel (1, 2, 3, o 4), despues le da enter y se guarda el valor del nivel, despues lo mismo con la temperatura (0 - 100) enseguida selecciona el valor de las horas, despues minutos que durara el programa, de hay el numero telefonico ( eso sera para que una ves que el programa finalizó, mandara un mensaje al usuario utilizando un sim 800 de eso aun no tengo bien definido) una ves de seleccionar el numero telefonico al darle enter me dara opciones de A=Start C= cancelar D Pause/play al darle play empieza, bueno esa es la idea ahora para el programa ya quedo todas las variables pero quise usar otro arduino por que en cuanto le de a play tengo que controlar la temperatura y contar el tiempo al mismo tiempo y para controlar la temperatura use un control ON-OFF cundo (if) la temperatura es mayor que la temperatura deseada (activa una celda peltier) y cuando PID en el caso cuando (else if) la temperatura es menor que el setpoint que se active el PID el cual uso un sensor DS18b20 y una resistencia termica de corriente alterna, el cual la temperatura de la resistencia se controlara al igual como se controla la luminosidad del foco, dependiendo la salida del controlador tendra que ser el tiempo en que se activara el triac ( por medio de un pulso con un moc3021 y un amplificador de cruse por cero, y al mismo tiempo tiene que estar contando cuanto tiempo lleva, maximo en definir son 99 Horas

Y por Wifi no se puede hacer?
O sea, que cada esclavo se comunique por wifi con el Master y le pasa la info.

Saludos!

A los dos les informo ( Ricardo_72 y bluebox_ar) que no deben responder hilos viejos.
Este data del 2015.
Van al subforo correspondiente y crean un nuevo hilo con su consulta o con lo que quieran afirmar, pero hilo o topico viejo que tiene mas de 120 días sin movimiento asi se queda, porque los interlocutores originarios no pueden participar, por algo quedó sin mas respuestas.

Yo tengo un proyecto similiar que es una red de sensores que muestre la informcion en tiempo real y necesito hacer que un arduino maestro reciba in formacion de los sensores conconectados a varios arduinos esclavos a la vez y que poder manipular esa informacion al mismo tiempo