PWM (Pulse Width Modulation) com Arduino

O exemplo Fading do Arduino demonstra o uso de saída analógica (PWM) para desvanecer um LED. Esse exemplo está disponível no menu File->Sketchbook->Examples->Analog do Software Arduino.

Pulse Width Modulation (Modulação do comprimento de pulso), ou PWM, é uma técnica para obter resultados analógicos em meios digitais. Controle digital é usado para criar uma onda quadrada, um sinal alternado entre ligado e desligado. Esse padrão ligado-desligado pode simular as voltagens cheias (5 Volts) e zeradas (0 Volts) pela alteração da fração do tempo que o sinal gasta no estado ligado contra a fração de tempo que o sinal passa no estado desligado. A duração desse tempo é chamado de comprimento do pulso. Para obter valores analógicos variados, você altera, ou modula, esse comprimento de pulso. Se você repetir esse padrão liga-desliga rápido o suficiente com um LED por exemplo, o resultado é como se o sinal fosse uma voltagem estável entre 0 e 5V controlando o brilho do  LED.

No gráfico abaixo, as linhas verdes representam um período normal de tempo. Essa duração ou período é o inverso da frequência PWM. Em outras palavras, como a frequência PWM do Arduino é em torno de 500Hz, as linhas verdes devem medir 2 milisegundos cada. Uma chamada para analogWrite() está numa escala de 0 – 255, de tal forma que analogWrite(255) requer um ciclo de atividade de 100%% (sempre ligado), e analogWrite(127) requer um ciclo de  atividade de 50% (metade do tempo) por exemplo.

Quando você executar esse exemplo, pegue o seu Arduino e agite-o para trás e para frente. O que estamos fazendo aqui é essencialmente mapeando o tempo pelo espaço. Para nossos olhos, o movimento borra cada piscado do LED em um linha. Como o LED acende e desliga gradualmente, essas linhas irão crescer e encolher em comprimento. Agora você está visualizando o comprimento do pulso.

traduzido de arduino.cc