¿Cómo puedo hacer un atenuador simple controlado por voltaje?

3

Después de descubrir lo horrible que es la ondulación de CA en algunos de mis adaptadores de pared de 5VDC, decidí hacer un programa Arduino para calcular el componente de RMS AC y el componente de CC de un adaptador con diferentes cargas de corriente.

Mi problema actual es que el Arduino (y sus ADC y DAC) se ejecutan en 5V, por lo que 0-5V es su rango de entrada y salida analógica. Muchos adaptadores "5V" producen algo más que eso (y también quiero poder probar adaptadores de 9V y 12V). Entonces, quiero una forma para que el Arduino atenúe la entrada hasta algo dentro del rango de 0-5 V, y la única forma en que puedo hacer esto es usar la salida de voltaje analógica del Arduino (que, me doy cuenta, es solo PWM digital). Por lo tanto, necesito un atenuador controlado por voltaje.

Los requisitos de la aplicación son:

  1. Debe ser capaz de atenuar la entrada desde una ganancia de 1 hasta una ganancia de alrededor de 0.25 (para obtener, digamos, una entrada de 15V dentro de el rango ADC 0-5V)
  2. El rango de control voltajes también debe estar dentro de 0-5V. Además, el rango no puede ser demasiado pequeño, ya que El Arduino solo puede seleccionar 256 valores entre 0-5V. En otras palabras, No puedo tener una tensión de control de 2.000 V, dame una ganancia de 1 y un voltaje de control de 2.001V me da una ganancia de 0.25, ya que Arduino no tiene ese tipo de control sobre su salida analógica.
  3. Cualquier atenuación debe afectar las partes de CA y CC por igual, o de lo contrario, mis relaciones ac_component / dc_component serán erróneas.
  4. Me gustaría mucho no tener que suministrar rieles de voltaje adicionales. Por ejemplo, no quiero tener que suministrar un + 12V y -12V para un cierto op-amp. Si todo se puede hacer con un riel de 5V, eso es optimo O, + 12V probablemente también estará bien.
  5. La atenuación no necesita ser lineal con el voltaje. Todo lo que busco es poder calcular (RMS ac_component / dc_component), y esas relaciones se mantendrán iguales sin que yo sepa la atención exacta.
  6. Entiendo que los JFET (ver los esquemas a continuación) no son tan adecuados para la operación de CC por problemas térmicos o algo así. La deriva gradual en la atenuación está bien. Mi programa Arduino solo toma muestras de los voltajes del adaptador de pared durante aproximadamente 1/10 de segundo. Mientras la ganancia no cambie apreciablemente durante ese lapso de tiempo, las cosas están bien.

Lo primero que probé fue esta muestra que encontré. Hizo lo que quería, pero está invirtiendo, por lo que la salida termina siendo negativa (y fuera del rango de 0-5 V del Arduino).

simular este circuito : esquema creado usando CircuitLab

Entonces, me di cuenta de que el amplificador operacional probablemente estaba reduciendo la impedancia de salida de lo que realmente es solo un divisor de voltaje con un JFET en lugar de uno de los resistores, y no lo necesitaba porque el Arduino tiene una impedancia de entrada mucho mayor que las fuentes de alimentación que probaré, así que intenté esto ...

simular este circuito

pero estoy consiguiendo algo extraño. Parece que el componente de CA se está viendo afectado por el voltaje de entrada del control de ganancia, pero no por el componente de CC (ver requisito 3). Claramente no entiendo los FET como debería. ¿Alguien puede sugerir algunas soluciones a este enfoque o sugerir una alternativa?

    
pregunta Jemenake

3 respuestas

2

Usted quiere medir voltajes de CC hasta 15 voltios y estos podrían tener 2 voltios de ondulación superpuestos para una suposición media. Su voltaje de CC más pequeño podría ser 3v y cree que su precisión de medición puede verse afectada indebidamente en el extremo inferior, ¿no?

No se preocupe por eso: haga su entrada adecuada para picos máximos de 20 voltios y encontrará que con un ADC de diez bits estará bien. Diez bits significa una resolución de 20 ish mili voltios y con un poco de ruido superpuesto y varias muestras promediadas, logrará fácilmente una precisión decente. Tomar dos muestras y luego promediar te da un número de 11 bits y esto será preciso a 11 bits con un ruido de CA fuera de banda en la parte superior.

Intente buscar el dithering: es una técnica bien formulada que mejora la resolución del audio de un CD de 16 bits para que suene menos granulada en los pasajes de la música. Solo necesitas un poco de ruido fuera de banda para que funcione.

    
respondido por el Andy aka
0

Su solución más simple es simplemente usar un divisor de resistencia para escalar un voltaje máximo (12 V) hasta 4,5 V, es decir, una atenuación fija. Como Andy_aka señala que tienes un ADC de 10 bits allí. Esta será una escala lineal y si le preocupa el ruido, puede agregar o promediar las diversas muestras. Asegúrese de no cargar las entradas demasiado (por lo tanto, 100k ohmios). Si necesita precisión, use varias versiones de la misma resistencia del mismo lote (o compre resistencias combinadas)

simular este circuito : esquema creado usando CircuitLab

Las razones por las que obtuviste un resultado "extraño" en tu circuito JFET (segunda imagen) es que creaste un amplificador de puerta común que tiene una ganancia diferente para el componente de CA (señal pequeña) versus el componente de CC de la señal .

    
respondido por el placeholder
0

Con lo que terminé yendo es un poco similar a la propuesta de rawbrawb de un divisor de voltaje (y también lo que Andy aka mencionó). Voy a usar un divisor de voltaje con múltiples etapas. Debido a que el Arduino tiene un puñado de entradas analógicas, solo puedo muestrear varias divisiones y luego seleccionar la que me dé los valores más altos sin exceder el Vref del ADC ...

simular este circuito : esquema creado usando CircuitLab

Además, por lo que estoy leyendo, los ADC de Arduino pueden, a veces, tener impedancias de entrada tan bajas como 10k, por lo que creo que no me atrevo a ir mucho más alto que 1k en las etapas del divisor de voltaje. Esto no debería ser un gran problema cuando lo uso para probar fuentes de alimentación, ya que mi sumidero actual va a consumir hasta 2A desde fuentes de 5V.

    
respondido por el Jemenake

Lea otras preguntas en las etiquetas