PWM
Last updated
Last updated
PWM, do inglês Pulse Width Modulation, é uma técnica utilizada por sistemas digitais para variação do valor médio de uma forma de onda periódica. A técnica consiste em manter a frequência de uma onda quadrada fixa e variar o tempo que o sinal fica em nível lógico alto. Esse tempo é chamado de duty cycle, ou seja, o ciclo ativo da forma de onda. No gráfico abaixo são exibidas algumas modulações PWM:
Analisando as formas de onda nota-se que a frequência da forma de onda tem o mesmo valor e varia-se o duty cycle da forma de onda. Quando o duty cicle está em 0% o valor médio da saída encontra-se em 0 V e consequentemente para um duty cycle de 100% a saída assume seu valor máximo, que no caso é 5V. Para um duty cycle de 50% a saída assumirá 50% do valor da tensão, 2,5 V, e assim sucessivamente para cada variação no duty cycle. Portanto, para calcular o valor médio da tensão de saída de um sinal PWM pode-se utilizar a seguinte equação:
Vout = (duty cycle/100)* Vcc
Onde:
Vout - tensão de saída em V;
duty cycle - valor do ciclo ativo do PWM em %;
Vcc - tensão de alimentação em V.
PWM pode ser usada para diversas aplicações, como por exemplo:
controle de velocidade de motores;
variação da luminosidade de leds;
geração de sinais analógicos;
geração de sinais de áudio.
Fonte: Usando as saídas PWM do Arduino
Na Franzininho temos 3 pinos que pode ser usado como saidas PWM(PWM0,PWM1 e PWM4) conforme pinout:
Verificar limitações de uso dos pinos
A função analogWrite() escreve um valor de PWM em um pino digital que possui a função PWM. Para usar o pino como saída PWM é necessário configurá-lo como saída digital.
analogWrite(pino, valor);
pino: número do pino onde será gerado o sinal PWM (0,1,4 na Franzininho);
valor: valor médio da tensão de saída que será gerado por PWM, entre 0 e 255, onde 0 representa 0V e 255, 5V.
Vamos controlar o brilho do LED conforme o valor lido no potenciômetro: