Tengo múltiples usuarios en asientos (50), cada uno con un pequeño teclado para ingresar datos. Necesito recopilar 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 usando I2C, pero me temo que la señal podría caer debido a las limitaciones de larga distancia y distribución, por lo que estoy considerando conectarlos en cadena.
¿Es esta una buena idea, o hay un mejor enfoque para hacer esto?
Como dice la nota de aplicación publicada por RedGrittyBrick :
Debido a que las aplicaciones originales de I 2 C-bus eran internas a una pieza de equipo, por ejemplo, en una PC o equipo de radio/TV/audio, I 2 C-bus rara vez se considera para sistemas cuando las largas distancias con un gran número de caídas se requieren puntos.
Las soluciones en la nota de aplicación es usar circuitos de controlador específicos para convertir las señales en algo que se pueda conducir a distancias más largas.
Dado que necesitará circuitos de controlador de todos modos, 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 quiere hacer 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.
Si no está particularmente atado a la idea de usar Arduinos para esto, puede probar otras placas de microcontroladores. Soy bastante aficionado a las diversas placas que se basan en el chip ESP8266; estos tendrían la ventaja de que tienen una conexión de red inalámbrica integral para que todos puedan hablar directamente con su sistema central que almacena la entrada.
¿Ha considerado arduino Ethernet con PoE? Resuelve el problema de alimentación de los dispositivos y permite comunicaciones bidireccionales
Si la distancia entre sus nodos no es grande y no necesita una comunicación particularmente rápida, una conexión en cadena donde los mensajes se propagan de uno a otro a través de UART en serie es probablemente una de las pocas cosas que puede hacer sin agregar hardware . . No hay límite para la longitud de la cadena que puede lograr si cada placa regenera la señal que transmite, sin embargo, cada nodo agregará un retraso antes de transmitir un mensaje; en la implementación más simple, el retraso por nodo podría ser igual al tiempo de transmisión del contenido del mensaje.
Sin embargo, parece que es posible que necesite pasar mensajes en ambas direcciones a lo largo de la cadena. El desafío en eso sería la presencia de solo un UART de hardware en cada placa. Puede aumentar eso con un uart de software, aunque para obtener más de uno de esos, debe usar una implementación más sofisticada que la predeterminada que se envía con el IDE. O si puede mantener cualquier puerto serie USB integrado, puede usar el hardware UART para comunicarse en una dirección y el software en la otra.
Puede superar las limitaciones de I2C utilizando el puente DS28E17 de 1 cable a I2C.
Por supuesto, la solución dependerá de tu presupuesto y del ancho de banda requerido.
rojoarenosoladrillo
tubo
Wayne Werner
johnny
J...
michel billaud