Compreendendo o design do circuito
Se você não quiser ler toda a explicação, pode assistir a este vídeo:

Agora vamos ver o diagrama de circuitos abaixo e aprender como isso está realmente funcionando. Vemos as seguintes partes principais do circuito:

Conselho de Arduino - Este é o nosso cérebro. Ele fornece pulsos SPWM que decidem como nosso circuito será executado.
ICS IR2110 MOSFET ICS (IC1 e IC2) -Esses dispositivos pegam os sinais SPWM padrão do Arduino e os tornam compatíveis para alternar os 4-canais n-Bridge MOSFETs corretamente, usando o método de bootstrapping.
MOSFETS (Q1, Q2, Q3, Q4) - Estes são os interruptores de energia. Eles ligam e desligam a energia CC de uma maneira específica para criar CA na saída.
Diodos (1N4007) e capacitores - Estes são para permitir o funcionamento correto da rede de bootstrapping do ICS para a comutação perfeita dos 4 MOSFETs.
Outros capacitores e resistores - Estes são pequenos, mas muito importantes porque mantêm tudo funcionando bem.
Fonte de energia - Precisamos de +12V e +5V para Arduino e IR2110 ICS e uma alta tensão CC para os MOSFETs, conforme as especificações de carga.
O que está acontecendo no circuito?
Agora vamos ver como isso funciona passo a passo:
O Arduino gera sinais de SPWM em dois pinos de saída (pino 8 e pino 9). Esses sinais continuam mudando de largura para criar uma forma equivalente a uma onda senoidal CA.
O IR2110 ICS recebe esses sinais de PWM e os usa para ligar e desligar os MOSFETs de uma maneira muito específica.
A ponte H fabricada usando quatro MOSFETs converte a fonte de barramento CC em saída do tipo AC, alternando a direção atual através da carga usando a comutação SPWM.
Na saída, obtemos uma aproximação de onda senoidal, o que significa que parece uma onda senoidal, mas na verdade é feita de pulsos de troca rápida.
Se adicionarmos um circuito de filtro na saída, podemos suavizar esses pulsos e obter uma onda senoidal mais perfeita.
Nosso código Arduino para onda senoidal pwm
Então agora vamos ver o código. É isso que o Arduino executará para gerar os sinais SPWM.
835EA9484999CA2B1A94FC3D1BB3E885B51FF2262O que está acontecendo neste código?
Primeiro, configuramos dois pinos de saída (pino 8 e pino 9). Estes enviarão nossos sinais de PWM.
Então, no loop, ligamos e desligamos o pino em um padrão especial.
Começamos com pulsos estreitos e aumentamos gradualmente a largura do pulso e depois reduzimos de volta. Isso cria um padrão PWM de onda senoidal escalonada.
Depois que o primeiro meio ciclo é feito, repetimos a mesma coisa no outro pino (pino 9) para o próximo ciclo.
Dessa forma, nossa ponte H troca os MOSFETs em uma onda sinusoidal adequada como a moda.
O que é bom neste design
O design é realmente muito simples. Estamos usando apenas um Arduino e alguns componentes comuns.
Não precisamos de um gerador de ondas senoidal aqui, certo. O próprio Arduino está fazendo a forma seno usando SPWM.
A ponte H trabalha com eficiência usando o IR2110 ICS para garantir que os MOSFETs mudem corretamente sem superaquecimento.
Podemos ajustar o SPWM facilmente, caso queremos uma frequência de onda senoida diferente, apenas modificamos um pouco o código.
Como devemos lidar com o atraso de inicialização do Arduino
Agora, uma coisa muito importante que devemos entender é que o Arduino leva algum tempo para começar depois de ligar a energia.
Isso acontece porque quando ligamos o Arduino, ele primeiro executa seu carregador de inicialização interno, que leva alguns segundos.
Portanto, durante esse período, os ICs e os MOSFETs do IR2110 Gate podem não receber sinais adequados do Arduino.
Se isso acontecer, os MOSFETs podem ativar aleatoriamente, o que pode danificar o ICS instantaneamente ou causar um curto -circuito ou explosão.
Para garantir que o atraso de inicialização acima não queime os ICs e os MOSFETs durante a energia inicial ligada, precisamos modificar o código acima, como mostrado abaixo:
// By Swagatam - Full Bridge Sine Wave Inverter Code with Delay
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
delay(3000); // Booting delay (wait for 3 seconds before starting)
}
void loop() {
// First pin (8) switching pattern
digitalWrite(8, HIGH);
delayMicroseconds(500);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(750);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(1250);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(2000);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(1250);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(750);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(500);
digitalWrite(8, LOW);
// Second pin (9) switching pattern
digitalWrite(9, HIGH);
delayMicroseconds(500);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(750);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(1250);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(2000);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(1250);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(750);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(500);
digitalWrite(9, LOW);
}
Lista de peças
Conselho de Arduino | Arduino Uno (ou qualquer placa compatível) | 1 |
MOSFET Driver IC | IR2110 Driver lateral alto e baixo | 2 |
MOSFETS | IRF3205 (ou canal n semelhante) | 4 |
Diodos | 1N4007 (para Bootstrap & Protection) | 4 |
Resistores | 1KΩ 1/4W (Mosfet Gate Pull-Down) | 4 |
Resistores | 150Ω 1/4W (resistor da série MOSFET GATE) | 4 |
Capacitores | 100NF (capacitor de bootstrap) | 2 |
Capacitores | 22UF 25V (filtro de fonte de alimentação) | 2 |
Carregar | Qualquer carga resistiva ou indutiva | 1 |
Fonte de energia | +12V DC (para MOSFETs) e +5V DC (para Arduino) | 1 |
Fios e conectores | Adequado para conexões de circuito | Conforme necessário |
Dicas de construção
Agora, quando realmente construímos essa coisa, temos que ter muito cuidado com algumas coisas importantes. Caso contrário, pode não funcionar ou pior, algo pode queimar certo? Então, aqui estão algumas dicas de construção super importantes que devemos seguir:
Como devemos organizar as peças no quadro
Se usarmos uma placa de ensaio, esse circuito pode não funcionar bem porque os MOSFETs e motoristas de alta potência precisam de conexões fortes e sólidas.
Portanto, devemos usar uma PCB (placa de circuito impressa) ou pelo menos uma placa de perf e solde as peças corretamente.
Se fizermos um PCB, devemos manter os MOSFETs e o IR2110 ICS juntos, para que os sinais não fiquem fracos ou atrasados.
Os fios grossos devem seguir caminhos de alta corrente, como a fonte de alimentação aos MOSFETs e dos MOSFETs para a carga.
Os fios finos podem ser usados apenas para conexões de sinal, como do Arduino para o IR2110 ICS.
Como devemos colocar os moseres
Os quatro MOSFETs devem ser colocados em forma de ponte H adequada, para que a fiação não fique confusa.
Cada MOSFET deve ter conexões curtas e grossas com o IC IR2110.
Se colocarmos os MOSFETs muito longe do IR2110, os sinais poderão se tornar fracos e os MOSFETs podem não alternar corretamente.
Se isso acontecer, os MOSFETs podem ficar quentes e até queimar.
Como devemos corrigir o problema de calor
Se usarmos MOSFETs IRF3205 ou similares, eles esquentarão se não lhes der um dissipador de calor.
Portanto, devemos consertar um grande dissipador de calor de alumínio nos mosteres para mantê -los frescos.
Se estivermos fabricando um inversor de alta potência (mais de 100W), também devemos anexar um ventilador de resfriamento no dissipador de calor.
Se os MOSFETs ficarem muito quentes para tocar, isso significa que há algum problema e precisamos verificar o circuito novamente.
Como devemos alimentar o circuito
A parte do Arduino é executada em 5V e os MOSFETs precisam de 12V ou mais para trabalhar.
Portanto, nunca devemos conectar 12V a Arduino, ou queimará instantaneamente!
O IR2110 ICS precisa de duas fontes de alimentação:
12V para os MOSFETs de alto lado
5V para a seção lógica
Se misturarmos essas linhas de energia, o circuito não funcionará corretamente e os MOSFETs não alternarão corretamente.
Como devemos conectar os fios
A conexão do solo (GND) é super importante. Se a fiação do solo for fraca ou longa, o circuito poderá se comportar estranhamente.
Devemos usar um terreno comum para todas as peças, o que significa que o arduino Ground, o solo IR2110 e o solo da fonte MOSFET devem ser conectados.
Se virmos o circuito se comportando estranhamente (como a pista de saída ou os MOSFETs ficando aquecidos sem carga), devemos verificar as conexões de terra primeiro.
Como devemos verificar o circuito antes de ligá -lo
Antes de ligarmos a energia, devemos verificar todas as conexões para ver se tudo está correto.
Se tivermos um multímetro, devemos usá -lo para verificar as tensões em diferentes pontos antes de inserir os MOSFETs.
Precisamos estritamente de um osciloscópio para que possamos verificar os sinais SPWM vindos de Arduino para ver se eles parecem corretos.
Como devemos testar o circuito com cuidado
A melhor maneira de testar esse circuito com segurança é começar com uma baixa tensão.
Em vez de 12V, podemos primeiro tentar com 6V ou 9V para ver se os MOSFETs estão alternando corretamente.
Se o circuito funcionar bem com baixa tensão, podemos aumentar lentamente para 12V e, finalmente, a voltagem total.
Se repentinamente aplicarmos tensão total e algo está errado, algo poderá queimar instantaneamente!
Portanto, devemos testar passo a passo e continuar verificando superaquecimento ou comportamento errado.
Como podemos adicionar um filtro para uma saída mais suave
Este circuito produz uma saída CA usando PWM, mas ainda é feita de pulsos rápidos.
Se queremos uma onda senoidal limpa, devemos adicionar um filtro LC na saída.
Este filtro LC é apenas um grande indutor e um capacitor conectado à saída.
O indutor remove os pulsos de comutação rápida e o capacitor suaviza a forma de onda.
Se fizermos isso corretamente, podemos obter uma onda senoidal pura que é segura para os aparelhos.
Como devemos proteger o circuito contra danos
Devemos sempre adicionar um fusível em série com a fonte de alimentação.
Se algo shorts ou um MOSFET falharem, o fusível quebrará primeiro e salvará o circuito da queima.
Se os MOSFETs falharem, às vezes eles falham em curto (o que significa que sempre permanecem).
Se isso acontecer, a corrente enorme pode fluir e danificar o transformador ou outras peças.
Portanto, é sempre bom verificar os MOSFETs usando um multímetro antes de aplicar alta potência.
Conclusão
Então, aqui vimos como podemos fazer um inversor de onda senoidal usando apenas Arduino e um circuito MOSFET de ponte H. Utilizamos drivers de MOSFET IR2110 para alternar adequadamente os MOSFETs e o controle PWM do Arduino para gerar nosso CA modulado por seno.
Agora, uma coisa a lembrar é que essa saída ainda é feita de pulsos de troca rápida; portanto, se precisarmos de uma onda senoidal pura, devemos adicionar um filtro LC na saída para suavizá-lo.
Mas, no geral, essa é uma maneira muito prática e fácil de fazer um inversor de onda senoidal em casa!