Tutorial: o que é e como utilizar a Modulação por Largura de Pulso ou PWM (Pulse Width Modulation) no Arduino

Adquira estes componentes na Loja do Lab de Garagem

Neste tutorial vamos explicar o que é o PWM (Pulse Width Modulation) e como utilizá-lo no Arduino.

A modulação por Largura de Pulso ou PWM é a modulação ou alteração da largura do pulso de um sinal de onda quadrada que pode ser dados à ser transmitido, um efeito de áudio ou potência fornecida ou regulada. 

O Arduino contém 6 PWM's que estão destacadas com um "~" na frente do número referente a porta digital. Com estas entradas pode-se obter resultados analógicos por meio de sinal digital.

O controle digital cria ondas quadradas com pulsos de largura variável, podendo assim dar uma tensão média à carga, por exemplo.

A figura abaixo mostra as formas de onda mais usuais:

Como podemos ver, o que muda é a largura do pulso como descrito anteriormente. Por exemplo, digitando apenas analogWrite(Pino Digital, 127) tem-se uma largura de pulso de 50% da onda quadrada. Vamos para um exemplo:

Fazendo a ligação como da figura acima. Ao girar o potenciômetro, o Led acenderá e apagará lentamente. Esta é uma aplicação o qual você pode controlar o fornecimento de potência à carga. A programação desta ligação está mostrada abaixo:

int Ledpin=9;
int analogpin=A0;
int value=0;
int x;

void setup()
{
Serial.begin(9600);
pinMode(Ledpin, OUTPUT);
}

void loop()
{
value=analogRead(analogpin);
x=map(value,0,1023,0,255);
analogWrite(Ledpin,x);
Serial.println(x);
delay(100);
}

Na programação, o Arduino recebe o valor analógico do potenciômetro, converte para o sinal de acordo com o PWM e depois manda para a porta digital "9". Agora, para ligar um motor ou componente que necessite de mais potência ou corrente, faça a seguinte ligação:

A programação é a mesma e não precisa de mudança. A bateria de 9V é apenas para exemplo, verifique a tensão de alimentação do motor ou da carga para evitar queimar seu componente. O funcionamento do circuito é idêntico, porém, ao girar o potenciômetro, o motor aumentará ou diminuirá a rotação.

E é isso! Esperamos que tenha gostado!! Se tiver dúvidas referente ao tutorial, poste aqui neste blog! Se tiver uma sugestão de tutoriais, clique aqui! Para ver outros tutoriais e projetos desenvolvidos pela equipe LdG ou por outros garagistas, clique aqui e aqui, respectivamente! Até a próxima!

Referências:

http://arduino.cc/en/Tutorial/PWM

http://arduino.cc/en/Reference/AnalogWrite

http://pt.wikipedia.org/wiki/Modula%C3%A7%C3%A3o_por_largura_de_pulso

Exibições: 51624

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Euclides Franco de Rezende em 20 julho 2012 às 9:04

É um FET (deve funcionar qualquer um que suporte a corrente do motor"zinho").

Comentário de Flavio Aparecido em 20 julho 2012 às 1:36

Legal este projeto mas qual seira o transistor que esta no motor ... alguem sabe ..

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço