Arduino: Conversao de PWM em Tensao Eletrica: mudanças entre as edições
(23 revisões intermediárias por um outro usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
= | =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. | ||
== | ==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 | 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 ''' | A estrutura que pode ser utilizada para o '''''buffer''''' pode ser o '''seguidor de tensão''' com '''Ampop'''. | ||
[[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 ''' | 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Ω | R = 7,2 kΩ | ||
===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Ω 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: | [[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
- ↑ 1,0 1,1 https://www.arduino.cc/reference/en/language/functions/analog-io/analogwrite/
- ↑ 2,0 2,1 SCOTT. Arduino’s AnalogWrite – Converting PWM to a Voltage, 2011. https://provideyourown.com/2011/analogwrite-convert-pwm-to-voltage/
Evandro.cantu (discussão) 16h00min de 19 de maio de 2023 (-03)