Arduino: Conversao de PWM em Tensao Eletrica: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
 
(23 revisões intermediárias por um outro usuário não estão sendo mostradas)
Linha 1: Linha 1:
=Concersão de Pulsos PWM em Tensão Elétrica=
=Conversão de Pulsos PWM em Tensão Elétrica=


==Microcontroladores e Saídas PWM==
==Microcontroladores e Saídas PWM==
Linha 12: Linha 12:
Entretanto, em situações onde uma '''sinal PWM''' não possa para ser utilizado como '''controle analógico''' pode ser necessário utilizarmos um '''filtro de saída PWM''' ou até dispormos de um '''conversor DAC''', o qual pode necessitar circuitos eletrônicos analógicos, como Amplificadores Operacional, capacitores, resistores e outros.
Entretanto, em situações onde uma '''sinal PWM''' não possa para ser utilizado como '''controle analógico''' pode ser necessário utilizarmos um '''filtro de saída PWM''' ou até dispormos de um '''conversor DAC''', o qual pode necessitar circuitos eletrônicos analógicos, como Amplificadores Operacional, capacitores, resistores e outros.


==Convertendo PWM em tensão elétrica==
==Filtro para Converter PWM em Tensão Elétrica==


Em situações onde uma onda quadrada '''PWM''' não for apropriado para realizar um controle analógico pode utilizar um '''filtro passa baixas''' visando converter a saída em uma '''tensão elétrica''' correspondente ao percentual do sinal PWM. Desta forma, poderemos ter um '''conversor DA''' para uso com o Arduíno ou outros microcontroladores.
Em situações onde uma onda quadrada '''PWM''' não for apropriado para realizar um controle analógico pode utilizar um '''filtro passa baixas''' visando converter a saída em uma '''tensão elétrica''' correspondente ao percentual do sinal PWM. Desta forma, poderemos ter um '''conversor DA''' para uso com o Arduíno ou outros microcontroladores.
===Filtro Passa Baixas===


O circuito '''[[Filtros_Eletricos|filtro passa baixas RC]]''' abaixo pode ser utilizado neste caso.
O circuito '''[[Filtros_Eletricos|filtro passa baixas RC]]''' abaixo pode ser utilizado neste caso.
Linha 22: Linha 24:
Neste circuito, quando um tensão é aplicada na entrada do resistor R, o capacitor C começa a carregar. Lembre que o capacitor bloqueia corrente contínua e permite um maior fluxo de corrente a medida que a frequência do sinal elétrico aumenta. Para altas frequências o capacitor se comporta como um curto circuito. Para valores de frequência intermediária o '''circuito RC''' vai '''filtrar''' o sinal de entrada de acordo com a '''constante de tempo'''  do circuito.
Neste circuito, quando um tensão é aplicada na entrada do resistor R, o capacitor C começa a carregar. Lembre que o capacitor bloqueia corrente contínua e permite um maior fluxo de corrente a medida que a frequência do sinal elétrico aumenta. Para altas frequências o capacitor se comporta como um curto circuito. Para valores de frequência intermediária o '''circuito RC''' vai '''filtrar''' o sinal de entrada de acordo com a '''constante de tempo'''  do circuito.


O circuito é bastante simples, entretanto a escolha do '''resistor R''' e do '''capacitor C''' tem influencia na '''frequência de corte''' do circuito, na '''ondulação da tensão sobre o capacitor''' ('''''ripple''''')  e no '''tempo de resposta''' do circuito. A referência <ref>SCOTT. Arduino’s AnalogWrite – Converting PWM to a Voltage, 2011. https://provideyourown.com/2011/analogwrite-convert-pwm-to-voltage/</ref> faz uma análise detalhada destes fatores e também fornece um link para uma [http://sim.okawa-denshi.jp/en/PWMtool.php ferramenta para calculo ''online''] do '''ripple''' a partir da '''frequência de corte''' ou dos valores do '''resistor''' e '''capacitor''' escolhidos para filtragem de uma onda quadrada '''PWM'''.
O circuito é bastante simples, entretanto a escolha do '''resistor R''' e do '''capacitor C''' tem influencia na '''frequência de corte''' do circuito, na '''ondulação da tensão sobre o capacitor''' ('''''ripple''''')  e no '''tempo de resposta''' do circuito.  
 
A referência <ref NAME=scott>SCOTT. Arduino’s AnalogWrite – Converting PWM to a Voltage, 2011. https://provideyourown.com/2011/analogwrite-convert-pwm-to-voltage/</ref> faz uma análise detalhada destes fatores e também fornece um link para uma ferramenta para calculo ''online'' [http://sim.okawa-denshi.jp/en/PWMtool.php '''RC Low-pass Filter Design for PWM'''] do '''ripple''' a partir da '''frequência de corte''' ou dos valores do '''resistor''' e '''capacitor''' escolhidos para filtragem de uma onda quadrada '''PWM'''.
 
Como descrito em <ref NAME=scott/>, o '''''ripple'''''  e o '''tempo de resposta''' do circuito são parâmetros excludentes. Se diminuirmos muito o ''ripple'' o tempo de resposta aumenta, e vice-versa.


===Ganho de potência===
===Ganho de potência===
Linha 28: Linha 34:
Esta estrutura com '''filtro RC passa baixas''' funciona bem caso a carga não exija corrente significativa na saída. Caso a '''carga''' demande '''corrente''' pode-se utilizar um '''''buffer''''' com '''amplificador operacional''' para fornecer mais corrente a carga, oferecendo assim um '''ganho de potência'''.
Esta estrutura com '''filtro RC passa baixas''' funciona bem caso a carga não exija corrente significativa na saída. Caso a '''carga''' demande '''corrente''' pode-se utilizar um '''''buffer''''' com '''amplificador operacional''' para fornecer mais corrente a carga, oferecendo assim um '''ganho de potência'''.


A estrutura que pode ser utilizada para o buffer pode ser o '''amplificador não inversor''' com ganho 1.
A estrutura que pode ser utilizada para o '''''buffer''''' pode ser o '''seguidor de tensão''' com '''Ampop'''.
 
[[Arquivo:AmplificadorNaoInversor.png]]
 
O ganho do amplificador não inversor é dado por:
G = 1 + R<sub>2</sub>/R<sub>1</sub>
logo, fazendo R2 = 0 (curto circuito) e R1 = &infin; (circuito aberto) temos:


[[Arquivo:Buffer.png]]
[[Arquivo:Buffer.png]]
Linha 41: Linha 41:
O Arduíno fornece saída PWM (portas 3, 5, 6, 9, 10 e 11) com frequência de 490 Hz (pinos 5 e 6: 980 Hz) <ref NAME=PWM/>.
O Arduíno fornece saída PWM (portas 3, 5, 6, 9, 10 e 11) com frequência de 490 Hz (pinos 5 e 6: 980 Hz) <ref NAME=PWM/>.


Utilizando a [http://sim.okawa-denshi.jp/en/PWMtool.php '''ferramenta para calculo ''online'''''] descrita acima, para uma onda PWM de 0V a 5V, com ''duty cicle'' de 50% e frequência de corte de 10 Hz, obtêm-se um ''ripple'' aceitável (Vpp = 0,15 V) e um tempo de resposta de 0,04 s, como mostra a figura abaixo.
Utilizando a ferramenta para calculo ''online'' [http://sim.okawa-denshi.jp/en/PWMtool.php '''RC Low-pass Filter Design for PWM'''], para uma onda PWM de 0V a 5V, com ''duty cicle'' de 50% e frequência de corte de 10 Hz, obtêm-se um ''ripple'' aceitável (Vpp = 0,15 V) e um tempo de resposta de 0,04 s, como mostra a figura abaixo.


[[Arquivo:rc_ripple.png]]
[[Arquivo:rc_ripple.png]]
Linha 57: Linha 57:
  R = 7,2 k&Omega;
  R = 7,2 k&Omega;


===Módulo Conversor de Sinal PWM para Tensão Analógica===
===Laboratório: Análise e filtragem de pulso PWM===
*Utilizar o '''SimulIDE''' e montar circuito com um '''Arduíno''', um '''led''' conectado a '''saída digital 9''' e um '''potenciômetro''' com o ponto central conectado a '''entrada analógica A0'''  (com os demais terminais do potenciômetro conectados ao GND e 5V, respectivamente);
*Carregar programa exemplo '''[https://www.arduino.cc/en/Tutorial/AnalogInOutSerial Arquivo/Exemplos/Analog/AnalogInOutSerial]''' e verificar a variação da luminosidade do '''led''' do '''pino 9''' em função do '''potenciômetro''';
*Utilizar o '''osciloscópio''' do '''SimulIDE''' para examinar a forma de onda de uma saída PWM (pino 9). Variar o '''''dutty cicle'' do PWM''', através do potenciômetro e verificar as alterações na forma de onda PWM;
*Construir um '''filtro RC''' para '''converter o sinal PWM em tensão elétrica''',  incluindo também no circuito um '''''buffer'' seguidor de tensão''' com '''Ampop'''. Verificar no osciloscópio o resultado da filtragem.
:Considere que o '''sinal PWM''' opera com frequência de 980 Hz. Utilize os valores de R = 7,2 k&Omega; e C = 2,2 uF.
*Utilize o simulador de filtro RC [http://sim.okawa-denshi.jp/en/PWMtool.php '''RC Low-pass Filter Design for PWM'''] para verificar o '''''ripple'''''  e o '''tempo de resposta''' do circuito. Varie os valores de R, C e também da frequência de corte e analise as mudanças no filtro RC.
 
==Módulo Conversor de Sinal PWM para Tensão Analógica==
Existem no mercado módulos para conversão do '''sinal PWM''' para '''tensão analógica''', como o módulo '''LC-LM358'''.
Existem no mercado módulos para conversão do '''sinal PWM''' para '''tensão analógica''', como o módulo '''LC-LM358'''.


Linha 74: Linha 82:
----
----


[[Categoria:Eletrônica]] [[Categoria:Sistemas Digitais]] [[Categoria:IoT]] [[Categoria:Arduino]]
[[Categoria:Eletrônica]] [[Categoria:Sistemas Digitais]] [[Categoria:IoT]] [[Categoria:Arduíno]]

Edição atual tal como às 20h42min de 19 de maio de 2023

Conversão de Pulsos PWM em Tensão Elétrica

Microcontroladores e Saídas PWM

A maioria dos microcontroladores, como o Arduíno, emulam saídas analógicas através de modulação PWM (Pulse Width Modulation).

O sinal PWM é uma onda quadrada, com frequência constante, mas a fração de tempo em que o sinal é HIGH (5V) (duty cycle) pode variar entre 0 e 100%, fornecendo uma média de tensão variável na saída [1].

O Arduíno possui 6 saídas PWM são identificadas pelo sinal ~ e fornecem pulsos PWM de 8 bits, possibilitando, portanto, 256 valores diferentes de tensão analógica entre 0V e 5V, com passos de 0 a 255.

Entretanto, em situações onde uma sinal PWM não possa para ser utilizado como controle analógico pode ser necessário utilizarmos um filtro de saída PWM ou até dispormos de um conversor DAC, o qual pode necessitar circuitos eletrônicos analógicos, como Amplificadores Operacional, capacitores, resistores e outros.

Filtro para Converter PWM em Tensão Elétrica

Em situações onde uma onda quadrada PWM não for apropriado para realizar um controle analógico pode utilizar um filtro passa baixas visando converter a saída em uma tensão elétrica correspondente ao percentual do sinal PWM. Desta forma, poderemos ter um conversor DA para uso com o Arduíno ou outros microcontroladores.

Filtro Passa Baixas

O circuito filtro passa baixas RC abaixo pode ser utilizado neste caso.

Neste circuito, quando um tensão é aplicada na entrada do resistor R, o capacitor C começa a carregar. Lembre que o capacitor bloqueia corrente contínua e permite um maior fluxo de corrente a medida que a frequência do sinal elétrico aumenta. Para altas frequências o capacitor se comporta como um curto circuito. Para valores de frequência intermediária o circuito RC vai filtrar o sinal de entrada de acordo com a constante de tempo do circuito.

O circuito é bastante simples, entretanto a escolha do resistor R e do capacitor C tem influencia na frequência de corte do circuito, na ondulação da tensão sobre o capacitor (ripple) e no tempo de resposta do circuito.

A referência [2] faz uma análise detalhada destes fatores e também fornece um link para uma ferramenta para calculo online RC Low-pass Filter Design for PWM do ripple a partir da frequência de corte ou dos valores do resistor e capacitor escolhidos para filtragem de uma onda quadrada PWM.

Como descrito em [2], o ripple e o tempo de resposta do circuito são parâmetros excludentes. Se diminuirmos muito o ripple o tempo de resposta aumenta, e vice-versa.

Ganho de potência

Esta estrutura com filtro RC passa baixas funciona bem caso a carga não exija corrente significativa na saída. Caso a carga demande corrente pode-se utilizar um buffer com amplificador operacional para fornecer mais corrente a carga, oferecendo assim um ganho de potência.

A estrutura que pode ser utilizada para o buffer pode ser o seguidor de tensão com Ampop.

Exemplo de filtragem da saída PWM do Arduíno

O Arduíno fornece saída PWM (portas 3, 5, 6, 9, 10 e 11) com frequência de 490 Hz (pinos 5 e 6: 980 Hz) [1].

Utilizando a ferramenta para calculo online RC Low-pass Filter Design for PWM, para uma onda PWM de 0V a 5V, com duty cicle de 50% e frequência de corte de 10 Hz, obtêm-se um ripple aceitável (Vpp = 0,15 V) e um tempo de resposta de 0,04 s, como mostra a figura abaixo.

Cálculo dos valores de R e C a partir da frequência de corte:

fc = 1 / 2πRC

Escolhendo

C = 2,2 uF
fc = 10 Hz

temos

R = 1/2πfcC
R = 1/2π 10 2,2u
R = 7,2 kΩ

Laboratório: Análise e filtragem de pulso PWM

  • Utilizar o SimulIDE e montar circuito com um Arduíno, um led conectado a saída digital 9 e um potenciômetro com o ponto central conectado a entrada analógica A0 (com os demais terminais do potenciômetro conectados ao GND e 5V, respectivamente);
  • Carregar programa exemplo Arquivo/Exemplos/Analog/AnalogInOutSerial e verificar a variação da luminosidade do led do pino 9 em função do potenciômetro;
  • Utilizar o osciloscópio do SimulIDE para examinar a forma de onda de uma saída PWM (pino 9). Variar o dutty cicle do PWM, através do potenciômetro e verificar as alterações na forma de onda PWM;
  • Construir um filtro RC para converter o sinal PWM em tensão elétrica, incluindo também no circuito um buffer seguidor de tensão com Ampop. Verificar no osciloscópio o resultado da filtragem.
Considere que o sinal PWM opera com frequência de 980 Hz. Utilize os valores de R = 7,2 kΩ e C = 2,2 uF.
  • Utilize o simulador de filtro RC RC Low-pass Filter Design for PWM para verificar o ripple e o tempo de resposta do circuito. Varie os valores de R, C e também da frequência de corte e analise as mudanças no filtro RC.

Módulo Conversor de Sinal PWM para Tensão Analógica

Existem no mercado módulos para conversão do sinal PWM para tensão analógica, como o módulo LC-LM358.


O módulo LC-LM358 converte sinal PWM para sinal analógico, PWM duty cicle 0% a 100% para tensão de 0 a 10V.

São aplicados para interface com PLC (Controladores Lógico Programáveis) ou outras placas de controle industrial.

Referências


Evandro.cantu (discussão) 16h00min de 19 de maio de 2023 (-03)