Cómo leer gran cantidad de entradas analógicas de forma rápida y eficaz con hardware compatible con Arduino

0

Necesito leer los valores analógicos de hasta 50 sensores de reflexión de luz analógicos que se utilizan para determinar la distancia a un objeto específico con un microcontrolador compatible con Arduino como:

  • Arduino Due con la CPU Atmel SAM3X8E
  • Arduino Zero con ATSAMD21G18, CPU ARM Cortex M0 + de 32 bits

Pero cuando pienso en mi idea, se me ocurren algunas preguntas que realmente no puedo responder a mí mismo:

Mi primera idea fue usar varios ATSAMD21G18 para leer un grupo de 6 dispositivos analógicos. Pero eso terminaría teniendo al menos 9 ATSAMD21G18 y teniendo que conectarlos con SPI o I2C.

Así que pensé en usar varios multiplexores / demultiplexores analógicos como el 4067 en su lugar. Incluso esto terminaría en varias unidades del 4067 pero podría usar un solo Arduino Due / Zero.

Sin embargo, mi preocupación es que el 4067 no cambia las entradas analógicas lo suficientemente rápido para mis necesidades. Realmente me gustaría leer todos esos valores analógicos lo más rápido posible. ¿Qué tan rápido sería un 4067 en esta aplicación?

Y también. Utilizando el 4067 tengo que usar E / S digitales para configurar el canal de entrada del 4067. ¿Puedo cablearlos en paralelo para poder compartir las E / S digitales con cada 4067?

¿Y también afecta la longitud del circuito a las lecturas cuando se tiene que lidiar con distancias entre el 4067 y el Arduino de aproximadamente 50 cm?

    
pregunta Simon Kemper

1 respuesta

3

En general, multiplexado en digital, no analógico. En algún lugar vas a tener 50 señales separadas. Ya sea que se incluyan en un grupo de muxes analógicos, en una pequeña cantidad de A / D, o en una serie de A / D y en una pequeña cantidad de puertos digitales, la complejidad no cambiará mucho.

Necesitas poner en orden tus prioridades. Usted no hace este tipo de cosas eligiendo primero el microcontrolador, y luego pensando cómo manejar cosas para hacer lo que quiera a pesar de lo micro. Comienza con los requisitos, luego elige un micro adecuado.

Su lógica para descartar un enfoque de muxing digital no tiene sentido:

Pero eso terminaría teniendo al menos 9 ATSAMD21G18 y teniendo que conectarlos con SPI o I2C.

Um, está bien, pero ¿cómo es eso un problema? Una vez más, vas a tener 50 pines separados en algún lugar de alguna manera. Tener estas entradas a un grupo de A / D de 8 canales (o lo que sea) suena como un enfoque razonable. Luego, usar SPI para muxar los datos de esos chips suena bastante razonable. Aparte de descartar esto, no ha dado ninguna razón por la que este no sea un enfoque razonable.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas