7 votos

¿Por qué tengo diafonía en el ADC de Arduino, a pesar de la baja impedancia de la fuente?

I. EL CIRCUITO:

A continuación, un Arduino Due mide las señales de tensión de dos circuitos divisores de tensión en paralelo:

enter image description here

Queremos que el Due mida con precisión las tensiones en los lugares donde hace contacto con los divisores de tensión. Sin embargo, vemos una significativa diafonía - Al cambiar la resistencia en un canal, cambia la tensión en el otro canal:

$$\textbf{TEST I} ~~(R1 = R2 = 10 M):$$ enter image description here

$$\textbf{TEST II} ~~(R2 = 3.3 M < R2 = 10 M):$$ enter image description here

Sin embargo, podemos rastrear teóricamente estos efectos a la fuga de corriente a través de la Due El Arduino tiene una impedancia de entrada de alrededor de 10 k, pero lo hemos sub-relojado de 20 MHz a 1 MHz, lo que eleva su impedancia de entrada a 266 k. Así que los electrones en el circuito divisor de voltaje seguramente preferirán entrar en el Arduino, en lugar de atravesar el 1 M colocado delante de ellos.

II. EL SEGUIMIENTO:

A continuación, hemos hecho una pequeña modificación a nuestro circuito original, con la esperanza de hacer que los canales de tensión sean realmente independientes: ambas señales se amortiguan con un ADA 4528-2 ( un amplificador de operación de dos canales ):

enter image description here

El amplificador óptico no está ahí para amplificar la señal: proporciona una ganancia de ~1,003. En cambio, está ahí para ocultar la alta impedancia del circuito que estamos tratando de medir. En lugar de una impedancia de salida de 1 M, la impedancia es ahora <0,1 :

enter image description here

por lo que los electrones deben permanecer en el circuito, y no debería haber ninguna diafonía. Sin embargo, para mi sorpresa, aunque hay una cierta mejora, ¡todavía se nota la diafonía!

$$\textbf{TEST I} ~~(R1 = R2 = 10 M):$$ enter image description here

$$\textbf{TEST II} ~~(R2 = 3.3 M < R2 = 10 M):$$ enter image description here

El canal rojo no debería "saber" que el canal azul ha aumentado su resistencia. Sin embargo, su señal cae, cuando no he hecho ningún cambio en el canal rojo - ¿Qué me estoy perdiendo en mi análisis (Por cierto, estoy usando resistencias de baja tolerancia <1%)?

0 votos

Tengo curiosidad - ¿Alguna razón para las resistencias de retroalimentación y no sólo un seguidor de voltaje?

0 votos

Mi ignorancia. Supongo que un seguidor de tensión es más sencillo.

1 votos

¡Tus opamps tienen una ganancia de 76, no ~1!

2voto

ianb Puntos 659

Lo más probable es que sea un problema relacionado con los canales analógicos que se multiplexan dentro del arduino - intente muestrear con un mayor intervalo de tiempo entre las señales rojas y azules y esto debería resolver/indicar el problema.

0 votos

Una sugerencia interesante. Le haré saber los resultados en unas horas...

0voto

Jessica Parker Puntos 11

Aunque es un post antiguo, hace poco experimenté el mismo problema con el Arduino Due tratando de leer dos canales de audio para un medidor de VU. Al poner el balance hacia un solo canal, todavía se veía una señal en la salida de ambos canales ADC. Probé un retraso considerable entre la lectura de los dos canales, pero sin suerte. Lo que parecía hacer el truco para mí, es leer cada canal dos veces y sólo utilizando la segunda conversión.

analogRead(Channel1);
ADCLeft = analogRead(Channel1);
analogRead(Channel2);
ADCRight = analogRead(Channel2);

Ahora tengo canales completamente separados al mover el deslizador de balance de izquierda a derecha y viceversa.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X