6 votos

Escalado y offset ADC combinados con rangos variables de tensión de entrada

Estoy tratando de crear un circuito que me permita escalar y compensar un voltaje (ya sea AC o DC) dentro del rango del Arduino ADC.

El voltaje podría ser cualquiera entre + y - 250V, pero también necesito tener una buena sensibilidad en rangos de voltaje más bajos.

Para ello estoy estudiando un circuito que permita variar el rango de tensión que espera que tenga la entrada y amplificarlo/atenuarlo en consecuencia. Cómo voy a tomar la decisión y el establecimiento de las diferentes ganancias es para otro tema por ahora. Sólo estoy interesado en la escala y la compensación en este momento.

Hasta ahora se me ha ocurrido este circuito:

enter image description here

Que parece hacer justo lo que quiero para el rango de +/- 250V. No se que tan "seguro" es este circuito, y si estoy poniendo en peligro alguno de los componentes con los 250V o no. Los gráficos en la parte inferior son (de izquierda a derecha) la tensión de entrada, el consumo de energía de la resistencia 10M inferior, la tensión a través de la resistencia 100M (que está simulando la entrada ADC Arduino) y el consumo de energía de la resistencia 10M superior.

Ahora, si reduzco la tensión de entrada a sólo +/- 2,5V y ajusto la resistencia de realimentación del amplificador óptico en consecuencia, por alguna razón la tensión de offset que el amplificador óptico está añadiendo salta hacia arriba. No sé con certeza si esto es culpa del simulador que estoy utilizando, o si es realmente lo que va a pasar, ya que todavía no he breadboarded este circuito (supongo que es la siguiente etapa).

Esta es la salida de la versión de 2,5 V:

enter image description here

Se puede ver cómo el desplazamiento ha saltado y la salida está recortando masivamente.

Si dejo caer la resistencia inferior de 10K al divisor de voltaje de compensación de tierra virtual a sólo 3,3K se compensa, pero eso no está bien - me gustaría variar sólo la resistencia.

El op-amp es (será) uno de E/S de 5V de alimentación única rail-to-rail.

Los dos diodos son para proteger la entrada del op-amp contra sobretensiones - no sé si este circuito los necesita estrictamente, pero supongo que no hace daño tenerlos ahí.

Además, no sé si los valores de las resistencias son los que quiero; los elegí para reducir el consumo y aumentar la impedancia. No quiero que el impacto de la respuesta de frecuencia del circuito más de lo que puedo ayudar - la forma de onda de entrada podría ser cualquier cosa, desde DC hasta alrededor de 500KHz o así, y necesito que la reproducción en el extremo ADC tan fielmente como pueda. (Sé que el Arduino sólo puede realmente muestra a velocidades más bajas que eso, pero el Arduino es sólo para experimentar - el sistema final utilizará un dsPIC con 1.1Msps ADC).

Entonces, ¿qué puedo hacer para A) obtener un offset más estable, B) permitir la variación de la sensibilidad de entrada sin dañar el op-amp o el ADC, y C) hacer que el circuito sea seguro para conectarlo, por ejemplo, a una red eléctrica europea?

6voto

RelaXNow Puntos 1164

Varios comentarios:

  1. Añada designadores de componentes a su esquema. De lo contrario, es difícil hablar del circuito.

  2. Parece que estás un poco confundido acerca de los divisores de resistencias. Tienes dos resistencias en la entrada, pero sólo una hace algo. La resistencia a tierra es sólo una carga en la entrada, pero por lo demás no tiene ninguna relación con el circuito. Parece como si las dos resistencias de entrada (los designadores de componentes ayudarían definitivamente) fueran un divisor que no se conectó bien.

  3. Sí, puedes usar opamps para ganancias por debajo de 1, pero también podrías usar divisores de resistencias en su lugar. También ten en cuenta que en el mejor de los casos los opamps están especificados como estables para magnitudes de ganancia unidad, pero no por debajo. Tendrías que añadir tu propia compensación para eso.

  4. Se pueden ajustar tres resistencias, una desde la tensión de entrada, otra a tierra y otra a la alimentación, de forma que el rango de tensión de entrada se corresponda razonablemente bien con el rango 0-5V A/D sin ninguna parte activa. A continuación, puede utilizar el amplificador óptico como un tampón de tensión porque la salida del divisor de resistencias puede no tener una impedancia suficientemente baja.

  5. En lugar de cambiar las ganancias, yo sólo tendría algunas configuraciones de ganancia diferentes conduciendo diferentes pines A/D. Siempre y cuando los voltajes estén correctamente recortados, no les hará daño estar fuera de rango. La señal completa de 220V puede estar fuera de rango para la entrada A/D de alta sensibilidad, así que ignórala y sólo usa la lectura de baja sensibilidad. Cuando el nivel de la señal es bajo, la entrada de alta sensibilidad no será recortada, así que puedes usarla. Nada tiene que cambiar excepto en el firmware, que decide qué entrada utilizar para la magnitud particular de la señal de entrada.

  6. 500 kHz es mucho para las resistencias de alto valor que muestras. Deberían funcionar a 50 Hz, pero a una frecuencia 1000 veces superior la capacidad parásita será significativa en comparación con esas resistencias.

Añadido:

Si el software que utiliza no permite designadores de componentes, utilice algo que sí lo permita. Al menos, utilízalo cuando dibujes el esquema para que lo vean los demás. De todas formas, los simuladores están sobrevalorados. Tienen su utilidad, pero con demasiada frecuencia parecen hacer olvidar al usuario que tiene cerebro propio. Para un circuito trivial como el tuyo, llevaría más tiempo introducirlo en un simulador que simplemente pensarlo.

Puedes hacer muchas cosas con un divisor de tres resistencias como he mencionado antes:

Esto no siempre puede llenar exactamente el rango de salida 0-Vdd con la señal de entrada. Pero incluso cuando no puede, suele haber una solución suficientemente buena. Por lo general, cuanto más se necesita atenuar, más fácil es conseguir la salida en el rango deseado.

Para analizar este circuito, observe que por sí solos R2 y R3 forman un divisor de tensión de Vdd. Esto puede ser pensado como un voltaje entre Vdd y tierra con una impedancia específica (ver Thevanin):

Donde R4 = R2 // R3. Como puedes ver tenemos un simple divisor de tensión de dos resistencias. La ganancia del divisor es R4/(R1+R4) y la impedancia de salida es R1//R4. De matemáticas de 7 º grado sabemos que lo que este circuito hace a la tensión de entrada puede ser descrito por:

Vout = Vin(M) + B

Puedes encontrar M y B fácilmente a partir de la ecuación anterior desde dos puntos diferentes cualesquiera. En tu caso, Vdd = 5V, por lo que quieres que la salida sea simétrica alrededor de la mitad de eso, o 2,5V. Así que en Vin = 0 desea Vout = 2,5. Otros dos puntos conocidos obvios son los picos de la forma de onda de entrada. Vamos a elegir el negativo, por lo que en Vin = 250 Vout = 0. Ahora M y B se puede resolver fácilmente.

Si quieres encontrar una solución exacta, puedes escribir las ecuaciones para M y B en términos de R1, R4 y V1. Mientras V1 sea mayor que 0 y menor que Vdd, la solución exacta es posible. Del segundo esquema simplificado, debería ser obvio que:

M = R4/(R1 + R4)
B = V1 * R1 / (R1 + R4)

Obsérvese que este sistema está poco restringido, ya que hay 3 incógnitas y sólo 2 ecuaciones. El grado de libertad extra puede expresarse como la impedancia de salida final de Vout, que es R1//R4.

Aquí tienes suficiente para escribir todas las ecuaciones y resolverlas. Eso ya no es electrónica sino aritmética de primaria, así que es tu trabajo. En su lugar voy a tomar un hack menos exacta pero más intuitiva en él aquí.

Digamos que quieres que la impedancia de salida no supere los 10 kΩ. Sabemos que la atenuación será alta, por lo que R1 será significativamente mayor que R4. Para simplificar, vamos a hacer simplemente R4 = 10 kΩ. Eso hará que la impedancia de salida un poco menos de 10 kΩ. Tienes un rango de entrada de 500V y quieres un rango de salida de 5V, por lo que la ganancia del divisor debe ser 1/100. De nuevo para simplificar las cosas, haremos que R1 = 100*R4 = 1MΩ. Eso en realidad resulta en una ganancia de 1/101, pero un poco de margen es una buena idea y tendrías que conseguir resistencias del 1% tal y como está para garantizar que la ganancia no es más de 1/100. Hasta ahora tenemos:

R1 = 1 MΩ
R4 = 10 kΩ

Con esta relación de atenuación tan alta, B es prácticamente igual a V1, así que hagamos que V1 = 2,5V. Ahora todavía tenemos que obtener R2 y R3 de R4. A partir de los valores anteriores, cada uno debe ser 20 kΩ. Sin embargo, estamos haciendo algunas aproximaciones y es bueno para permitir un poco de slop de todos modos, así que me gustaría empezar con el siguiente valor más bajo común de 18 kΩ.

Ahora tienes que enchufar todo eso y calcular la tensión de salida en los picos de la tensión de entrada, teniendo en cuenta las imprecisiones en las resistencias. Te lo dejo como ejercicio, pero los valores anteriores son lo suficientemente buenos o bastante cercanos para un punto de partida.

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