Seu Curso

  • Increase font size
  • Default font size
  • Decrease font size

Acionando motores de passo com o Arduino

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

 

Motores de passos são equipamentos interessantes uma vez que podemos determinar a velocidade de a quantidade de graus que desejamos que eles virem.

 

Porém no quesito velocidade não são tão eficientes, uma vez que girando muito rápido, devido a inércia do rotor eles podem girar mais do que o desejado, perdendo passos, ou seja, devem ser utilizados em baixas velocidades.

Você pode encontrar motores de passo em vários lugares: lojas na Internet, impressoras e drives velhos.

Existem vários tipos, o que vamos usar é um motor de passos de 6 fios, comprado na Internet. Esse aqui:

Como comprei o motor na Internet junto veio a descrição dos fios, sendo:

Verde – bobina 1

Marrom – bobina 2

Amarelo – bobina 3

Vermelho – bobina 4

Preto (2 fios) – comum

Caso você use um motor usado, obtido de uma impressora ou scanner, por exemplo, para identificar o fio comum use um multímetro e encontre o fio com a menor resistência entre todos, ele será o comum.

Também precisaremos de uma fonte de alimentação para o motor, já que o Arduino é alimentado com os 5V da porta USB e o motor de passo, invariavelmente, trabalha com 12V. Você deve escolher uma fonte que forneça como saída no máximo 500mA, devido a limitação do circuito integrado que usaremos, descrito mais abaixo. Identificar isso numa fonte hoje em dia é fácil, pois esse tipo de informação vem impresso nela. A que vou usar fornece 12V de saída à 200mA:

Para controlar o motor precisamos de um driver para motor de passo sendo que o CI ULN2003 atende bem a essa necessidade. O CI que usarei seja exatamente esse e que aparece na imagem abaixo:

À esquerda do CI temos os pinos de 1 até 8, de cima para baixo e à direita temos os pinos 9 até 16, de baixo para cima. À esquerda temos as entradas de dados e à direita às saídas. Lembre-se que a saída suporta no máximo 500mA!

Ligaremos o CI obedecendo ao seguinte esquema:

Sendo:

A – pino 3 do Arduino

B – pino 4 do Arduino

C – pino 5 do Arduino

D – pino 6 do Arduino

1 – Bobina 1 do motor

2 – Bobina 2 do motor

3 – Bobina 3 do motor

4 – Bobina 4 do motor

5 – ao comum do motor

12V – ao positivo da fonte

GND – ao negativo da fonte

Zener – Diodo Zener de 12V 0,5W, como o da imagem abaixo:

Vamos montar tudo em uma placa de ensaio (proto-board):

Tudo ligar e verificado, agora é hora de desenvolvermos nosso programa em C para o Arduino:

 

void setup()
{
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
}
void loop()
{
digitalWrite(3,HIGH);
delay(100);
digitalWrite(3,LOW);
delay(1 00);
digitalWrite(4,HIGH);
delay(100);
digitalWrite(4,LOW);
delay(100);
digitalWrite(5,HIGH);
delay(100);
digitalWrite(5,LOW);
delay(100);
digitalWrite(6,HIGH);
delay(100);
digitalWrite(6,LOW);
delay(100);
}

 

Com esse código damos um passo completo de cada vez, ou seja, energizamos uma bobina a cada vez.

 

 


Podemos melhorá-lo para dar meio passo, ou seja, energizar as bobinas aos pares, assim o motor girará mais suavemente:

 

 


 
void setup()
{
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
}
void loop()
{
digitalWrite(3,HIGH);
delay(100);
digitalWrite(4,HIGH);
delay(100);
digitalWrite(3,LOW);
delay(1 00);
digitalWrite(5,HIGH);
delay(100);
digitalWrite(4,LOW);
delay(100);
digitalWrite(6,HIGH);
delay(100);
digitalWrite(5,LOW);
delay(100);
digitalWrite(3,HIGH);
delay(100);
digitalWrite(6,LOW);
}

 

Alguns pontos nesse projeto a serem considerados:

1. Para inverter a rotação, basta inverter a sequencia da energização das bobinas;

2. Há um aquecimento no CI ULN2003, portanto é preciso uma dissipação desse calor;

3. Existem também aquecimento no motor, quando maior o tempo de uso maior a geração de calor;

4. No caso de uma montagem autônoma será preciso de uma fonte 12V para o motor independente da alimentação 5V para o Arduino;

 

BOAS IDEIAS E BOM DIVERTIMENTO!

 

LAST_UPDATED2  

Comentários  

 
0 #19 Arduino, motor dc e joystick.Andréfn 04-06-2014 20:53
Como podemos comandar um motor DC com um joystick utilizando o arduino?
Citar
 
 
+2 #18 DIODO ZENERGustavo Gerrard 13-12-2013 07:19
Bom Dia, Des[censored]lp e a minha ignorância, eu sou programador e mecânico, mas na parte de eletrônica eu não sei nada, a respeito do Diodo Zener, você me disse que ele serve de proteção, mas ele simplesmente nao serve para transformar corrente Alternada em Continua?e seu transformador já é Corrente Continua....e se eu ligar sem?o que pode acontecer?e com relação ao meu motor de 24V que vou ligar uma fonte de 24V, o diodo tem que ser também de 24V?e se eu ligar com o de 12v? não ira funcionar?ira queimar o Diodo? Abraços
Citar
 
 
-1 #17 Motor HD 4 fiosFábio Moreira 12-12-2013 12:38
Boa Tarde!
Cara estou tentando acionar um motro de ha que possui 4 fios onde um é comum, vou controlalo pelo arduino, posso fazer esse mesmo tipo de ligação do motro de pasou ou irei precisar de transistores e diodos? tem um esquema eletroicno para ajudar?
Obrigado
Citar
 
 
+2 #16 DIODOGustavo Gerrard 10-12-2013 21:37
Sobre o diodo ele servirá de proteção ao cir[censored]it o, colaborando com o isolamento elétrico. Se o seu motor for 24V será preciso olhar as especificações de todo o cir[censored]it o para ver se ele comportará a tensão e corrente necessária.
Citar
 
 
0 #15 Motor e pára-brisasFernando Bryan Frizzarin 25-11-2013 16:09
Dê uma olhada em http://www.seu[censored]rso.com.br/index.php?option=com_content&view=article&id=93:ligando-desligando-e-controlando-a-velocidade-de-motores-dc-com-o-arduino&catid=901:arduino&Itemid=65
Citar
 
 
+1 #14 MOTOR DE PARABRISArodrigo chermont 25-11-2013 14:54
http://www.youtube.com/watch?v=MGIMZAGos8Y...ESSE VIDEO FAZ ALGO PARECIDO COM O QUE QUERO...MAS TEM COMO EU FAZER SEM A FONTE EXTERNA.....EXISTE ALGUMA FONTE QUE SAIA 12V E 5 V AO MESMO TEMPO...PRA ALIMENTAR O MOTOR E O ARDUINO...AINDA NAO ENCONTREI...PELO QUE VI NO MOTOR DE PARABRISA TEM SOH 2 FIOS...COMO CONTROLA-LO...IGUAL A UM SERVO , INTERMITENTE DE 1 EM 1 SEGUNDO INFINITAMENTE???? E OUTRO PROJETO CONTROLANDO GRADUALMENTE O MOTOR, FAZENDO MOVIMENTO ATÉ UM CERTO PONTO...E NO ULTIMO MOVIMENTO...FICAR INFINITO....
Citar
 
 
+2 #13 MOTOR DE PARABRISArodrigo chermont 25-11-2013 14:43
AMIGO....TO QUERENDO FAZER UM PROJETO COM O ARDUINO, MAS COM UM MOTOR DE PARABRISA....JÁ COMPREI A "PONTE H"....COMO LIGAR O MOTOR NO ARDUINO OU FONTE...E FAZER MOVIMENTOS DE 90º DE 1 EM 1 SEGUNDO????
Citar
 
 
+2 #12 muito legalGianini 13-09-2013 08:52
Como sou iniciante na plataforma Arduino, foi de muita valia para mim, abs.
Citar
 
 
+2 #11 Muito bomJuarez 09-07-2013 21:26
Esse tutorial é fantástico, valeu.
Citar
 
 
+1 #10 [RE] Quantidade máxima de motoresFernando Bryan Frizzarin 18-04-2013 11:08
Matheus, depende da corrente de cada motor, tenha em mente que para manter seu Arduino seguro o ideal é não ultrapassar de 40mA por pino.
Citar
 

Adicionar comentário


Código de segurança
Atualizar


Translation