Como utilizar PWM no Arduino

Olá a todos!

Antes de começar com esse novo post, gostaria de fazer um agradecimento especial ao designer (e amigo) Marcio Miranda autor do novo desenho da capa do Control-aut (ficou lindo!). Falando nisso, perceberam que o blog possui um novo domínio?

imagesHoje vamos falar sobre o que é e como utilizar o PWM.

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:

pwm

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:

pwm

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:

pwmmotor

 

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.

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

 

Estou preparando mais um post sobre o MSP-430, só que dessa vez com display de LCD. Nos próximos dias, como eu já estou oferecendo à um tempo, aparecerão aqueles projetos do carrinho controlado e do motor de passo controlado por 8051. That’s all, folks!

Anúncios

4 ideias sobre “Como utilizar PWM no Arduino

  1. Guti

    esse exemplo é o mais tranquilo de ser feito, ate ja fiz aqui, só que estou tentando controlar o PWM através da serial, ou seja: envio os valores e altero o controle PWM deveria ser simples, mas to fazendo alguma merda aqui que não me deixa executar o do modo que eu quero… seria pra eu enviar 100 e armazenar na variável que escreveria na porta PWM 9 o valor 100 (quase 50% do ciclo ativo). mas não rola…

    Resposta
    1. Henrique Autor do post

      Eu também tive dificuldades quando tentei fazer algo parecido. No post do protótipo do túnel de vento, desisti de fazer o controle utilizando o Arduino, justamente por causa desse problema. Aí como tínhamos as placas de aquisição à disposição, resolvemos utilizá-las. A interface com o Labview facilita muito nesse aspecto com aplicações em tempo real, especialmente controle com PWM.

      Resposta
  2. Ricardo dos Santos

    Você pode me ajudar em um projeto para controlar a potencia de um fogão elétrico através do arduino ? No lugar do potenciômetro colocarei botões para controlar a temperatura no mínimo, médio e máximo.

    Resposta

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s