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

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

Tags: arduino, largura, modulação, pulso, pwm, tutorial

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 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?

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 ..

Publicidade

Convide um amigo para o Lab!

 Loja Lab de Garagem

Novo!

Garagino Rev1

Por: R$ 29,00

Ou em até 6x de

R$ 5,18 

Servo - Motor Grande - 360º

Por: R$ 57,00

Ou em até 13x de

R$ 5,02

 

Starter Kit

(com Arduino Uno REV3 Original)

Por: R$  149,00

Ou em até 18x de

R$ 9,93

Kit Completo de Ferramentas - Avançado

Por: R$ 540,00

Ou em até 18x de

R$ 35,99

© 2013   Criado por Marcelo Rodrigues.

Badges  |  Relatar um incidente  |  Termos de serviço