Como Ligar as Coisas

Motor de Passo + ULN2003 – Como ligar?

Escrito por: ­ 6 de set de 2017 ­ 2.648 views

Neste artigo veremos:

O que você vai precisar

1 Motor de Passo (Stepper Motor), usamos o 28BYJ-48 de 5v
1 Placa com ULN2003 ( a nossa é da LC Eletronics) ou o próprio chip
Fios (jumpers)


 

A Conexão

Para esse modelo de motor (6 fios), usamos as entradas IN1, IN2, IN3 e IN4 que se conectam a pinos digitais do Arduino (Exemplo: 8, 9, 10 e 11)
Precisa conectar o Vcc ao 5volts do Arduino e o Gnd ao Gnd do Arduino. 

A programação

Exemplo 1.

Precisa da Biblioteca AccelStepper.h (não vem com o Arduino)

#include <AccelStepper.h>
#define HALFSTEP 4  //Half-step mode (8 step control signal sequence)

// Motor pin definitions
#define mtrPin1  8     // IN1 on the ULN2003 driver 1
#define mtrPin2  9     // IN2 on the ULN2003 driver 1
#define mtrPin3  10     // IN3 on the ULN2003 driver 1
#define mtrPin4  11     // IN4 on the ULN2003 driver 1

AccelStepper stepper1(HALFSTEP, mtrPin1, mtrPin3, mtrPin2, mtrPin4);

void setup() {
  stepper1.setMaxSpeed(1000.0);
  stepper1.setAcceleration(100.0);  //Make the acc quick
  stepper1.setSpeed(300);
  stepper1.moveTo(4096/2);  //Rotate 1 revolution
}

void loop() {

  //Change direction when the stepper reaches the target position
  if (stepper1.distanceToGo() == 0) {
    stepper1.moveTo(-stepper1.currentPosition());  //Reverse motor
  }
  stepper1.run();  //Start
}

Exemplo 2

Biblioteca Original do Arduino (modificada)

#include <Stepper.h>

const int stepsPerRevolution = 32;  // Este número funcionou bem com nosso motor (pode ser 32, 16 ou 8

// initialize the stepper library on pins 8 through 11:Aqui precisamos mudar a sequencia dos pinos, trocando o 9 pelo 10.
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);

void setup() {
  // define a velocidade do motor de passo:
  myStepper.setSpeed(1000);
}

void loop() {
  // faz uma revolução (1 volta) no sentido horário
  myStepper.step(2048);
  delay(500);
  
  // faz uma revolução (1 volta) no sentido contrário
  myStepper.step(-2048);
  delay(500);
}

Mixly

 

print
Previous Post Next Post

Você também pode gostar / You Might Also Like

2 Comments

  • Reply anapaula_huguenim 26 de out de 2018 at 17:16

    Eu quero que o motor gire de um lado para o outro….quando eu digito os comandos em avançados funciona mas qd eu coloco no bloco naum funciona…eu queria que funcionasse no bloco..

    Anexo - Attachment

    • Reply Edson Sidnei Sobreira 30 de out de 2018 at 23:10

      Olá Ana Paula.
      Você poderia nos enviar o código utilizado que deu certo pra você?
      Na imagem enviada: Qual é o motivo da contagem de 1 até 2 para cada passo?

    Leave a Reply

    Show Buttons
    Siga-nos no Facebook
    Siga-nos no Twitter
    Siga-nos no Google Plus
    Siga-nos no Pintrest
    Siga-nos no Youtube
    Siga-nos no Scratch
    Hide Buttons
    Top
    HackEduca