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.
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%)
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.
Bom Trabalho!!!
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!!!