quarta-feira, 30 de janeiro de 2013

Controlando um Motor de Passo - MotorKnob


Exemplo incluído na biblioteca padrão do Arduino e de domínio público.

Imagem 1

Imagem 2

Ajustei o código fonte para o número de passos do motor utilizado: 64 passos.
O código pode ser encontrado em - File / Examples / Stepper / MotorKnob.

código fonte:


Ligação/Wiring:

As duas extremidades do potenciômetro são conectadas ao +5v e Ground (terra) da placa Arduino. O pino central conecta-se ao A0 (entrada análoga). Com isso o programa será capaz de perceber a posição do potenciômetro pela tensão apresentada na entrada A0 (que irá variar de 5V a 0V).

Conectar também o terra e +5V ao Driver. Os pinos in1, in2, in3 e in4 devem ser ligados aos pinos digitais 8, 9, 10 e 11 do arduino nesta mesma ordem.

O Driver L298N serve tanto para controlar 2 motores comuns de corrente contínua com possibilidade de utilizar uma tensão maior do que os +5V fornecidos pelo Arduino, ou controlar 1 único motor de passo. A ligação do motor de passo (28BYJ48) foi baseada no seguinte diagrama abaixo:

Imagem 3

Assim, a conexão deve ser (como pode ser visto na Imagem 1):

  • Vermelho: saída +5V do driver
  • Laranja e Rosa: saída MOTORB
  • Amarelo e Azul: saída MOTORA

Com toda a fiação pronta, é só fazer o upload do código e girar o potenciômetro para observar o motor de passo acompanhar o movimento. A velocidade de reação que utilizei é um pouco baixa mas pode ser aumentada com facilidade.

10 comentários:

  1. meu querido. segui tudo como vc fez. mas ele so gira pra um lado. sabe me dizer o que poder ser?
    to usando um potenciometro de 50k, pode ser isso?

    ResponderExcluir
  2. olá itiuidi, respondi lá no próprio vídeo do youtube, que tu tinha feito a mesma pergunta... qualquer dúvida pergunta de novo! falou!

    ResponderExcluir
  3. amigo gostaria de montar um progeto desse mas com dois botoes?quando precionado ele girase para um lado dirito e outro para o lada esquerdo com um potenciometro?se voçe tiver esse codigo o esquema de ligaçao fico grato?cone_barbosa@hotmail.com

    ResponderExcluir
  4. Marcone Barbosa, o que você poderia fazer era criar um boleano no código, um tipo de variável que guardaria a informação de qual botão está sendo pressionado - o direito ou o esquerdo - e usar esse valor como um multiplicador no avanço do movimento do motor, ou seja, se o valor for 1 o motor se movimenta no sentido positivo, se for -1 o motor se movimentará no outro sentido e com a velocidade sempre controlada pelo potenciômetro instalado se for o desejado.

    ResponderExcluir
  5. Boa tarde, gostaria de uma ajuda, Eu preciso controlar 2 motores DC e 2 motores de passo cada um dos motores seria acionado por um potenciômetro e todos de forma independente ! Pode me ajudar ?

    ResponderExcluir
    Respostas
    1. Olá Marinheiro! Com uma placa dessas que eu utilizei aí você conseguiria controlar os dois motores DC intependemente. Para controlar os motores de passo eu recomento utilizar o EasyDrive (são os controladores que eu ando usando desde que essa placa da foto queimou... heheh).
      Você precisaria entao de:
      uma http://www.dx.com/p/l298n-stepper-motor-driver-controller-board-for-arduino-120542?utm_rid=34183231&utm_source=affiliate#.VXcejs9Viko ,
      dois EasyDriver para controlar os teus dois motores de passos, e por fim os 4 motores e 4 potenciômetros.

      Excluir
  6. Eu fiz tudo certinho, mas o motor esta rodando para um lado só

    ResponderExcluir
  7. Eu fiz o mesmo procedimento,entretanto o unico potenciometro disponivel no momento é de 10k. Seria por isso que não funcionou ?

    ResponderExcluir