Neste tutorial vamos mostrar como controlar um motor DC com Arduino e um transistor utilizando a saída PWM (Pulse Width Modulation). Para saber mais sobre PWM, clique aqui.
Com dois botões, vamos controlar o motor DC conectado ao transistor e por fim o Arduino.
A ligação feitas está demonstrada abaixo:
A bateria de 9V é apenas para indicar a tensão de alimentação. Verifique a tensão necessária do seu motor DC para não queimá-lo. O transistor utilizado neste tutorial é o BD139, mas pode utilizar outro contanto que o transistor seja NPN. Para ver o datasheet, clique aqui.
A programação para controlar o motor DC está mostrada abaixo:
int motorPin = 3;
int incPin = 4;
int decPin = 5;
int val=0;
int incButton = LOW;
int decButton = LOW;
void setup()
{
pinMode(incPin, INPUT);
pinMode(decPin, INPUT);
pinMode(motorPin, OUTPUT);
analogWrite(motorPin, 0);
Serial.begin(9600);
}
void loop()
{
incButton = digitalRead(incPin);
decButton = digitalRead(decPin);
if (incButton == HIGH)
{
val++;
}
if(decButton == HIGH)
{
val=val-1;
}
Serial.println(val);
delay(100);
analogWrite(motorPin, val);
}
Ao apertar o botão da porta digital 4, o motor irá girar mais rápido. E ao apertar o botão da porta digital 5, o motor irá girar mais devagar.
E é isso! Esperamos que tenha gostado! Se tiver dúvidas sobre o tutorial, poste aqui enste blog! Para sugestões de tutoriais, clique aqui! Para ver outros tutoriais e projetos desenvolvidos pela equipe LdG e por outros garagistas, clique aqui e aqui, respectivamente! Até a próxima!
Referências:
http://www.labdegaragem.org/loja/index.php/29-arduino.html
http://www.labdegaragem.org/loja/index.php/32-kits/starter-kit-com-...
http://www.datasheetcatalog.net/pt/datasheets_pdf/B/D/1/3/BD139.shtml
http://labdegaragem.com/profiles/blogs/tutorial-o-que-e-como-utiliz...
Comentar
Pessoal, eu preciso controlar um motor DC de 24v 5A porém necessito que a velocidade seja controlada através de um potenciômetro, pois preciso de diversas faixas de velocidade nesse motor.
Minha dúvida é se posso usar este circuito no motor de 24v 5A DC (claro que alimentando o motor com 24v) e quais seriam as alterações necessárias no cirucito e no código para que e possa variar a velocidade com um potenciômetro ( de 0 a 100% da velocidade do motor).
Comentário de Thiagoor em 26 janeiro 2013 às 11:28 Descobri meu erro, eu estava ligando da fonte de 12V para o transistor até a ventoinha, e eu deveria ligar os 12V direto na ventoinha para depois ligar no transistor.
Valeu!
Comentário de Thiagoor em 25 janeiro 2013 às 15:55
Comentário de Edson E.S. (softelli) em 25 janeiro 2013 às 0:49 Tente fazer uma curva de subida no PWM, durante a partida, isto é, no microcontrolador, faça uma rampa para retardar a partida em 10 segundos.
Depois dá uma pesquisada em outro transistor de uso geral
http://www.datasheetcatalog.net/pt/datasheets_pdf/2/N/3/9/2N3904.shtml
Comentário de Edson E.S. (softelli) em 25 janeiro 2013 às 0:43 Thiagoor,
A fonte pode ter muitos amperes a mais do que o dispositivo nela utilizado (assim como uma caixa d`água tem mais do que uma torneira).
Eu disse abaixo que o BC548 suportava 200mA, mas é de pico (na partida, talvez...) não é de corrente constante. Ele suporta 100mA de corrente constante. http://www.datasheetcatalog.org/datasheets/150/128424_DS.pdf
Além disso, há uma diferença de potencial (ddp) no transistor bipolar quando saturado (ele não funciona exatamente como uma chave, pois não fornece toda a tensão da fonte para a carga).
Parece-me que o seu BC548 está trabalhando no limite (P=U*I), se o consumo da ventoinha é o mesmo e a tensão é baixada durante a saturação do transistor, então a corrente tende a subir além do limite do transistor.
Há divergências quanto ä corrente constante suportado no coletor desse transistor:
Comentário de Thiagoor em 24 janeiro 2013 às 23:58 Minha fonte tem 12V e 0,25A e estou tentando utilizar um BC548 para controlar uma ventoinha de 12V e 0,11A.
Quando ligo a ventoinha direto na fonte ela roda em sua velocidade máxima, como esperado, mas se eu coloco o transistor ela perder potencia e roda mais devagar, e o transistor esquenta muito.
Imaginei que esquentasse por conta dos 0,05A a mais, mas porque não roda na velocidade máxima?
Comentário de Edson E.S. (softelli) em 24 janeiro 2013 às 10:51
Comentário de Edson E.S. (softelli) em 24 janeiro 2013 às 10:46
Comentário de Thiagoor em 23 janeiro 2013 às 23:47 Para um motor de 12V e 0,11A, qual transistor eu preciso?
O BC548 está correto?
Obrigado!
Comentário de Gessé Haroldo Marietto Junior em 7 outubro 2012 às 19:30 Pessoal, estou tentando fazer com que o arduino de partida em um motor de 5kW via internet (android). Já tenho o arduino com a placa ethernet, mas essa parte de programação me complica. Poderiam me dar uma dica de como posso fazer essa programação? Peguei um tutorial sobre fazer o layout via appinventor no android, mas a duvida é na linguagem C.
Obrigado
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$ 150,00
Ou em até 18x de
R$ 10,00
Por: R$ 195,00
Ou em até 18x de
R$ 13,00
(ADS1102C) - 100MHz - 2 Canais
Por: R$ 1920,00
Ou em até 18x de
R$ 127,96
© 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)