Arduino - Aula 4: Saída Analógica PWM

   


     Nesta aula vamos descrever o funcionamento da saída PWM (Modulação por Largura de Pulso) do Arduino Uno, os pinos que contemplam o PWM são 3, 5, 6, 9, 10, 11. Vamos entender o que é o PWM primeiramente.
     A figura abaixo mostra a ideia daquilo que podemos obter utilizando PWM.
     PWM é uma forma de você poder variar uma tensão, obtendo uma tensão média podendo simular essa como se fosse uma saída analógica de tensão. É uma técnica muito utilizada em sistemas digitais para que você possa variar o nível de tensão. A porcentagem de tensão na saída do pino é chamado de Duty Cycle.

    Conforme a figura anterior, você pode ver que a frequência é fixa e o que varia é o tempo de nível alto("1") e o tempo de nível baixo("0"), desta forma teremos uma média de tensão. Desta forma conseguimos variar a tensão de 0 a 5V da saída do arduino.
   O PWM do arduino tem uma resolução de 8 bits, ou seja, é possível variar o valor de saída em 256 valores começando do 0 (Duty Cycle 0%) e chegando no seu valor máximo de 255 (Duty Cycle 100%)

Detalhando o código de execução 
const int PWM1 = 11; // declara uma constante com valor 11
char Valor_PWM = 0;   // variável que armazena valor do PWM

void setup() {
   pinMode(PWM1,OUTPUT);  //define pino PWM como saída
}

void loop() {
 
  analogWrite(PWM1, Valor_PWM);      //escreve no pino PWM o valor PWM(0~255)  
  delay(20);                         // delay de 20mS 
  if(++Valor_PWM >= 255)Valor_PWM=0; //incrementa valor de PWM e compara
                                     // se maior igual a 256 coloca Valor_PWM
                                     //igual a 0
 
Podemos utilizar qualquer um dos pinos que contemplam o PWM . 
  
 * analogWrite(PWM1, valor_PWM);
 
       Esta sintaxe escreve o valor_PWM no pino PWM1, ou seja, quanto mais baixo for o valor_PWM menor será a tensão média de saída, este valor pode variar de 0 a 255.   
 
Caso você esteja utilizando o Arduino Mega, substitua o pino 11 pelo pino 13, desta forma você consegui simular o funcionamento do PWM no LED da placa.

Esquema elétrico no Fritzing


Bom Trabalho!!!