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 A
- int velocidade_motorA = 50;
- int aceleracao_motorA = 50;
- int sentido_horarioA = 0;
- int sentido_antihorarioA = 0;
- // MOTOR B
- int velocidade_motorB = 50;
- int aceleracao_motorB = 50;
- int sentido_horarioB = 0;
- int sentido_antihorarioB = 0;
- int numero = 0;
- // Definicao pino ENABLE
- int pino_enable = 10;
- // Definição dos pinos de direção, frente, ré, direito, esquerdo e parar.
- int move_frente = 2;
- int move_re = 3;
- int move_direita = 4;
- int move_esquerda = 6;
- int parar_motor = 7;
- // Definicao pinos STEP e DIR
- AccelStepper motor1(1,8,9 );
- AccelStepper motor2(1,11,12 );
- void setup()
- {
- Serial.begin(9600);
- pinMode(2,INPUT);
- pinMode(3,INPUT);
- pinMode(4,INPUT);
- pinMode(6,INPUT);
- pinMode(7,INPUT);
- // MOTOR A
- pinMode(pino_enable, OUTPUT);
- // Configuracoes iniciais motor de passoA
- motor1.setMaxSpeed(velocidade_motorA);
- motor1.setSpeed(velocidade_motorA);
- motor1.setAcceleration(aceleracao_motorA);
- // MOTOR B
- pinMode(pino_enable, OUTPUT);
- // Configuracoes iniciais motor de passoB
- motor2.setMaxSpeed(velocidade_motorB);
- motor2.setSpeed(velocidade_motorB);
- motor2.setAcceleration(aceleracao_motorB);
- Serial.println("Digite 1, 2, 3, 4, 5, 6 e clique em ENVIAR...");
- }
- void loop()
- {
- // Aguarda os caracteres no serial monitor
- if (Serial.available() > 0)
- {
- numero = Serial.read();
- {
- // MOTOR A e B PARA FRENTE
- if (numero == '1' || digitalRead (move_frente) == HIGH )
- {
- Serial.println("Numero 1 recebido - Girando motorA e motorB sentido horario para frente.");
- digitalWrite(pino_enable, LOW);
- sentido_horarioA = 1;
- sentido_antihorarioA = 0;
- sentido_antihorarioB = 1;
- sentido_horarioB = 0;
- }
- // MOTOR A e B PARA TRAZ
- if (numero == '2' || digitalRead (move_re) == HIGH)
- {
- Serial.println("Numero 2 recebido - Girando motorA e motorB sentido anti-horario para traz.");
- digitalWrite(pino_enable, LOW);
- sentido_horarioA = 0;
- sentido_antihorarioA = 1;
- sentido_horarioB = 1;
- sentido_antihorarioB = 0;
- }
- // MOTOR A PARADO, MOTOR B LIGADO, VIRA PARA ESQUERDA
- if (numero == '3' || digitalRead (move_esquerda) == HIGH)
- {
- Serial.println("Numero 3 recebido - Para motorA e Liga motorB sentido horario vira a esquerda.");
- digitalWrite(pino_enable, LOW);
- sentido_horarioA = 0;
- sentido_antihorarioA = 0;
- sentido_horarioB = 1;
- sentido_antihorarioB = 0;
- }
- // MOTOR A LIGADO, MOTOR B PARADO, VIRA PARA DIREITA
- if (numero == '4' || digitalRead (move_direita) == HIGH)
- {
- Serial.println("Numero 4 recebido - Liga motorA sentido horario e DesLiga motorB virar a direita.");
- digitalWrite(pino_enable, LOW);
- sentido_horarioA = 1;
- sentido_antihorarioA = 0;
- sentido_horarioB = 0;
- sentido_antihorarioB = 0;
- }
- // DESLIGAR MOTORES
- if (numero == '5' || digitalRead (parar_motor) == HIGH)
- {
- Serial.println("Numero 5 recebido - Parando motorAAA e motorBBB...");
- sentido_horarioA = 0;
- sentido_antihorarioA = 0;
- motor1.moveTo(0);
- sentido_horarioB = 0;
- sentido_antihorarioB = 0;
- motor2.moveTo(0);
- digitalWrite(pino_enable, HIGH);
- }
- }
- }
- // Move o motor1 no sentido horario
- if (sentido_horarioA == 1)
- {
- motor1.moveTo(10000);
- }
- // Move o motor1 no sentido anti-horario
- if (sentido_antihorarioA == 1)
- {
- motor1.moveTo(-10000);
- }
- // Move o motor2 no sentido horario
- if (sentido_horarioB == 1)
- {
- motor2.moveTo(10000);
- }
- // Move o motor1 no sentido anti-horario
- if (sentido_antihorarioB == 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