Precisa controlar o brilho de um LED ou até diminuir a velocidade de um motor CC? Então a ferramenta ideal é o PWM, que é tão falado, mas alguns podem não conhecer.


O que é?

A sigla PWM significa Pulse Width Modulation que, em português, significa Modulação de Largura de Pulso. O PWM é, basicamente, uma técnica para controle de cargas (LED, motor, etc), seja controlar sua potência ou sua velocidade.

Normalmente as cargas, em corrente contínua, são alimentadas com uma tensão constante, por exemplo, de 5v.

Tensão constante sem pwm

Porém, você pode desejar alterar a rotação de um motor ou então controlar a intensidade de um LED. Para isso, a tensão em cima da carga precisa ser mais baixa.

A técnica do PWM é manter a tensão em cima da carga no valor máximo por um certo tempo e, em outro intervalo, deixar a carga sem tensão e repetir esse processo indefinitivamente, conforme ilustra a imagem abaixo:

555 gráfico vxt

Na imagem acima, está o exemplo do uso do PWM, mostrando a tensão pelo tempo em cima de uma carga qualquer. 50% do tempo a tensão é Vcc e 50% é 0. Com isto, a tensão média em cima da carga diminui. No tópico abaixo veremos como ela é calculada.

Tensão média

A tensão média ao longo do período T em função da tensão de entrada Vin(t) é dada por :

Vmed = \frac{\int_{0}^{T}Vin(t) * dt}{T}

Para o cálculo acima, podemos dividir a função de entrada em dois intervalos. Sendo o primeiro intervalo o tempo que ela fica em Vcc e o outro o tempo que ela fica em 0.

Como a integral pode ser definida como a área sob a curva, basta encontrar a área do primeiro intervalo, pois a área do segundo intervalo é 0. Considerando que o tempo que ele ficou em alta é x, sendo x < T. Temos então:

Vmed = \frac{Vcc*x}{T}

Para simplificar os cálculos, vamos considerar o tempo que a tensão fica em alta relativo ao tempo T. Isto é, a % do tempo em alta em relação ao tempo total. Vou chamar essa porcentagem de DC:

DC= \frac{x}{T}

Logo, a tensão média será:

Vmed = Vcc*DC

Para exemplificar, considere um caso em que o PWM fica 50% do tempo em Vcc, sendo Vcc=5. Então, a tensão média pode ser representada pelo gráfico abaixo.

gráfico tensão media

Cálculo de Vmed:

Vmed = 5*0,5 = 2,5v

Controle de potência

O efeito que isso provoca, além de controlar a intensidade de um LED ou a velocidade de um motor, é também de diminuir a potência consumida pela carga. Porque a potência em cima dela pode ser representada por:

P = V*i

P=\frac{V^{2}}{R}

Sendo assim, para um PWM de 50% da tensão, a potência final pode ser diminuída para 25% da original.

P2=\frac{(\frac{V}{2})^{2}}{R}

P2=\frac{V^{2}}{4R}


Como funciona

555 gráfico vxt

Pegando a mesma imagem de antes como exemplo. Pra alterar a tensão média, basta mudar o tempo que a tensão fica em alta (Vcc) em relação ao tempo que ela fica em baixa (0v).

Portanto, o período T deve ser o mesmo, mas o que muda é apenas o tempo que a tensão ficará em Vcc. Esse tempo que a tensão fica em alta é chamado de duty cycle ou ciclo de trabalho. O duty cycle é dado em %, e é a porcentagem do tempo que Vcc fica em alta comparado ao período total. É o DC da fórmula de tensão média do início do post.

Por exemplo, vamos considerar que T = 1s e que queremos que a tensão média de 1/4 de Vcc (um duty cycle de 25%). Desse modo, em 1/4 de 1 segundo (250ms), a tensão deve estar em alta (Vcc) e, no restante do tempo (750ms), em baixa (0v). O gráfico abaixo ilustra o exemplo.

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

Portanto, Vmedio será Vcc*0,25.

Uma observação importante a ser feita é que esse período não pode ser grande (deve ser preferencialmente na faixa dos milissegundos). Isso porque, se o período for grande (~2s), a carga irá apenas desligar ou ligar, dependendo do pulso, ao invés de variar a tensão, que é o desejado.


Como aplicar a técnica

Isso pode ser feito de várias maneiras, basta seguir a essência da técnica.

No Arduino/algum microcontrolador

Em vários microcontroladores já existe um comando para PWM, que o Arduino já apresenta pra gente com o comando analogWrite(). Porém, se você quiser fazer manualmente, basta controlar um pino digital para mandar sinal alto durante um tempo e sinal baixo durante outra parte do tempo de modo a chegar ao valor médio de tensão desejado. Isto é, basicamente criar pulsos em um pino digital. Leia o tutorial ensinando aqui.

Sem Microcontrolador

Uma boa alternativa é usar o CI 555 no modo astável. Desse modo, você não precisa de nenhuma programação, apenas o circuito do 555 pulsando. No tópico abaixo tem o circuito de como fazer.


Exemplo de aplicação

O circuito abaixo tem o objetivo de controlar a velocidade de um motor usando a técnica de PWM com a ajuda de um CI 555.

PWM no motor usando 555

Veja o post sobre o 555 para entender boa parte do funcionamento. A velocidade do motor é ajustada através do potenciômetro P1, que representa a resistência responsável pelo tempo em alta dos pulsos do 555. Ou seja, a medida que você varia ele, o tempo em alta vai aumentar ou diminuir, alterando assim a sua tensão media na saída (pino 3 do 555).

O motor está sendo controlado por um transistor por causa da corrente máxima de saída do 555 ser muito baixa para alimentar um motor (200mA). E o diodo em paralelo com ele serve para proteger o motor de tensões reversas. Por fim, o capacitor C1 serve para filtrar oscilações da fonte, então, dependendo do seu caso, não é necessário. O circuito não tem muito mistério, é bem simples.

Ponte H – O que é e como funciona