¿Cómo amplío el número de pines analógicos (de entrada) disponibles para mí?

26

Ya sé cómo extender el número de pines digitales en un Arduino usando un multiplexor.

Quiero aumentar la cantidad de canales de entrada analógica que tengo. Una solución es agregar otro Arduino como esclavo.

¿Cómo aumentaría el número de canales de entrada analógica? (Supongo que algunos MUXing y ADC están involucrados). Si es demasiado complicado escribir una respuesta, un esquema general de circuito / código también estaría bien.

También estoy abierto a sugerencias de protección, aunque preferiría que hubiera una solución de hardware no demasiado difícil.

Manishearth
fuente
Publicación relacionada electronics.stackexchange.com/a/62500/7036
Nick Alexeev

Respuestas:

32

Si ya está familiarizado con los chips multiplexores digitales, ¡buenas noticias! También se pueden usar para señales analógicas.

http://playground.arduino.cc/Learning/4051

La premisa básica es exactamente como con la multiplexación de señal digital. Utiliza el chip 4051 como un "cambiador de carril" y lee la señal de cualquier carril al que le diga al chip que cambie. el 4051 usa 3 pines digitales y 1 pin analógico (o digital) adicional en el arduino para crear hasta 8 carriles de entrada. Algunos multiplexores son encadenables, por lo que puede agregar con bastante facilidad 8 señales más sin necesidad de mantenerlas alejadas del arduino.

Es exactamente como la técnica que ya conoce para las señales digitales, simplemente conecte el canal desde el que lee a un pin analógico en lugar de uno digital, luego recorra los estados binarios y lea los valores analógicos.

Hice un gif animado para ti.

ingrese la descripción de la imagen aquí

Steve Cooley
fuente
3
Si bien el enlace responde a la pregunta, ¿podría elaborar un poco? Escribir sobre el circuito en corto? (Se desaconsejan las respuestas de solo enlace en la red)
Manishearth
Bueno. Respuesta expandida.
Steve Cooley
3
Una aclaración, el 4051 que menciona es un mux analógico, no un mux digital, aclararía en su respuesta porque definitivamente hay muxes digitales que no pueden lograr esto porque sus controladores de salida y entrada no están diseñados para una respuesta lineal. Quizás valga la pena agregar una nota de que el encadenamiento de muxes analógicos puede afectar la señal dependiendo de las características de mux
naven87
1
Vale la pena señalar que los muxes analógicos no son triviales para seleccionar, el diseñador debe considerar la oscilación de voltaje (la mayoría solo opera dentro del rango de suministro, como opamps), ancho de banda, resistencia ON, diafonía, etc., etc., siendo la oscilación de voltaje el mayor potencial Mostrar tapón.
Señor Mystère
Creo que también puede usar un pin digital para alimentar un sensor, así que encienda un pin digital con respecto a la detección de VCC y comparta el mismo análogo.
Ciasto piekarz
10

Puede ser importante recordar que el chip ATmega del Arduino está usando un MUX analógico. Los chips basados ​​en Uno (ATmega328) solo tienen un solo ADC. Las 6 entradas analógicas son en realidad un MUX que se conecta a ese ADC.

Es por eso que solo puede leer 1 entrada analógica a la vez.

Al expandir entradas analógicas, puede ser necesario considerar cuánto tiempo lleva hacer todo este MUXing y si son necesarios o no ADC externos adicionales en su aplicación.

Baldengineer
fuente
1

Considere esto: agregue ATtiny 85 con comunicación serial con el Arduino, usa 2 pines para Rx, Tx, y tiene 3 pines más que pueden usarse como analógico. Esto puede desarrollar su propio protocolo, el ATtiny puede procesar el algoritmo y enviar la información procesada a Arduino, también es muy barato, lo probé por mí mismo, creo que es una buena arquitectura.

Buen día

Avi
fuente