2013/04/20

O que é o PWM?

Estava prometido há muito, e como não gosto de deixar promessas por cumprir, cá está um post dedicado a explicar o que é o PWM, uma palavra que será reconhecida por todos os que se aventuram no mundo da electrónica (e não só).


Este estranho agrupamento de letras - PWM - quer dizer "Pulse Width Modulation", o que traduzido dá algo como "modulação por largura de impulsos". Mas, o que quer isto dizer na realidade?

Vamos a um exemplo simples: imaginem que têm uma lâmpada ligada a um interruptor. Quando o interruptor está desligado a lâmpada está desligada, quando o interruptor está ligado, permite a passagem de energia e a lâmpada acende. Em termos digitais seria o equivalente ao estado "0" e "1" que os microcontroladores tanto gostam, e que normalmente se traduzem por 0V para o "zero" e 3 ou 5V para o "1".

Mas, agora imaginem que em vez de terem a lâmpada ligada ou desligada, gostariam de poder controlar a sua intensidade!

As coisas começam a complicar-se, pois os computadores só lidam em "0" e "1", e à partida não seria possível usá-los para enviar sinais "intermédios". Há circuitos especializados para este tipo de conversões de digital para anlógico (os chamados DAC - Digital to Analog converters), e que permitem fazer o output de um valor analógico (por exemplo, 2.5V). Mas, se não tivermos isso disponível, por vezes podemos fazer algo idêntico usando sinais puramente digitais: e é aqui que entra o PWM.

Voltando ao exemplo do interruptor da lâmpada, obter metade da intensidade luminosa poderia ser conseguido através do "ligar e desligar" contínuo da lâmpada a alta-velocidade. Claro que se o tentassem fazer manualmente, apenas conseguiriam dar uma dor de cabeça a alguém (e destruir o interruptor e lâmpada no processo) - mas se for um circuito electrónico a fazer isso a alta velocidade... a coisa seria tão rápida que para os nossos olhos não seria possível ver o "apagar e desligar", mas sim apenas a sua luminosidade a aumentar ou diminuir dependendo do tempo que deixássemos ligada/desligada.

É precisamente este o princípio que se usar para regular a intensidade dos LEDs. E é também por isso que por vezes, dependendo das pessoas, se pode notar um ligeiro "tremelicar" dos LEDs, especialmente quando estão num modo de baixa luminosidade (onde se tornará mais notório o efeito por passarem mais tempos desligados).




Nos "antigamente", implementar o PWM obrigava a que toda a gestão dos tempos fosse feita manualmente por software num micro-controlador (o que não é propriamente o uso mais eficiente do mesmo, e que por vezes obrigava a enormes habilidades para garantir que outros processos não interferiam com o tempo dos impulsos). Mas nos microcontroladores actuais, é comum termos já pinos dedicados com PWM por hardware. Ou seja, bastará configurar o funcionamento do mesmo (frequência, etc), e depois poderemos simplesmente dizer que queremos que ele esteja ligado a 10, 50, 90, 100% do tempo, e já não nos temos que preocupar com mais nada.



Não sei se terei conseguido passar de forma clara o princípio de funcionamento do PWM... mas se tiverem dúvidas, deixem nos comentários que tentarei esclarecer-vos.

2 comentários:

  1. Aconselho a ler este livro
    http://makezine.com/getstartedarduino/

    Mesmo quem não perceba de electrónica ou programação irá certamente compreender o significado do pwm na gíria de electrónica computacional!

    invés de colocarmos um simples led apenas on ou off, podemos fazer dim (alterar a sua intensidade de luminosidade) através de programação sem recorrer a esquemas muito elaborados de electrónica ou até sem recorrer a algo fisico como um potenciómetro!

    ResponderEliminar
  2. Utilizei muito para controlo de velocidade de motores DC

    ResponderEliminar