PWM vem do inglês Modulação por Largura de Pulso, que consiste em uma técnica que fornece um sinal analógico através de meios digitais. Uma onda de sinal digital, é um onda quadrada que altera seu estado entre os níveis lógicos Baixo e alto, que pode ser entendido como desliga e ligado, em forma binaria seria 0 e 1.
Duty Cycle, que em português é ciclo de trabalho, é utilizado para descrever a fração de tempo em que um sistema está em um estado "ativo", isso é nivel lógico alto.Podemos, então entender que para termos uma onda quadrada real(que possui picos e vales iguais) é necessário que o Duty Cycle seja de 50%, ou seja, 50% de pico e 50% de vale.
No Arduino UNO, as portas digitais que permitem PWM são as portas 3, 5, 6, 9, 10 e 11. Essas portas são facilmente identificadas pelo simbolo "~" abaixo de cada porta. Sabemos que a tensão de saída de uma porta digital no arduino é de 5V. Essa mesma tensão conseguiríamos obter da porta digital ao enviá-la uma saída analógica de valor 255 (Duty Cycle de 100%).
Vejamos o exemplo:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
| void setup(){ pinMode(3, OUTPUT); //define a porta digital 3 como saída pinMode(5, OUTPUT); //define a porta digital 5 como saída pinMode(6, OUTPUT); //define a porta digital 6 como saída pinMode(9, OUTPUT); //define a porta digital 9 como saída pinMode(10, OUTPUT); //define a porta digital 10 como saída } void loop(){ analogWrite(3, 0); //a tensão na porta digital 3 será se 0V analogWrite(5, 64); //a tensão na porta digital 5 será se 1,25V analogWrite(6, 127); //a tensão na porta digital 6 será se 2,5V analogWrite(9, 191); //a tensão na porta digital 9 será se 3,75V analogWrite(10, 255); //a tensão na porta digital 10 será se 5V } |
Essa técnica abre uma infinidade de possibilidades. Uma utilização clássica para PWM é no controle de velocidade de um motor DC (corrente contínua).
Com PWM pode ser controlar um Servo Motor, que geralmente é existe varios projetos na internet para carrinhos e braços mecânico.
Comentários