Nos dias de hoje, estamos cercados por diversos aparelhos eletrônicos que possuem circuitos inteligentes. E boa parte destes dispositivos usam corrente contínua. Isso implica que a tensão que chega em nossas casas tem que ser convertida para alimentá-los. Mas e quando precisamos fazer o contrário? É aí que entra o inversor de tensão. 

Atualmente o inversor de tensão tem tido cada vez mais importância nos circuitos dos painéis solares. Isso, porque os painéis solares geram tensão contínua, e, para alimentar sua residência, é necessário converter esta tensão em alternada.

O que é

O inversor de tensão é um dispositivo que serve para converter uma tensão contínua em alternada. Os inversores mais antigos recebem em sua entrada uma tensão constante e geram um sinal de onda quadrada alternado. Isto é, ora a corrente flui para um lado, ora para outro.

Porém, os mais recentes já utilizam algumas técnicas para gerar uma senoide na saída. E se essa senoide tiver uma tensão RMS de 127V e oscilar 60 vezes por segundo, ela será igual ao sinal recebido nas casas brasileiras. Pois o sinal que recebemos em casa, chamado fase, tem tensão RMS de 127V e uma frequência de 60Hz.

Funcionamento do inversor de tensão

Ideia

Para explicar a lógica do inversor de tensão, vou considerar o seguinte circuito:

Imagine que, neste circuito, primeiro eu ligo a chave 1 e a chave 4. O que teremos na carga é uma tensão constante. E, se ligarmos apenas o outro par de chaves (S2 e S3), também teremos uma tensão constante.

Entretanto, no primeiro caso a corrente flui da esquerda para a direita da carga, e no segundo da direita para a esquerda da carga. Além da mudança no sentido da corrente, a tensão também será positiva em um momento e negativa no outro (o sentido depende da sua escolha de referencial).

Ou seja, se ficássemos comutando as chaves entre (S1 e S4) e (S2 e S3) teríamos, em cima da carga, uma tensão alternada. Isso porque a tensão mudaria entre +Vcc e -Vcc.

Teoricamente o circuito funciona bem, mas não tem como ficar trocando as chaves manualmente 60 vezes por segundo (60Hz). Para isto, temos que recorrer a algum tipo de componente eletrônico para substituir as chaves, que é o que veremos abaixo.

Comutação automática

Para a nossa sorte, existe um componente perfeito para atuar como chave eletrônica do inversor de tensão, que é o transistor.

Nesse caso, usa-se o MOSFET para substituir as chaves, já que ele é capaz de dissipar bem mais potência quando comparado a outros transistores. Seguindo esta lógica, o circuito das chaves deve ser o seguinte:

Inversor de tensão com Mosfets

Recomendo ver esta simulação para entender o funcionamento do MOSFET.

Agora, basta ligar um circuito de controle nos GATEs dos MOSFETs para gerar a tensão alternada em cima da carga. O MOSFET tipo P será acionado com um sinal de nível baixo em seu GATE e o tipo N com um sinal de nível alto em seu GATE.

O exemplo mais simples de circuito de controle é um que fica apenas comutando entre os MOSFETs (Q1, Q4) e (Q2, Q3). Este circuito gerará uma onda quadrada alternada na carga.

Agora, para gerar um sinal alternado mais complexo, é possível recorrer à um circuito de controle que utilize PWM para controlar os GATEs. Desta forma, é possível gerar uma onda semelhante à senoidal, porém com degraus dependendo da resolução do PWM (parecida com a imagem abaixo).

sinal analógico conversão pra digital

Existem outras técnicas para criar o circuito de controle e não pretendo descrevê-las ou explicá-las. Mas, no tópico abaixo, mostrarei um exemplo utilizando o Arduino.

Inversor de tensão usando o Arduino

Com o propósito de teste, vou mostrar como criar dois inversores de tensão usando um Arduino:

  • O primeiro será para gerar uma onda quadrada de mesma amplitude da fonte de entrada.
  • O segundo será para gerar uma onda quadrada de amplitude variável.
  • Para outros tipos de sinais (como o senoidal), vou mostrar um direcionamento.

Inversor de tensão simples com amplitude máxima

Circuito

A essência do circuito é a mesma do mostrado no tópico anterior. Neste caso, Vcc é o 5V do Arduino e o GND é o GND do Arduino. Já no caso dos GATEs dos MOSFETs, eles foram ligados nos pinos digitais 2 e 3. Veja o circuito abaixo:

Obs.: A carga está sendo simbolizada por um resistor de 1kΩ.

Circuito do Arduino com inversor de tensão

Repare que o pino D2 está ligado nos MOSFETs Q1 e Q3. Desta forma, quando D2 estiver em nível alto, Q3 conduz e Q1 não (já que são de tipos diferentes). E o mesmo é aplicável ao pino D3. Ou seja, utilizando apenas 2 pinos, é possível controlar todos os MOSFETs.

Por exemplo, definindo D2 em nível baixo e D3 em nível alto: Q1 e Q4 conduzem, e Q2 e Q3 ficam “desabilitados”. Portanto, a corrente irá fluir por Q1, passar pela carga (R4) e depois por Q4. A lógica contrária é aplicável quando D2 fica em nível alto e D3 em nível baixo. E é isto que faremos no código.

Código completo

O procedimento do código é o mesmo explicado acima. E, para alterar a frequência do sinal gerado, basta alterar a linha 5 do código. O valor máximo da frequência para este código é cerca de 500Hz.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#define m13     2
#define m24     3

// Frequência do sinal de saída
#define F       60

// Delay em milissegundos calculado automaticamente (metade do período)
#define DELAY 1000/(2*F)

void setup()
{
  pinMode(m13, OUTPUT);
  pinMode(m24, OUTPUT);
}

void loop()
{
  digitalWrite(m13, LOW);
  digitalWrite(m24, HIGH);
  delay(DELAY);
  digitalWrite(m13, HIGH);
  digitalWrite(m24, LOW);
  delay(DELAY);
}

Resultado

Resolvi testar o circuito simulando na plataforma Tinkercad. O teste foi feito com uma frequência de 60Hz e resultado está mostrado abaixo:

Inversor de Tensão com Arduino no Tinkercad

O sinal de saída foi de acordo com o esperado, já que o osciloscópio indicou que a tensão alternou entre negativa e positiva (entre cerca de -5V e +5V). Além disto, a frequência, aparentemente, também foi próxima do desejado (período = 3,2 quadrados * 5ms por quadrado = 16ms ~= 60Hz).

Cheguei a medir a tensão em cima da carga com um multímetro para um sinal de baixa frequência e ele marcou 4,99V. Teoricamente deveria ser 5,0V, mas esta diferença é devida às quedas de tensão nos MOSFETs. Este é um ponto que não tem muito como fugir, mas 0,01V de diferença é muito pouco.

Inversor de tensão com amplitude variável

Circuito

Para alterar a amplitude do sinal de saída, os sinais de controle serão pulsados com sua largura de pulso modulada (PWM). Sendo assim, não é possível mais utilizar os pinos 2 e 3, já que apenas o pino 3 no Arduino UNO tem suporte à PWM.

Então, é necessário alterar o pino 2 para algum outro com PWM. Resolvi mudar os 2 e os conectei nos pinos D5 e D6. Veja o circuito final abaixo:

Inversor de tensão PWM com Arduino

Código completo

Além de poder mudar a frequência assim como antes, agora é possível alterar a amplitude positiva e a negativa do sinal de saída. E isto é feito nas linhas 7 e 8.

O fato do sinal ser negativo ou positivo depende do seu referencial. No meu caso, o positivo é o lado dos MOSFETs Q2 e Q4.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#define m13     5
#define m24     6

// Frequência do sinal de saída
#define F       60
// Amplitudes em Volts (não precisa colocar um - na amplitude negativa)
#define A_POS   2.8
#define A_NEG   3.6

// Delay em milissegundos calculado automaticamente (metade do período)
#define DELAY   1000/(2*F)

// Conversão das amplitudes para o PWM (calculado automaticamente)
#define PWM_POS (A_POS*255.0)/5.0
#define PWM_NEG (A_NEG*255.0)/5.0

void setup()
{
  pinMode(m13, OUTPUT);
  pinMode(m24, OUTPUT);
  Serial.begin(9600);
  Serial.println(A_NEG);
}

void loop()
{
  // Gera a parcela de sinal positivo
  // Fixa o pino 6 em nível baixo (Q2 = habilitado, Q4 = desabilitado)
  // Faz o PWM no pino 5 mudando a intensidade de "condução" do MOSFET 3
  // e por consequência do MOSFET 1 também, mas ele não faz diferença.
  analogWrite(m13, PWM_POS);
  digitalWrite(m24, LOW);
 
  delay(DELAY);
 
  // Gera a parcela de sinal negativo
  // Fixa o pino 5 em nível baixo (Q1 = habilitado, Q3 = desabilitado)
  // Faz o PWM no pino 6 mudando a intensidade de "condução" do MOSFET 4
  // e por consequência do MOSFET 2 também, mas ele não faz diferença.
  digitalWrite(m13, LOW);
  analogWrite(m24, PWM_NEG);
 
  delay(DELAY);
}

Resultado

Novamente, simulei o circuito no Tinkercad. Minha montagem pode ser acessada por aqui. O teste foi feito com uma frequência de 60Hz, amplitude positiva de 2,8V e amplitude negativa de 3,6V. O resultado está mostrado abaixo:

Inversor de Tensão com Arduino e PWM no Tinkercad

Aparentemente o sinal de saída possui as mesmas amplitudes do caso anterior (-5V e +5V). Mas isto é apenas impressão, pois, na realidade, a saída está “ligando e desligando” rapidamente conforme o sinal do PWM (exemplo abaixo).

pwm gráfico saída 1/4 ou 25%

Por conta desta rápida comutação, o valor MÉDIO da amplitude será igual ao valor estipulado no código. Para comprovar este ponto, diminui a frequência do sinal de saída e medi a tensão com um multímetro (que mede valor MÉDIO de tensão). Se a frequência do sinal for elevada, o multímetro não será capaz de ler o valor de forma adequada. Veja o resultado adiante:

Sinal de saída do inversor de tensão com PWM

Para a parcela positiva do sinal, a amplitude foi de 2,76V ficando 1,4% distante do valor desejado. Para a parcela negativa, esta diferença foi de 1,1%. Talvez seja possível diminuir esta diferença melhorando a conversão da tensão em valor de PWM. Dependendo do nível de exatidão desejado, é melhor seguir outra abordagem.

Inversor de tensão gerando outros sinais (senoidal)

Para gerar outros tipos de sinais além da onda quadrada, é possível recorrer também ao PWM. Mas, abordar este assunto foge do escopo deste post.

Além do mais, o site já possui alguns conteúdos a respeito mostrando como gerar outros tipos de sinais:

Aplicações do inversor de tensão

Como dito anteriormente, o inversor de tensão pode ser usado em:

  • Circuitos de painéis solares
    • A tensão gerada por um painel solar é armazenada em uma bateria. E essa bateria precisa alimentar uma residência, por exemplo. Para isso, converte-se a tensão da bateria para CA e conecta-se ela na rede de energia da casa.
  • No-break
    • O no-break possui uma bateria que mantem a energia durante um tempo caso aconteça algum apagão. E, para que essa bateria continue alimentando seus aparelhos, é necessário usar um inversor.
  • Circuito para uma bateria comandar o motor de um carro elétrico.
  • Demais casos onde seja necessária a conversão CC -> CA.

Gerando sinal alternado com Arduino

Gerando sinal alternado com MCP4725