- Conceptos básicos del amplificador operacional
- Amplificador de ganancia programable en funcionamiento
- Componentes requeridos
- Diagrama esquemático
- Código Arduino para PGA
- Cálculos para amplificador de ganancia programable
- Prueba del circuito amplificador de ganancia programable
- Pros y contras del amplificador de ganancia programable
- Mejora adicional
En la industria de la medición, un bloque funcional muy importante es un amplificador de ganancia programable (PGA). Si es un entusiasta de la electrónica o un estudiante universitario, probablemente haya visto un multímetro u osciloscopio midiendo voltajes muy pequeños de manera muy valiosa porque el circuito tiene un PGA incorporado junto con un potente ADC que ayuda con el proceso de medición preciso.
Hoy en día, el amplificador PGA estándar ofrece un amplificador no inversor basado en un amplificador operacional con un factor de ganancia programable por el usuario. Este tipo de dispositivo tiene una impedancia de entrada muy alta, un ancho de banda amplio y una referencia de voltaje de entrada seleccionable integrada en el IC. Pero todas estas características tienen un costo, y para mí, no vale la pena poner un chip tan costoso para una aplicación genérica.
Entonces, para superar estas situaciones, se me ocurrió un arreglo que consta de un amplificador operacional, MOSFET y Arduino, a través del cual pude cambiar la ganancia del amplificador operacional mediante programación. Entonces, en este tutorial, le mostraré cómo construir su propio amplificador de ganancia programable con un amplificador operacional LM358 y MOSFETS, y discutiré algunos pros y contras del circuito junto con las pruebas.
Conceptos básicos del amplificador operacional
Para comprender el funcionamiento de este circuito, es muy importante saber cómo funciona un amplificador operacional. Obtenga más información sobre el amplificador operacional siguiendo este circuito probador de amplificador operacional.
En la figura anterior, puede ver un amplificador operacional. El trabajo básico de un amplificador es amplificar una señal de entrada, junto con la amplificación, el amplificador operacional también puede realizar varias operaciones como sumar, diferenciar, integrar, etc. Obtenga más información sobre el amplificador sumador y el amplificador diferencial aquí.
El amplificador operacional tiene solo tres terminales. El terminal con el signo (+) se llama entrada no inversora y el terminal con el signo (-) se llama entrada inversora. Además de estos dos terminales, el tercer terminal es el terminal de salida.
Un amplificador operacional solo sigue dos reglas
- No fluye corriente dentro o fuera de las entradas del amplificador operacional.
- El amplificador operacional intenta mantener las entradas a los mismos niveles de voltaje.
Entonces, con esas dos reglas aclaradas, podemos analizar los circuitos a continuación. Además, aprenda más sobre el amplificador operacional pasando por varios circuitos basados en amplificador operacional.
Amplificador de ganancia programable en funcionamiento
La figura anterior le da una idea básica sobre la disposición del circuito de mi amplificador PGA crud. En este circuito, el amplificador operacional está configurado como un amplificador no inversor, y como todos sabemos con una disposición de circuito no inversor, podemos cambiar la ganancia del amplificador operacional cambiando la resistencia de retroalimentación o la resistencia de entrada, como puede ver en la disposición del circuito anterior, solo necesito cambiar los MOSFET uno a la vez para cambiar la ganancia del amplificador operacional.
En la sección de prueba, hice exactamente que cambié los MOSFET uno a la vez y comparé los valores medidos con los valores prácticos, y puede observar los resultados en la sección "probar el circuito" a continuación.
Componentes requeridos
- Arduino Nano - 1
- LM358 IC - 1
- Regulador LM7805 - 1
- Transistor NPN genérico BC548 - 2
- BS170 MOSFET genérico de canal N - 2
- Resistencia 200K - 1
- Resistencia 50K - 2
- Resistencia 24K - 2
- Resistencia de 6.8K - 1
- Resistencia 1K - 4
- Resistencia 4.7K - 1
- 220R, 1% de resistencia - 1
- Interruptor táctil genérico - 1
- LED ámbar 3 mm - 2
- Tabla de pan genérica - 1
- Cables de puente genéricos - 10
- Fuente de alimentación ± 12V - 1
Diagrama esquemático
Para una demostración del amplificador de ganancia programable, el circuito se construye en una placa de prueba sin soldadura con la ayuda del esquema; Para reducir la inductancia parásita interna y la capacitancia de la placa de pruebas, todos los componentes se han colocado lo más cerca posible.
¿Y si se pregunta por qué hay un grupo de cables en mi tablero? déjeme decirle que es para hacer una buena conexión a tierra, ya que las conexiones a tierra internas en una placa de pruebas son muy malas.
Aquí, el amplificador operacional en el circuito está configurado como un amplificador no inversor y el voltaje de entrada del regulador de voltaje 7805 es de 4,99 V.
El valor medido para la resistencia R6 es 6.75K y R7 es 220.8R. Estas dos resistencias forman un divisor de voltaje que se usa para generar el voltaje de prueba de entrada para el amplificador operacional. Las resistencias R8 y R9 se utilizan para limitar la corriente base de entrada del transistor T3 y T4. Las resistencias R10 y R11 se utilizan para limitar la velocidad de conmutación de los MOSFET T1 y T2, de lo contrario, puede causar oscilación en el circuito.
En este blog, quiero mostrarte la razón para usar un MOSFET en lugar de un BJT, de ahí la disposición del circuito.
Código Arduino para PGA
Aquí se usa Arduino Nano para controlar la base del transistor y la puerta de los MOSFET, y se usa un multímetro para mostrar los niveles de voltaje porque el ADC incorporado del Arduino hace un trabajo muy pobre, cuando se trata de medir bajo niveles de voltaje.
El código completo de Arduino para este proyecto se proporciona a continuación. Como se trata de un código Arduino muy simple, no es necesario que incluya ninguna biblioteca. Pero necesitamos definir algunas constantes y pines de entrada como se muestra en el código.
La configuración vacía () es el bloque funcional principal donde se realizan operaciones de lectura y escritura para todas las entradas y salidas según los requisitos.
#define BS170_WITH_50K_PIN 9 #define BS170_WITH_24K_PIN 8 #define BC548_WITH_24K_PIN 7 #define BC548_WITH_50K_PIN 6 #define BUTTON_PIN 5 #define LED_PIN1 2 #define_LEED_PIN_5000; int debounce_counter = 0; configuración vacía () {pinMode (BS170_WITH_50K_PIN, SALIDA); pinMode (BS170_WITH_24K_PIN, SALIDA); pinMode (BC548_WITH_24K_PIN, SALIDA); pinMode (BC548_WITH_50K_PIN, SALIDA); pinMode (LED_PIN1, SALIDA); pinMode (LED_PIN2, SALIDA); pinMode (BUTTON_PIN, INPUT); } bucle vacío () {bool val = digitalRead (BUTTON_PIN); // leer el valor de entrada if (val == LOW) {debounce_counter ++; if (debounce_counter> PRESSED_CONFIDENCE_LEVEL) {debounce_counter = 0; button_is_pressed ++; } si (botón_está_primido == 0) {escritura digital (BS170_WITH_50K_PIN, HIGH); digitalWrite (BS170_WITH_24K_PIN, BAJO);digitalWrite (BC548_WITH_24K_PIN, LOW); digitalWrite (BC548_WITH_50K_PIN, BAJO); digitalWrite (LED_PIN1, BAJO); digitalWrite (LED_PIN2, BAJO); } si (botón_está_primido == 2) {escritura digital (BS170_WITH_24K_PIN, HIGH); digitalWrite (BS170_WITH_50K_PIN, BAJO); digitalWrite (BC548_WITH_24K_PIN, LOW); digitalWrite (BC548_WITH_50K_PIN, BAJO); digitalWrite (LED_PIN1, BAJO); escritura digital (LED_PIN2, ALTA); } if (button_is_pressed == 3) {digitalWrite (BC548_WITH_24K_PIN, HIGH); digitalWrite (BC548_WITH_50K_PIN, BAJO); digitalWrite (BS170_WITH_24K_PIN, BAJO); digitalWrite (BS170_WITH_50K_PIN, BAJO); escritura digital (LED_PIN1, ALTO); escritura digital (LED_PIN2, ALTA); } if (button_is_pressed == 1) {digitalWrite (BC548_WITH_50K_PIN, HIGH); digitalWrite (BS170_WITH_50K_PIN, BAJO); digitalWrite (BS170_WITH_24K_PIN, BAJO); digitalWrite (BC548_WITH_24K_PIN, LOW); escritura digital (LED_PIN1, ALTO);digitalWrite (LED_PIN2, BAJO); } si (botón_está_primido> = 4) {botón_is_primido = 0; }}}
Cálculos para amplificador de ganancia programable
Los valores medidos para el circuito amplificador PGA se muestran a continuación.
Vin = 4,99 V R7 = 220,8 Ω R6 = 6,82 KΩ R5 = 199,5 K R4 = 50,45 K R3 = 23,99 K R2 = 23,98 K R1 = 50,5 K
¡Nota! Los valores medidos de la resistencia se muestran porque con los valores medidos de la resistencia podemos comparar estrechamente los valores teóricos y prácticos.
Ahora el cálculo de la calculadora del divisor de voltaje se muestra a continuación,
La salida del divisor de voltaje es 0.1564V
Cálculo de la ganancia del amplificador no inversor para las 4 resistencias
Vout cuando R1 es la resistencia seleccionada
Vout = (1+ (199.5 / 50.5)) * 0.1564 = 0.77425V
Vout cuando R2 es la resistencia seleccionada
Vout = (1+ (199.5 / 23.98)) * 0.1564 = 1.45755V
Vout cuando R3 es la resistencia seleccionada
Vout = (1+ (199.5 / 23.99)) * 0.1564 = 1.45701V
Vout cuando R4 es la resistencia seleccionada
Vout = (1+ (199.5 / 50.45)) * 0.1564 = 0.77486V
Hice todo eso para comparar los valores teóricos y prácticos lo más cerca posible.
Con todos los cálculos hechos, podemos pasar a la sección de pruebas.
Prueba del circuito amplificador de ganancia programable
La imagen de arriba muestra el voltaje de salida cuando el MOSFET T1 está encendido, por lo tanto, la corriente fluye a través de la Resistencia R1.
La imagen de arriba muestra el voltaje de salida cuando el transistor T4 está encendido, por lo tanto, la corriente fluye a través de la resistencia R4.
La imagen de arriba muestra el voltaje de salida cuando el MOSFET T2 está encendido, por lo tanto, la corriente fluye a través de la Resistencia R2.
La imagen de arriba muestra el voltaje de salida cuando el transistor T3 está encendido, por lo tanto, la corriente fluye a través del resistor R3.
Como puede ver en el esquema , T1, T2 son MOSFET y T3, T4 son transistores. Entonces, cuando se usan MOSFET, el error está en el rango de 1 a 5 mV, pero cuando se usan transistores como interruptores, obtenemos un error en el rango de 10 a 50 mV.
Con los resultados anteriores, está claro que el MOSFET es la solución de goto para este tipo de aplicación, y los errores teóricos y prácticos pueden deberse al error de compensación del amplificador operacional.
¡Nota! Tenga en cuenta que he agregado dos LED solo para probar y no puede encontrarlos en el esquema real, muestra un código binario para mostrar qué pin está activo
Pros y contras del amplificador de ganancia programable
Como este circuito es económico, fácil y simple, se puede implementar en muchas aplicaciones diferentes.
Aquí, el MOSFET se usa como un interruptor para pasar toda la corriente a través de la resistencia a tierra, por eso el efecto de la temperatura no es seguro, y con mis herramientas y equipos de prueba limitados, no pude mostrarle los efectos de la temperatura variable en el circuito.
El objetivo de usar un BJT junto con MOSFET es porque quiero mostrarles lo pobre que puede ser un BJT para este tipo de aplicación.
Los valores de las resistencias de retroalimentación y las resistencias de entrada deben estar en el rango de KΩ, esto se debe a que con valores de resistencia más bajos, fluirá más corriente a través del MOSFET, por lo que caerá más voltaje a través del MOSFET causando resultados impredecibles.
Mejora adicional
El circuito se puede modificar aún más para mejorar su rendimiento, al igual que podemos agregar el filtro para rechazar los ruidos de alta frecuencia.
Como en esta prueba se usa el amplificador operacional Jelly Bean LM358, los errores de compensación del amplificador operacional juegan un papel importante en el voltaje de salida. Por lo tanto, se puede mejorar aún más utilizando un amplificador instrumental en lugar de un LM358.
Este circuito está hecho solo con fines de demostración. Si está pensando en usar este circuito en una aplicación práctica, debe usar un amplificador operacional tipo chopper y una resistencia de 0.1 ohmios de alta precisión para lograr una estabilidad absoluta.
Espero que les haya gustado este artículo y hayan aprendido algo nuevo de él. Si tiene alguna duda, puede preguntar en los comentarios a continuación o puede utilizar nuestros foros para una discusión detallada.