Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Programa : Driver motor de passo A4988
- // Autor : Arduino e Cia
- #include <AccelStepper.h>
- // MOTOR 1
- int velocidade_motor1 = 100;
- int aceleracao_motor1 = 100;
- int sentido_horario1 = 0;
- int sentido_antihorario1 = 0;
- // MOTOR 2
- int velocidade_motor2 = 100;
- int aceleracao_motor2 = 100;
- int sentido_horario2 = 0;
- int sentido_antihorario2 = 0;
- int numero = 0;
- // Definicao pino ENABLE
- int pino_enable = 10;
- // Definicao pinos STEP e DIR
- AccelStepper motor1(1,12,11 );
- AccelStepper motor2(1,9,8 );
- void setup()
- {
- Serial.begin(9600);
- pinMode(pino_enable, OUTPUT);
- // Configuracoes iniciais motor de passo 1
- motor1.setMaxSpeed(velocidade_motor1);
- motor1.setSpeed(velocidade_motor1);
- motor1.setAcceleration(aceleracao_motor1);
- // Configuracoes iniciais motor de passo 2
- motor2.setMaxSpeed(velocidade_motor2);
- motor2.setSpeed(velocidade_motor2);
- motor2.setAcceleration(aceleracao_motor2);
- Serial.println("Digite 1, 2, 3, 4 e 5 e clique em ENVIAR...");
- }
- void loop()
- {
- // Aguarda os caracteres no serial monitor
- if (Serial.available() > 0)
- {
- numero = Serial.read();
- {
- if (numero == '1')
- {
- Serial.println("Numero 1 recebido - Girando motor1 sentido horario e motor2 sentido antihorario, FRENTE");
- digitalWrite(pino_enable, LOW);
- sentido_horario1 = 1;
- sentido_antihorario1 = 0;
- sentido_horario2 = 0;
- sentido_antihorario2 = 1;
- }
- if (numero == '2')
- {
- Serial.println("Numero 2 recebido - Girando motor1 sentido anti-horario e motor2 sentido horario, RÉ");
- digitalWrite(pino_enable, LOW);
- sentido_horario1 = 0;
- sentido_antihorario1 = 1;
- sentido_horario2 = 1;
- sentido_antihorario2 = 0;
- }
- if (numero == '3')
- {
- Serial.println("Numero 3 recebido - Girando motor1 sentido horario e motor2 parado, VIRA DIREITA");
- digitalWrite(pino_enable, LOW);
- sentido_horario1 = 1;
- sentido_antihorario1 = 0;
- sentido_horario2 = 0;
- sentido_antihorario2 = 0;
- motor2.moveTo(0);
- }
- if (numero == '4')
- {
- Serial.println("Numero 4 recebido - motor1 parado e motor2 sentido hoorario, VIRA ESQUERDA");
- digitalWrite(pino_enable, LOW);
- sentido_horario1 = 0;
- sentido_antihorario1 = 0;
- motor1.moveTo(0);
- sentido_horario2 = 1;
- sentido_antihorario2 = 0;
- }
- if (numero == '5')
- {
- Serial.println("Numero 5 recebido - Parando motor1 e motor2...");
- sentido_horario1 = 0;
- sentido_antihorario1 = 0;
- sentido_horario2 = 0;
- sentido_antihorario2 = 0;
- motor1.moveTo(0);
- motor2.moveTo(0);
- digitalWrite(pino_enable, HIGH);
- }
- }
- }
- // Move o motor no sentido horario
- if (sentido_horario1 == 1)
- {
- motor1.moveTo(10000);
- }
- // Move o motor no sentido anti-horario
- if (sentido_antihorario1 == 1)
- {
- motor1.moveTo(-10000);
- }
- if (sentido_horario2 == 1)
- {
- motor2.moveTo(10000);
- }
- // Move o motor no sentido anti-horario
- if (sentido_antihorario2 == 1)
- {
- motor2.moveTo(-10000);
- }
- // Comando para acionar o motor no sentido especificado
- motor1.run();
- motor2.run();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement