Usando varios Arduinos simultáneamente
Estoy trabajando en un proyecto en el que necesito controlar la luz de 5 botones y escuchar cuando el usuario enciende / apaga cada botón. Además, me gustaría proporcionar comentarios sobre una pantalla OLED. Parece que me estoy quedando sin alfileres. Estohttps://arduino.stackexchange.com/a/22689/69029proporciona varias opciones para eso. Específicamente, me gustaría explorar la opción de tener varios arduinos conectados entre sí en una configuración maestro / esclavo. ¿Dónde puedo aprender más sobre mi opción para construir cosas usando varios Arduinos conectados entre sí? También puedo prever escenarios en los que podría usar dispositivos de 3,3 V y dispositivos de 5 V.
Respuestas
Entre todas las opciones mencionadas, usar un maestro / esclavo debería ser el último recurso, especialmente cuando eres nuevo en la programación integrada o Arduino, no solo es más complicado sino también más costoso de implementar.
Una posible solución que podría liberar los valiosos pines de E / S digitales que fueron utilizados por los 5 botones es usar la entrada analógica para detectar el estado de los botones.
simular este circuito : esquema creado con CircuitLab
Cuando se presiona sw1, el voltaje en el A0 será de alrededor de 0.83v, y cuando se presiona sw5, el voltaje en el A0 será de 2.5v. Puede escribir un simple switch...casepara determinar qué interruptor se ha presionado.
El único problema de este circuito es que no puede manejar más de un botón presionado simultáneamente, pero eso podría resolverse duplicando el valor de cada resistencia como 10k, 20k, 30k ...
Esto liberará 5 pines digitales que se pueden usar para control (como servo, relé, etc.).
En lugar de intentar usar varias placas Arduino, lo que sería difícil, sugeriría usar un Arduino más grande. El mega 2560, por ejemplo, tiene toneladas de líneas GPIO.
No he visto que esto se haga mucho. Pero probablemente se deba a que no es la mejor opción en casi todos los casos.
Tener varias piezas de código, para diferentes tableros, que deben trabajar juntas. Tener que subir constantemente a diferentes tableros. Esto suena a pesadilla.
El único caso de uso que pude ver es que cada Arduino tenga una función única que no debería cambiar (mucho) con el tiempo, y que actúe como cualquier otro sensor IC o controlador led IC.
El mejor ejemplo de esto serían algunos de los tableros SparkFun Qwiic Twist , Quad Relay y Button . Para estos, utilizan un ATTiny84 IC compatible con Arduino con firmware personalizado para exponer su funcionalidad sobre I2C.
Pero la mayoría de sus placas Qwiic utilizan circuitos integrados personalizados, ya que son más baratos o cuestan menos para que funcionen.