¿Se pueden encadenar en margarita 50 Arduinos?

6

Tengo varios usuarios en los asientos (50), cada uno con un pequeño teclado para la entrada. Necesito recolectar entradas de todos los usuarios; Quiero usar Arduinos para cada usuario, que también mostrará las respuestas en una pantalla de 7 segmentos. Tengo la intención de conectar todos los Arduinos con I2C, pero me temo que la señal podría disminuir debido a las limitaciones de larga distancia y de fan-out, por lo que estoy considerando encadenarlos.

¿Es esta una buena idea o hay un mejor enfoque para hacer esto?

    
pregunta Mudzify

5 respuestas

20

Como la nota de aplicación publicada por RedGrittyBrick dice:

  

Debido a que las aplicaciones originales I 2 C-bus eran internas a un equipo, por ejemplo, en una PC o equipo de radio / TV / audio, I 2 C -El autobús rara vez se considera para sistemas cuando se requieren largas distancias con un gran número de puntos de entrega.

Las soluciones en la nota de la aplicación son usar circuitos de controladores específicos para convertir las señales en algo que se pueda conducir en distancias más largas.

Como de todos modos necesitará circuitos de controladores, permítame sugerirle que eche un vistazo a RS-485 . Este es un estándar probado y confiable para la transmisión bidireccional a través de cables largos. Utiliza un UART normal en su Arduino, y los circuitos del controlador se pueden encontrar en muchas formas y formas. Si no desea crear su propia PCB, hay tarjetas adaptadoras disponibles que toman una señal TTL RX / TX de un UART y la convierten a niveles RS-485.

    
respondido por el pipe
7

Si no estás particularmente vinculado a la idea de usar Arduinos para esto, puedes probar otras placas de microcontroladores. Me gustan mucho los distintos tableros que se basan en el chip ESP8266; Estos tendrían la ventaja de tener una conexión de red inalámbrica integral, de modo que todos puedan hablar directamente con su sistema central que almacena la entrada.

    
respondido por el Jules
5

¿Has considerado arduino Ethernet con PoE? Resuelve el problema de alimentación de los dispositivos y permite comunicaciones de dos vías

    
respondido por el hardillb
2

Si la distancia entre sus nodos no es grande, y no necesita obtener una comunicación particularmente rápida, una cadena de margaritas donde los mensajes se propagan de uno a otro a través de UARTs en serie es probablemente una de las pocas cosas puede hacerlo sin agregar hardware . No hay límite a la longitud de la cadena que puede lograr si cada placa regenera la señal que transmite, sin embargo, cada nodo agregará un poco de demora antes de que transmita un mensaje. En la implementación más simple, la demora por nodo puede ser igual a Tiempo de transmisión de los contenidos del mensaje.

Sin embargo, suena como si tuvieras que pasar mensajes en ambas direcciones a lo largo de la cadena. El desafío sería la presencia de un solo UART de hardware en cada placa. Puede aumentar eso con un software uart, aunque para obtener más de uno de los que tiene que usar una implementación más sofisticada que la predeterminada que se incluye con el IDE. O bien, si puede mantener fuera del camino cualquier dispositivo USB de a bordo, puede usar el hardware UART para comunicarse en una dirección y el software en la otra.

    
respondido por el Chris Stratton
1

Puede superar las limitaciones de I2C mediante el uso de DS28E17 puente.

Por supuesto, la solución dependerá de su presupuesto y del ancho de banda requerido.

    
respondido por el closedball

Lea otras preguntas en las etiquetas