CarlosCarrera

Untitled

Jan 17th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.11 KB | None | 0 0
  1. // Programa : Driver motor de passo A4988
  2. // Autor : Arduino e Cia
  3.  
  4. #include <AccelStepper.h>
  5.  
  6. // MOTOR A
  7. int velocidade_motorA = 50;
  8. int aceleracao_motorA = 50;
  9. int sentido_horarioA = 0;
  10. int sentido_antihorarioA = 0;
  11.  
  12.  
  13.  
  14. // MOTOR B
  15. int velocidade_motorB = 50;
  16. int aceleracao_motorB = 50;
  17. int sentido_horarioB = 0;
  18. int sentido_antihorarioB = 0;
  19.  
  20. int numero = 0;
  21.  
  22. // Definicao pino ENABLE
  23. int pino_enable = 10;
  24.  
  25.  
  26. // Definição dos pinos de direção, frente, ré, direito, esquerdo e parar.
  27.  
  28. int move_frente = 2;
  29. int move_re = 3;
  30. int move_direita = 4;
  31. int move_esquerda = 6;
  32. int parar_motor = 7;
  33.  
  34.  
  35. // Definicao pinos STEP e DIR
  36. AccelStepper motor1(1,8,9 );
  37. AccelStepper motor2(1,11,12 );
  38.  
  39. void setup()
  40. {
  41. Serial.begin(9600);
  42.  
  43. pinMode(2,INPUT);
  44. pinMode(3,INPUT);
  45. pinMode(4,INPUT);
  46. pinMode(6,INPUT);
  47. pinMode(7,INPUT);
  48.  
  49.  
  50. // MOTOR A
  51. pinMode(pino_enable, OUTPUT);
  52. // Configuracoes iniciais motor de passoA
  53. motor1.setMaxSpeed(velocidade_motorA);
  54. motor1.setSpeed(velocidade_motorA);
  55. motor1.setAcceleration(aceleracao_motorA);
  56.  
  57. // MOTOR B
  58. pinMode(pino_enable, OUTPUT);
  59. // Configuracoes iniciais motor de passoB
  60. motor2.setMaxSpeed(velocidade_motorB);
  61. motor2.setSpeed(velocidade_motorB);
  62. motor2.setAcceleration(aceleracao_motorB);
  63.  
  64.  
  65. Serial.println("Digite 1, 2, 3, 4, 5, 6 e clique em ENVIAR...");
  66. }
  67.  
  68. void loop()
  69. {
  70. // Aguarda os caracteres no serial monitor
  71. if (Serial.available() > 0)
  72. {
  73. numero = Serial.read();
  74. {
  75.  
  76. // MOTOR A e B PARA FRENTE
  77.  
  78. if (numero == '1' || digitalRead (move_frente) == HIGH )
  79. {
  80. Serial.println("Numero 1 recebido - Girando motorA e motorB sentido horario para frente.");
  81. digitalWrite(pino_enable, LOW);
  82. sentido_horarioA = 1;
  83. sentido_antihorarioA = 0;
  84. sentido_antihorarioB = 1;
  85. sentido_horarioB = 0;
  86. }
  87. // MOTOR A e B PARA TRAZ
  88.  
  89. if (numero == '2' || digitalRead (move_re) == HIGH)
  90. {
  91. Serial.println("Numero 2 recebido - Girando motorA e motorB sentido anti-horario para traz.");
  92. digitalWrite(pino_enable, LOW);
  93. sentido_horarioA = 0;
  94. sentido_antihorarioA = 1;
  95. sentido_horarioB = 1;
  96. sentido_antihorarioB = 0;
  97. }
  98. // MOTOR A PARADO, MOTOR B LIGADO, VIRA PARA ESQUERDA
  99.  
  100. if (numero == '3' || digitalRead (move_esquerda) == HIGH)
  101. {
  102. Serial.println("Numero 3 recebido - Para motorA e Liga motorB sentido horario vira a esquerda.");
  103. digitalWrite(pino_enable, LOW);
  104. sentido_horarioA = 0;
  105. sentido_antihorarioA = 0;
  106. sentido_horarioB = 1;
  107. sentido_antihorarioB = 0;
  108. }
  109. // MOTOR A LIGADO, MOTOR B PARADO, VIRA PARA DIREITA
  110.  
  111. if (numero == '4' || digitalRead (move_direita) == HIGH)
  112. {
  113. Serial.println("Numero 4 recebido - Liga motorA sentido horario e DesLiga motorB virar a direita.");
  114. digitalWrite(pino_enable, LOW);
  115. sentido_horarioA = 1;
  116. sentido_antihorarioA = 0;
  117. sentido_horarioB = 0;
  118. sentido_antihorarioB = 0;
  119. }
  120. // DESLIGAR MOTORES
  121.  
  122. if (numero == '5' || digitalRead (parar_motor) == HIGH)
  123. {
  124. Serial.println("Numero 5 recebido - Parando motorAAA e motorBBB...");
  125. sentido_horarioA = 0;
  126. sentido_antihorarioA = 0;
  127. motor1.moveTo(0);
  128. sentido_horarioB = 0;
  129. sentido_antihorarioB = 0;
  130. motor2.moveTo(0);
  131.  
  132. digitalWrite(pino_enable, HIGH);
  133. }
  134. }
  135. }
  136.  
  137.  
  138. // Move o motor1 no sentido horario
  139. if (sentido_horarioA == 1)
  140. {
  141. motor1.moveTo(10000);
  142. }
  143. // Move o motor1 no sentido anti-horario
  144. if (sentido_antihorarioA == 1)
  145. {
  146. motor1.moveTo(-10000);
  147. }
  148.  
  149. // Move o motor2 no sentido horario
  150. if (sentido_horarioB == 1)
  151. {
  152. motor2.moveTo(10000);
  153. }
  154. // Move o motor1 no sentido anti-horario
  155. if (sentido_antihorarioB == 1)
  156. {
  157. motor2.moveTo(-10000);
  158. }
  159. // Comando para acionar o motor no sentido especificado
  160. motor1.run();
  161. motor2.run();
  162. }
Advertisement
Add Comment
Please, Sign In to add comment