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: 40746

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 Fábio de Souza Guedes em 15 fevereiro 2015 às 8:19

Eu utilizei o TIP122 com um motor dc de 5V e funcionou como o esperado, agradeço as dicas, muito bom.

Comentário de Euclides Franco de Rezende em 14 setembro 2014 às 18:37

Paulo. É exatamente isso que esta montagem (soft + hard) faz...

Comentário de paulo afonso guedes trindade em 14 setembro 2014 às 18:22

Como mudar esse código de forma que: Ao arduino receber um pulso em uma porta analogica qualquer, ele habilite a saida PWM, mostrando neste instante, uma quadrada  com largura controlada pela posição do potenciometro.

Agradeço que possa ajudar.

Comentário de maXImus Sales em 1 dezembro 2012 às 19:33

O transístor é um MOSFET, pode ser um FQP50N06L, o resistor é um de 220R (Homs), o potenciômetro pode ser um de 5 K.

Comentário de Marcos Vinícius Cândido em 21 novembro 2012 às 22:35
Ta mesmo
Comentário de Euclides Franco de Rezende em 21 novembro 2012 às 22:19

Tá lá escrito "FET" nele.

Comentário de Marcos Vinícius Cândido em 21 novembro 2012 às 12:09

Na verdade, parece ser um regulador LM7805!!!!!!!!

Comentário de Euclides Franco de Rezende em 21 novembro 2012 às 10:39

Vermelho vermelho Marrom = 220 Ohms?

O transistor pode ser qq. FET de baixa tensão de gate (será que acha algum de 9 V??? Ou menos???) e que suporte 9 Volts.

Comentário de Marcos Vinícius Cândido em 21 novembro 2012 às 9:35

Que transistor  e resistor foi utilizado?

Comentário de Mario de Oliveira em 30 agosto 2012 às 0:05

Seria o TIP 122?

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2017   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço