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
Comentar
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
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 ..
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
Por: R$ 29,00
Ou em até 6x de
R$ 5,18
Por: R$ 57,00
Ou em até 13x de
R$ 5,02
(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.
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)