Seu Curso

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

Ligando, desligando e controlando a velocidade de motores DC com o Arduino

Imprimir
Avaliação do Usuário: / 24
PiorMelhor 



O primeiro passo, ou o último, dependendo do ponto vista, para montar um robô com rodas é saber controlar os motores para movimentá-lo. Com o Arduino isso é relativamente simples e necessita de poucas peças e componentes eletrônicos baratos.

Porém é preciso entender que o Arduino não possui corrente nem potência suficiente em seus pinos para controlar um motor DC, corrente contínua, por isso nem pense em ligar qualquer motor diretamente ao seu Arduino, pois isso pode “mata-lo”.

Vamos ao que interessa, você precisará, além de um Arduino, dos seguintes componentes:

Um suporte para pilhas AA, que alimentará o motor com 3V:




Um motor DC 3V, você pode arrumar um em uma loja especializada ou em um brinquedo velho, que não esteja sendo mais usado, como no meu caso:



Um transistor TIP 102:



Note que o esquema de pinos do TIP 102 é:

Sendo, B – pino Base, C – pino Coletor e E – pino Emissor.

Um resistor de 1K ohm:

Prepare alguns fios finos e rígidos para ajudar nas ligações e siga o esquema abaixo para as ligações entre os componentes:

Imagem de todos os componentes ligados em uma placa de ensaio (proto-board):

Agora eis o código em linguagem C para o Arduino:


 
void setup() { 
 pinMode(3, OUTPUT); 
 pinMode(13, OUTPUT); 
}


 
void loop() {
 digitalWrite(3, HIGH);
 digitalWrite(13, HIGH); 
 delay(1000); 
 digitalWrite(3, LOW); 
 digitalWrite(13, LOW); 
 delay(1000); 
}

 

Simplesmente acionamos o pino 3 por um segundo e depois desligamos por mais um segundo, fazemos o mesmo com o pino 13 para que o LED nele embutido acenda enquanto o motor estiver em funcionamento.

Um pequeno vídeo com o projeto em funcionamento:

 

Com esse mesmo esquema é possível também controlar a velocidade do motor, usando a escrita analógica (analogWrite) ao pino, dessa forma podemos controlar a voltagem do pino 3 em PWM, modificando assim a velocidade do motor.

Para exemplificar o controle de velocidade tente o seguinte código em linguagem C:

 
void setup() { 
 pinMode(3, OUTPUT); 
}
 


void loop() {
 analogWrite(3, 75); 
}

 

Altere os valores de analogWrite(3,75) para verificar a mudança de velocidade do motor. Apenas atente-se para que o primeiro parâmetro é o número do pino PWM e o segundo o valor decimal da voltagem desejada sendo de 0V, com o valor zero, até 5V, com o valor 255.

Podemos considerar, finalmente, alguns pontos:

1. Não foi verificado aquecimento no TIP102, nem em quaisquer outros componentes;

2. O consumo dependerá do requerido pelo motor do seu projeto e isso influenciará na durabilidade das pilhas;

3. Cuidado com a amperagem necessária para acionar o motor para não danificar o seu Arduino;

Comentários  

 
+4 #9 1 motor dc e 1 motor de passo em sequencia e nao juntosNelson Santos 17-05-2014 16:14
Amito,
Quanto vc me cobra pra fazer um código pra eu usar em uma shield l293d 2 motores.
sendo 1 DC 24v e 1 potor de passo.
O motor dc funciona 10s e para por 5 seg e em seguida ative o motor de passo. e esse ciclo continue.
Citar
 
 
+1 #8 TIP105Fernando Bryan Frizzarin 19-03-2014 19:16
Acredito que a substituição possa sim ser feita.
Citar
 
 
+2 #7 motor e arduinopeter 19-03-2014 14:01
Ola!Gostaria de saber se posso ligar o motor com um TIP105 ao invés do 102.
Citar
 
 
+2 #6 Motor e arduinopeter 19-03-2014 11:00
Olá!!Posso fazer esta ligação utilizando o TIP105 no lugar do TIP102, e o resistor posso ligar o de 10k?
Citar
 
 
+2 #5 Motor sem transistorFernando Bryan Frizzarin 25-11-2013 16:10
Robsongomes você pode usar outros transistores, mas sem não dá, o Arduino não aguentaria.
Citar
 
 
+3 #4 Posso ligar o motor dc sem o transístor tip 102?Robsongomes 22-11-2013 03:30
Posso ligar o motor dc sem o transístor tip 102?
é que estou meio sem tempo pra terminar o projeto e essa peça irá demorar pra chagar.
Citar
 
 
+1 #3 Girar nos dois sentidosFernando Bryan Frizzarin 15-11-2013 17:23
Citando TiagoLanconi:
cara como faço pra esse motor girar no dois sentidos preciso montar um esquema assim ate segunda feira sera que vc pode me ajudar?
obrigado.


Tiago para girar nos dois sentidos você precisará de uma ponte H ou o componente mostrado em http://www.seucurso.com.br/index.php?option=com_content&view=article&id=103:dando-vida-ao-chassi-tg007-da-tato-equipamentos-eletronicos&catid=901:arduino&Itemid=65
Citar
 
 
+1 #2 servo motorTiagoLanconi 15-11-2013 15:44
cara como faço pra esse motor girar no dois sentidos preciso montar um esquema assim ate segunda feira sera que vc pode me ajudar?
obrigado.
Citar
 
 
+4 #1 Motor e arduinoEngrod 18-06-2013 18:29
Muito bom! Sua explicação fui muito útil para mim!! hehe
Quero usar seu conceito para fazer uma esteira transportadora, mas quero só dar um "Start" na tela e ela começar a girar, dando "Stop" ela para. Você poderia me auxiliar???
Citar
 

Adicionar comentário


Código de segurança
Atualizar

You are here: