Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // http://labdegaragem.com/forum/topics/motor-de-passo-com-comandos-por-botoes
- // Programa : Driver motor de passo A4988
- // Autor : Arduino e Cia
- #include <AccelStepper.h>
- int velocidade_motor1 = 100; // MOTOR 1
- int aceleracao_motor1 = 100;
- int sentido_horario1 = 0;
- int sentido_antihorario1 = 0;
- int velocidade_motor2 = 100; // MOTOR 2
- int aceleracao_motor2 = 100;
- int sentido_horario2 = 0;
- int sentido_antihorario2 = 0;
- int numero = 0;
- int pino_enable = 10; // Definicao pino ENABLE
- AccelStepper motor1(1, 12, 11 ); // Definicao pinos STEP e DIR
- AccelStepper motor2(1, 9, 8 );
- #define botA 4
- #define botB 5
- #define botC 6
- #define botD 7
- int flag = 0;
- //-------------------------------------------------------
- void setup()
- {
- Serial.begin(9600);
- pinMode(pino_enable, OUTPUT);
- motor1.setMaxSpeed(velocidade_motor1); // Configuracoes iniciais motor de passo 1
- motor1.setSpeed(velocidade_motor1);
- motor1.setAcceleration(aceleracao_motor1);
- motor2.setMaxSpeed(velocidade_motor2); // Configuracoes iniciais motor de passo 2
- motor2.setSpeed(velocidade_motor2);
- motor2.setAcceleration(aceleracao_motor2);
- Serial.println("Digite 1, 2, 3, 4 e 5 e clique em ENVIAR...");
- pinMode(botA, INPUT_PULLUP);
- pinMode(botB, INPUT_PULLUP);
- pinMode(botC, INPUT_PULLUP);
- pinMode(botD, INPUT_PULLUP);
- }
- //-------------------------------------------------------
- void loop()
- {
- if (digitalRead(botA) == LOW)
- {
- delay(30);
- if (digitalRead(botA) == LOW)
- {
- numero = 1;
- flag = 1;
- }
- }
- if (digitalRead(botB) == LOW)
- {
- delay(30);
- if (digitalRead(botB) == LOW)
- {
- numero = 2;
- }
- }
- if (digitalRead(botC) == LOW)
- {
- delay(30);
- if (digitalRead(botC) == LOW)
- {
- numero = 3;
- }
- }
- if (digitalRead(botD) == LOW)
- {
- delay(30);
- if (digitalRead(botD) == LOW)
- {
- numero = 4;
- }
- }
- // if (Serial.available() > 0) // Aguarda os caracteres no serial monitor
- // {
- // 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;
- numero = 0;
- }
- if (flag == 1)
- {
- if (sentido_horario1 == 1) // Move o motor no sentido horario
- {
- motor1.moveTo(10000);
- }
- if (sentido_antihorario1 == 1) // Move o motor no sentido anti-horario
- {
- motor1.moveTo(-10000);
- }
- if (sentido_horario2 == 1)
- {
- motor2.moveTo(10000);
- }
- if (sentido_antihorario2 == 1) // Move o motor no sentido anti-horario
- {
- motor2.moveTo(-10000);
- }
- motor1.run(); // Comando para acionar o motor no sentido especificado
- motor2.run();
- flag = 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement