- Noções básicas de Op-Amp
- Amplificador de ganho programável funcionando
- Componentes necessários
- Diagrama esquemático
- Código Arduino para PGA
- Cálculos para amplificador de ganho programável
- Teste de Circuito Amplificador de Ganho Programável
- Prós e contras do amplificador de ganho programável
- Aprimoramento adicional
Na indústria de medição, um bloco funcional muito importante é um amplificador de ganho programável (PGA). Se você é um entusiasta da eletrônica ou um estudante universitário, provavelmente já viu um multímetro ou osciloscópio medindo tensões muito pequenas com muita precisão, porque o circuito possui um PGA integrado ao lado de um poderoso ADC que ajuda no processo de medição preciso.
Hoje em dia, o amplificador PGA de prateleira oferece um amplificador não inversor baseado em amplificador operacional com um fator de ganho programável pelo usuário. Este tipo de dispositivo tem uma impedância de entrada muito alta, ampla largura de banda e uma referência de tensão de entrada selecionável embutida no IC. Mas todos esses recursos têm um custo e, para mim, não vale a pena colocar um chip tão caro para uma aplicação genérica.
Então, para superar essas situações, eu vim com um arranjo que consiste em um Op-amp, MOSFET e Arduino, através do qual fui capaz de alterar o ganho do op-amp programaticamente. Portanto, neste tutorial, vou mostrar como construir seu próprio amplificador de ganho programável com um amplificador operacional LM358 e MOSFETS, e irei discutir alguns prós e contras do circuito ao lado dos testes.
Noções básicas de Op-Amp
Para entender o funcionamento deste circuito, é muito importante saber como funciona um amplificador operacional. Saiba mais sobre Op-amp seguindo este circuito de testador de op-amp.
Na figura acima, você pode ver um amplificador operacional. O trabalho básico de um amplificador é amplificar um sinal de entrada, junto com a amplificação, o op-amp também pode fazer várias operações como somar, diferenciar, integrar, etc. Saiba mais sobre o amplificador somador e amplificador diferencial aqui.
Op-amp tem apenas três terminais. O terminal com o sinal (+) é denominado entrada não inversora e o terminal com o sinal (-) é denominado entrada inversora. Além desses dois terminais, o terceiro terminal é o terminal de saída.
Um op-amp segue apenas duas regras
- Nenhuma corrente flui para dentro ou para fora das entradas do amplificador operacional.
- O op-amp tenta manter as entradas nos mesmos níveis de tensão.
Assim, com essas duas regras esclarecidas, podemos analisar os circuitos abaixo. Além disso, aprenda mais sobre o Op-amp examinando vários circuitos baseados no Op-amp.
Amplificador de ganho programável funcionando
A figura acima dá uma idéia básica sobre o arranjo do circuito do meu amplificador PGA bruto. Neste circuito, o op-amp é configurado como um amplificador não inversor e, como todos sabemos, com um arranjo de circuito não inversor, podemos alterar o ganho do op-amp alterando o resistor de feedback ou o resistor de entrada, como você pode ver no arranjo do circuito acima, só preciso trocar os MOSFETs um de cada vez para mudar o ganho do amplificador operacional.
Na seção de teste, eu simplesmente troquei os MOSFETs um de cada vez e comparei os valores medidos com os valores práticos, e você pode observar os resultados na seção "testando o circuito" abaixo.
Componentes necessários
- Arduino Nano - 1
- LM358 IC - 1
- Regulador LM7805 - 1
- BC548 Transistor NPN Genérico - 2
- BS170 Genérico N-channel MOSFET - 2
- Resistor 200K - 1
- Resistor 50K - 2
- Resistor 24K - 2
- Resistor de 6,8 K - 1
- Resistor 1K - 4
- Resistor 4.7K - 1
- 220R, 1% Resistor - 1
- Chave tátil genérica - 1
- LED âmbar 3 mm - 2
- Pão Tábua Genérico - 1
- Jumper Wires Genérico - 10
- Fonte de alimentação ± 12V - 1
Diagrama esquemático
Para uma demonstração do Amplificador de ganho programável, o circuito é construído em uma placa de ensaio sem solda com a ajuda do esquema; Para reduzir a indutância parasita interna e a capacitância da placa de ensaio, todos os componentes foram colocados o mais próximo possível.
E se você está se perguntando por que há um aglomerado de fios na minha placa de ensaio? deixe-me dizer a você que é para fazer uma boa conexão de aterramento, pois as conexões de aterramento internas em uma placa de ensaio são muito ruins.
Aqui, o amplificador operacional no circuito é configurado como um amplificador não inversor e a tensão de entrada do regulador de tensão 7805 é 4,99 V.
O valor medido para o resistor R6 é 6,75K e R7 é 220,8R esses dois resistores formam um divisor de tensão que é usado para gerar a tensão de teste de entrada para o amplificador operacional. Os resistores R8 e R9 são usados para limitar a corrente de base de entrada do transistor T3 e T4. Os resistores R10 e R11 são usados para limitar a velocidade de chaveamento dos MOSFETs T1 e T2, caso contrário, pode causar oscilação no circuito.
Neste blog, quero mostrar a você a razão de usar um MOSFET em vez de um BJT, daí a disposição do circuito.
Código Arduino para PGA
Aqui, o Arduino Nano é usado para controlar a base do transistor e a porta dos MOSFETs, e um multímetro é usado para mostrar os níveis de tensão porque o ADC integrado do Arduino faz um trabalho muito ruim, quando se trata de medir baixas níveis de tensão.
O código Arduino completo para este projeto é fornecido abaixo. Como este é um código Arduino muito simples, não precisamos incluir nenhuma biblioteca. Mas precisamos definir algumas constantes e pinos de entrada conforme mostrado no código.
O void setup () é o bloco funcional principal onde a operação de leitura e gravação para todas as entradas e saídas são realizadas conforme o requisito.
#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 LED_PINIDENCE_24K_PIN 7 #define BC548_WITH_50K_PIN 6 #define BUTTON_PIN 5 #define LED_PIN1 2 #define LED_PINIDENCE_INVEL2 3 int debounce_counter = 0; void setup () {pinMode (BS170_WITH_50K_PIN, OUTPUT); pinMode (BS170_WITH_24K_PIN, OUTPUT); pinMode (BC548_WITH_24K_PIN, OUTPUT); pinMode (BC548_WITH_50K_PIN, OUTPUT); pinMode (LED_PIN1, OUTPUT); pinMode (LED_PIN2, OUTPUT); pinMode (BUTTON_PIN, INPUT); } void loop () {bool val = digitalRead (BUTTON_PIN); // lê o valor de entrada if (val == LOW) {debounce_counter ++; if (debounce_counter> PRESSED_CONFIDENCE_LEVEL) {debounce_counter = 0; button_is_pressed ++; } if (button_is_pressed == 0) {digitalWrite (BS170_WITH_50K_PIN, HIGH); digitalWrite (BS170_WITH_24K_PIN, LOW);digitalWrite (BC548_WITH_24K_PIN, LOW); digitalWrite (BC548_WITH_50K_PIN, LOW); digitalWrite (LED_PIN1, LOW); digitalWrite (LED_PIN2, LOW); } if (button_is_pressed == 2) {digitalWrite (BS170_WITH_24K_PIN, HIGH); digitalWrite (BS170_WITH_50K_PIN, LOW); digitalWrite (BC548_WITH_24K_PIN, LOW); digitalWrite (BC548_WITH_50K_PIN, LOW); digitalWrite (LED_PIN1, LOW); digitalWrite (LED_PIN2, HIGH); } if (button_is_pressed == 3) {digitalWrite (BC548_WITH_24K_PIN, HIGH); digitalWrite (BC548_WITH_50K_PIN, LOW); digitalWrite (BS170_WITH_24K_PIN, LOW); digitalWrite (BS170_WITH_50K_PIN, LOW); digitalWrite (LED_PIN1, HIGH); digitalWrite (LED_PIN2, HIGH); } if (button_is_pressed == 1) {digitalWrite (BC548_WITH_50K_PIN, HIGH); digitalWrite (BS170_WITH_50K_PIN, LOW); digitalWrite (BS170_WITH_24K_PIN, LOW); digitalWrite (BC548_WITH_24K_PIN, LOW); digitalWrite (LED_PIN1, HIGH);digitalWrite (LED_PIN2, LOW); } if (button_is_pressed> = 4) {button_is_pressed = 0; }}}
Cálculos para amplificador de ganho programável
Os valores medidos para o circuito amplificador PGA são mostrados abaixo.
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! Os valores medidos do resistor são mostrados porque com os valores medidos do resistor podemos comparar de perto os valores teóricos e os valores práticos.
Agora, o cálculo da calculadora do divisor de tensão é mostrado abaixo,
A saída do divisor de tensão é 0,1564V
Calculando o ganho do amplificador não inversor para os 4 resistores
Vout quando R1 é o resistor selecionado
Vout = (1+ (199,5 / 50,5)) * 0,1564 = 0,77425V
Vout quando R2 é o resistor selecionado
Vout = (1+ (199,5 / 23,98)) * 0,1564 = 1,45755V
Vout quando R3 é o resistor selecionado
Vout = (1+ (199,5 / 23,99)) * 0,1564 = 1,45701V
Vout quando R4 é o resistor selecionado
Vout = (1+ (199,5 / 50,45)) * 0,1564 = 0,77486V
Fiz tudo isso para comparar os valores teóricos e práticos o mais próximo possível.
Com todos os cálculos feitos, podemos passar para a seção de teste.
Teste de Circuito Amplificador de Ganho Programável
A imagem acima mostra a tensão de saída quando o MOSFET T1 está ligado, portanto, a corrente está fluindo pelo resistor R1.
A imagem acima mostra a tensão de saída quando o transistor T4 está ligado, portanto, a corrente está fluindo através do resistor R4.
A imagem acima mostra a tensão de saída quando o MOSFET T2 está ligado, portanto, a corrente está fluindo através do resistor R2.
A imagem acima mostra a tensão de saída quando o transistor T3 está ligado, portanto, a corrente está fluindo através do resistor R3.
Como você pode ver no esquema , T1, T2 são MOSFETs e T3, T4 são transistores. Portanto, quando MOSFETs são usados, o erro está na faixa de 1 a 5 mV, mas quando os transistores são usados como chaves, obtemos um erro na faixa de 10 a 50 mV.
Com os resultados acima, fica claro que o MOSFET é a solução goto para este tipo de aplicação, e os erros teóricos e práticos podem ser causados devido ao erro de offset do op-amp.
Nota! Observe que adicionei dois LEDs apenas para fins de teste e você não pode encontrá-los no esquema real, ele mostra o código binário para mostrar qual pino está ativo
Prós e contras do amplificador de ganho programável
Como esse circuito é barato, fácil e simples, ele pode ser implementado em muitas aplicações diferentes.
Aqui o MOSFET é usado como uma chave para passar toda a corrente através do resistor para o aterramento, é por isso que o efeito da temperatura não é certo, e com minhas ferramentas e equipamentos de teste limitados, não fui capaz de mostrar a vocês os efeitos da variação de temperatura em o circuito.
O objetivo de usar um BJT junto com os MOSFETs é porque quero mostrar a vocês como um BJT pode ser ruim para esse tipo de aplicação.
Os valores dos resistores de feedback e dos resistores de entrada devem estar na faixa de KΩ, ou seja, com valores de resistor mais baixos, mais corrente fluirá pelo MOSFET, portanto, mais tensão cairá no MOSFET causando resultados imprevisíveis.
Aprimoramento adicional
O circuito pode ser modificado ainda mais para melhorar seu desempenho, como podemos adicionar o filtro para rejeitar ruídos de alta frequência.
Como o amp-op LM358 jelly bean é usado neste teste, os erros de deslocamento do amp-op estão desempenhando um papel importante na tensão de saída. Portanto, ele pode ser melhorado usando um amplificador instrumental em vez de um LM358.
Este circuito é feito apenas para fins de demonstração. Se você está pensando em usar este circuito em uma aplicação prática, você deve usar um amplificador operacional do tipo chopper e um resistor de 0,1 ohms de alta precisão para obter estabilidade absoluta.
Espero que tenha gostado deste artigo e aprendido algo novo com ele. Se você tiver alguma dúvida, pode perguntar nos comentários abaixo ou pode usar nossos fóruns para uma discussão detalhada.