quinta-feira, 17 de janeiro de 2013

Arduino - Controle de motor de passo

Tudo bom pessoal ?  Hoje vou mostrar como controlar a velocidade de um motor de passo , geralmente encontrado em impressoras por ter uma maior precisão na sua rotação .
Voce vai precisar de :
1 Potenciometro de 10KΩ
1 motor de passo bipolar (encontrado em impressoras
1-arduino
Jumpers variados
Vamos a montagem .
O potenciomentro possui 3 terminais , conforme voce gira o eixo , ele altera a resistencia nesse pino central .
um pino deve ser ligado ao GND , o central a porta analogica A0 e o outro pino ao 5v .


No video eu digo que não tem importância a ligação dos fios , mas tem importância sim , como voce pode ver na imagem ao lado , cada par de fios é a ligação de uma bobina



O motor é simples , os cabos são aos pares (preto e marrom )(amarelo e laranja ) .
é apenas liga-los ao arduino , do pino 8  ao pino 11 .

Feita as ligações , agora é programar o arduino .







#include <Stepper.h>

const int stepsPerRevolution = 200;  

Stepper myStepper(stepsPerRevolution, 8,9,10,11);            

int stepCount = 0;  
void setup() {
  Serial.begin(9600);
}

void loop() {
  // read the sensor value:
  int sensorReading = analogRead(A0);
  // map it to a range from 0 to 100:
  int motorSpeed = map(sensorReading, 0, 1023, 0, 100);
  // set the motor speed:
  if (motorSpeed > 0) {
    myStepper.setSpeed(motorSpeed);
    // step 1/100 of a revolution:
    myStepper.step(stepsPerRevolution/200);
    Serial.println(motorSpeed);
  } 
}







32 comentários:

  1. O video ta errado, ta mostrando o de sensor de estacionamento

    ResponderExcluir
    Respostas
    1. Opa , enviei o video errado , já estou corrigindo . Muito obrigado por acompanhar o blog !

      Excluir
  2. Não tem problema em ligar os fios diretamente? Tenho medo de queimar meu Arduino fornecendo uma corrente maior que os 40mV.

    ResponderExcluir
    Respostas
    1. não tem problema , o arduino irá fornecer 5V por 40mA para as bobinas do motor , o maximo que pode acontecer , se voce estiver ligando um motor de voltagem maior, 12v por exemplo é o motor não girar ou só fazer um barulhino das bobinas

      Excluir
  3. Consigo montar com este arduino controle para 2 motores de passo e colocar em cada motor realimentação para confirmar a sua posição? Esta realimentação é feita por potenciometro de alta precisão (potenciometro gira 10 voltas, para mim é suficiente).

    ResponderExcluir
    Respostas
    1. Sim , consegue , irá usar 8 portas digitais e duas entradas analogicas .
      No codigo ficaria :

      ..
      Stepper myStepper(stepsPerRevolution, 2,3,4,5);
      Stepper myStepper2(stepsPerRevolution, 6,7,8,9);
      ....

      e o resto igual para um segundo motor .

      Excluir
  4. Não tem como fazer uma amplificação de tensão por redução de corrente para conseguir 12V

    ResponderExcluir
    Respostas
    1. caso queira , dá pra usar um optoacoplador ou transistor para fazer o acionamento do rele com bobina de 12v .. ou compre um rele com bobina de 5V

      Excluir
  5. Caso eu queira usar o motor mas sem o potenciometro. o que deveria ser alterado no programa ?

    ResponderExcluir
  6. Boa tarde,
    Sou leigo e estou estudando um pouco sobre eletrônica. Gostaria de saber se é
    possível controlar a velocidade do motor de passo de uma leitora de cd.

    ResponderExcluir
  7. Que modelo de arduíno você usou ?

    ResponderExcluir
    Respostas
    1. Victor, meus motores tem de 2 e tem uns de 7 fios outro de 5, como faço para saber qual vou utilizar ?

      Excluir
  8. ola amigo?gostaria de fazer um controle de motor de passo usando o arduino e uln2003 e potenciometro e dois botoes.um para direita e outro para esquerda?onde consigo este codigo e o esquema?se poder me ajudar fico grato?cone_barbosa@hotmail.com

    ResponderExcluir
  9. Bom dia, tenho o Arduino Duomilenove, tem como usar 2 ou mais motores de passo? Sendo que cada um deles realize uma tarefa diferente?
    Qualquer coisa: pablofrandoloso@hotmail.com
    Obrigado

    ResponderExcluir
  10. Legal, gostei do blog, vou favoritar.

    sucesso pra você.

    ResponderExcluir
  11. Olá Victor! Tenho uma base que se movimenta por um motor de passo e usa um controlador A4988. O movimento do motor se dá apertando um botão. Consigo trocar este botão por um Joystick Arduino simples somente para eu poder ter mais controle do motor.

    Obrigado e parabéns pelo blog!

    ResponderExcluir
  12. Muito bom, parabéns pelo blog
    Tenho uma pergunta: como se pode amplificar a corrente na saída do arduino para um motor de 12 Volts ou mais?
    Obrigado

    ResponderExcluir
    Respostas
    1. sim , voce vai precisar de um driver , que pode ser comprado ou montado com aluns transistores

      Excluir
  13. Outra pergunta amigo: Como ficaria o código para, ao invés de um potenciômetro, usar um sensor, digamos, de presença - sendo que, ao se passar na frente do sensor, o motor rode X graus ou usasse uma chave de fim de curso e após, o motor volte a sua posição original. Obrigado

    ResponderExcluir
    Respostas
    1. Com um IF / Else vc resolve isso ,só pegar o sinal digital do sensor e aplicar ao motor

      Excluir
  14. Podes, por gentileza, responder essa última pergunta? Obrigado

    ResponderExcluir
  15. oi alguem pode me ajudar como faço a ligaçao de um motor com 4 fios e um deles e azul e 3 cinza?

    ResponderExcluir
    Respostas
    1. Usa um Led qualquer e vai fazendo testes; encosta (enrola) um fio do motor em uma perna do Led e outro fio na outra perna do Led e roda o motor com a mão, se acender o Led, vc achou o par correspondente a uma bobina, o outro par de fios é da outra bobina do motor. Enquanto não acender o Led, vai mudando a posição dos fios. Abçs

      Excluir
  16. Este comentário foi removido pelo autor.

    ResponderExcluir
  17. Olá Victor. Poderia tirar uma dúvida? Estou tentando fazer funcionar um motor de passo Nema 34 com um driver CNC modelo DQ860MA ligado à um ARDUINO UNO. Antes de comprar o Motor de Passo Nema fiz alguns testes com micro motores de passo (aeromodelo) e fucionou perfeito... já com o driver como interface não consegui descobrir o controle de velocidade direção e passo ...

    ResponderExcluir
  18. tenho um motor de 40 ohms vai funcionar?

    ResponderExcluir
  19. Thank you, I have just found the same stepper motor :) so it helped. Thanks!

    ResponderExcluir