Circuito do Gerador SPWM do Arduino – Detalhes e Diagrama do Código

Neste post, aprendemos como gerar modulação de largura de pulso de onda senoidal ou SPWM através do Arduino, que pode ser usado para criar um circuito inversor de onda senoidal pura ou dispositivos semelhantes.

a Arduino o código foi desenvolvido por mim e é o meu primeiro código do Arduino, … e parece muito bom

O que é SPWM?

Eu já expliquei como gerar SPWM usando opamps Em um dos meus artigos anteriores, você pode revisá-lo para entender como ele pode ser criado usando componentes discretos e sobre sua importância.

Basicamente, o SPWM, que significa Modulação por largura de pulso de onda senoidal, é um tipo de modulação de pulso em que os pulsos são modulados para simular uma forma de onda senoidal, para que a modulação possa alcançar as propriedades de uma onda senoidal pura.

Para implementar um SPWM, os pulsos são modulados com larguras iniciais mais estreitas que gradualmente se expandem no centro do ciclo e, eventualmente, acabam sendo mais estreitos no final para terminar o ciclo.

Para ser mais preciso, os pulsos começam com larguras mais estreitas que se expandem gradualmente a cada pulso subsequente e se expandem no pulso central; depois disso, a sequência continua, mas com modulação oposta, ou seja, os pulsos agora começam gradualmente a estreito até o final do ciclo.

circuito do gerador spwm do arduino detalhes e diagrama

Vídeo de demonstração

Isso constitui um ciclo SPWM e é repetido a uma taxa específica determinada pela frequência da aplicação (geralmente 50Hz ou 60Hz). O SPWM é normalmente usado para alimentar dispositivos de energia como mosfets ou BJTs em inversores ou conversores.

Esse padrão de modulação especial garante que os ciclos de frequência funcionem com um valor médio de tensão que muda gradualmente (também chamado de valor RMS), em vez de iniciar picos repentinos de alta / baixa tensão, como normalmente visto em ciclos de onda quadrada plano.

Essa modificação gradual do PWM em um SPWM é propositadamente aplicada para reproduzir de perto o padrão de aumento / queda exponencial de uma onda senoidal padrão ou de uma forma de onda senoidal, daí o nome onda senoidal PWM ou SPWM.

Gerando SPWM com Arduino

O SPWM explicado acima pode ser facilmente implementado usando algumas partes discretas e também o Arduino, o que provavelmente permitirá obter mais precisão com os períodos das formas de onda.

O seguinte código do Arduino pode ser usado para implementar o SPWM destinado a um determinado aplicativo.

Meu Deus!! que parece muito grande, se você souber reduzi-lo, sinta-se à vontade para fazê-lo no final.

// By Swagatam (my first Arduino Code)
void setup(){
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
void loop(){
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);
//......
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);
}
//-------------------------------------//

No próximo post, explicarei como usar o gerador SPWM baseado em Arduino acima para fazer um circuito inversor de onda senoidal pura….continue lendo!

A Atton aprimorou ainda mais o código SPWM anterior para melhorar seu desempenho, da seguinte maneira:

/*
This code was based on Swagatam SPWM code with changes made to remove errors. Use this code as you would use any other Swagatam’s works.
Atton Risk 2017
*/
const int sPWMArray[] = {500,500,750,500,1250,500,2000,500,1250,500,750,500,500}; // This is the array with the SPWM values change them at will
const int sPWMArrayValues = 13; // You need this since C doesn’t give you the length of an Array
// The pins
const int sPWMpin1 = 10;
const int sPWMpin2 = 9;
// The pin switches
bool sPWMpin1Status = true;
bool sPWMpin2Status = true;
void setup()
{
pinMode(sPWMpin1, OUTPUT);
pinMode(sPWMpin2, OUTPUT);
}
void loop()
{
// Loop for pin 1
for(int i(0); i != sPWMArrayValues; i++)
{
if(sPWMpin1Status)
{
digitalWrite(sPWMpin1, HIGH);
delayMicroseconds(sPWMArray[i]);
sPWMpin1Status = false;
}
else
{
digitalWrite(sPWMpin1, LOW);
delayMicroseconds(sPWMArray[i]);
sPWMpin1Status = true;
}
}
// Loop for pin 2
for(int i(0); i != sPWMArrayValues; i++)
{
if(sPWMpin2Status)
{
digitalWrite(sPWMpin2, HIGH);
delayMicroseconds(sPWMArray[i]);
sPWMpin2Status = false;
}
else
{
digitalWrite(sPWMpin2, LOW);
delayMicroseconds(sPWMArray[i]);
sPWMpin2Status = true;
}
}
}



FONTE

Nota: Este foi traduzido do Inglês para português (auto)

Pode conter erros de tradução

Olá, se tiver algum erro de tradução (AUTO), falta de link para download etc…

Veja na FONTE até ser revisado o post.

Status (Não Revisado)

Se tiver algum erro coloque nos comentários

Mas se gostou compartilhe!!!


Veja mais

0879fd7283d276c67c2d16232261f897?s=96&d=mm&r=g
Axtudohttps://www.axtudo.com/
“Solidários, seremos união. Separados uns dos outros seremos pontos de vista. Juntos, alcançaremos a realização de nossos propósitos.” (Bezerra de Menezes)

Comentários

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui

Compartilhe

Últimos Posts

00:02:22

VOU ENSINAR A PROFISSÃO DO FUTURO PRA ELE –...

#VOU #ENSINAR #PROFISSÃO #FUTURO #PRA #ELE #Tiago #Fonseca FAÇA PARTE DA COMUNIDADE SECRETA- link➤https:dominacaodigital.com.br/video1/ Neste vídeo Tiago Fonseca...
00:10:39

STROGONOFF DE SALSICHA SIMPLES, FÁCIL, RÁPIDO E DELICIOSO

Nesse vídeo te ensino a fazer um Strogonoff de Salsicha super diferente mas que é muito simples, fácil, rápido de fazer e muito Delicioso....
00:02:18

COMPREI UM PRESENTE PARA ELE! com Tiago Fonseca.

#COMPREI #PRESENTE #PARA #ELE #Tiago #Fonseca FAÇA PARTE DA COMUNIDADE SECRETA- link➤https:dominacaodigital.com.br/video1/ Neste vídeo o nosso convidado eucomprei um presente para um entregador, veja o porque...

Moto G9 Plus ENFIM com Câmeras Boas e um...

#Moto #ENFIM #Câmeras #Boas #Design #Lindo #REVIEW #CanalJMS CLICA AQUI PRA SE INSCREVER 💚→ link➤http:goo.gl/vSPsIH Assista...

COMO CONSEGUIR MILHARES DE ACESSOS NOS PRIMEIROS MINUTOS

#COMO #CONSEGUIR #MILHARES #ACESSOS #NOS #PRIMEIROS #MINUTOS Leadlovers: link➤http:amoleads.com/leadlovers-peterj Copymaker: link➤https:amoleads.com/copymaker-peterj Os primeiros minutos de um post, seja ele...

O Luxo e a sofisticação dos Weintraub – Um...

#Luxo #sofisticação #dos #Weintraub #abraço #Lusa #para #Presidente #nossa #nova #aquisição FONTE - Duração...