Olá, nesse post iremos conhecer um pouco sobre PWM (Pulse-Width Modulation) ou em português Modulação por largura de pulso (MLP). O arduino tem a nos oferecer saidas analógicas pela qual podemos utilizar a técnica PWM.

Irei utilizar como exemplo o controle de motores de corrente contínua. Com esta técnica podemos controlar a velocidade dos motores, mantendo o torque ainda que em baixas velocidades o que garante partidas suaves mesmo quando há uma carga maior sobre os motores. Aspectos que caracterizam o controle PWM como ideal para aplicações em robótica.
Para entender o princípio do PWM vamos imaginar um circuito como o da figura 1. Neste, temos um interruptor que quando acionado faz com que o motor receba 6V e funcione com 100% de potência. Quando o interruptor não está precionado, o motor não recebe energia e simplesmente não funciona.
Vamos supor que consigamos pressionar e soltar o interruptor um grande número de vezes por segundo, de tal forma que metade do tempo ele fica ligado e metade desligado. O resultado seria uma onda quadrada como o da figura 2.
No exemplo o tempo t1 corresponde ao tempo que o interruptor fica precionado e t2 o tempo que ele fica livre. Como neste caso t1 é igual a t2, durante a metade do tempo o motor recebe a tensão de 6V e na outra metade ele recebe 0V. A tensão média, figura 3, aplicada ao motor é neste caso de 3V, ou seja, 50% da tensão da bateria.
É claro que não é possível usar um interruptor em um circuito com PWM, pois não conseguiríamos pressioná-lo na velocidade necessária. Porém o circuito eletrônico do MC 2.5 foi projetado para executar esta tarefa. De fato, o módulo de controle gera cerca de 200 pulsos por segundo.
Para diminuir a velocidade do motor, basta reduzir a largura dos pulsos, mantendo o motor menos tempo ligado, conforme figura 4, neste exemplo o ciclo ativo é de 30% por que o tempo ativo corresponde a 30% do período da onda.
No exemplo ilustrado pela figura 5, o ciclo ativo é de 80% e o motor irá girar mais rápido que no exemplo anterior.No exemplo ilustrado pela figura 5, o ciclo ativo é de 80% e o motor irá girar mais rápido que no exemplo anterior.
No LEGAL podemos controlar o ciclo ativo através do comando potência, por exemplo:
potência M1 8
Este comando faz com que o PWM que controla o motor M1 funcione com um ciclo ativo de 80%. O comando potência está melhor explicado em XXXX.
No Arduíno:
Para utilizarmos o PWM no Arduíno, podemos fazer uso do método analogWrite, o qual tem um valor de entrada que vai de 0-255, desse jeito se utilizarmos analogWrite(127), será entendido que queremos 50% dos nossos 5V que o Arduino fornece.
Para melhor entendimento a figura a baixo faz uma demonstração de como podemos utilizar o PWM no Arduíno através do método analogWrite:
Até a próxima!
M. Vitali
Fontes consultadas:
http://pt.wikipedia.org/wiki/Modula%C3%A7%C3%A3o_por_largura_de_pulso
http://arduino.cc/it/Tutorial/PWM













