Advertisement
CarlosCarrera

Untitled

Jan 17th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. // Programa : Driver motor de passo A4988
  2. // Autor : Arduino e Cia
  3.  
  4. #include <AccelStepper.h>
  5.  
  6. // MOTOR 1
  7. int velocidade_motor1 = 100;
  8. int aceleracao_motor1 = 100;
  9. int sentido_horario1 = 0;
  10. int sentido_antihorario1 = 0;
  11.  
  12. // MOTOR 2
  13. int velocidade_motor2 = 100;
  14. int aceleracao_motor2 = 100;
  15. int sentido_horario2 = 0;
  16. int sentido_antihorario2 = 0;
  17.  
  18. int numero = 0;
  19.  
  20. // Definicao pino ENABLE
  21. int pino_enable = 10;
  22.  
  23. // Definicao pinos STEP e DIR
  24. AccelStepper motor1(1,12,11 );
  25. AccelStepper motor2(1,9,8 );
  26.  
  27. void setup()
  28. {
  29. Serial.begin(9600);
  30.  
  31. pinMode(pino_enable, OUTPUT);
  32.  
  33. // Configuracoes iniciais motor de passo 1
  34. motor1.setMaxSpeed(velocidade_motor1);
  35. motor1.setSpeed(velocidade_motor1);
  36. motor1.setAcceleration(aceleracao_motor1);
  37.  
  38. // Configuracoes iniciais motor de passo 2
  39. motor2.setMaxSpeed(velocidade_motor2);
  40. motor2.setSpeed(velocidade_motor2);
  41. motor2.setAcceleration(aceleracao_motor2);
  42.  
  43. Serial.println("Digite 1, 2, 3, 4 e 5 e clique em ENVIAR...");
  44. }
  45.  
  46. void loop()
  47. {
  48. // Aguarda os caracteres no serial monitor
  49. if (Serial.available() > 0)
  50. {
  51. numero = Serial.read();
  52. {
  53. if (numero == '1')
  54. {
  55. Serial.println("Numero 1 recebido - Girando motor1 sentido horario e motor2 sentido antihorario, FRENTE");
  56. digitalWrite(pino_enable, LOW);
  57. sentido_horario1 = 1;
  58. sentido_antihorario1 = 0;
  59. sentido_horario2 = 0;
  60. sentido_antihorario2 = 1;
  61. }
  62.  
  63. if (numero == '2')
  64. {
  65. Serial.println("Numero 2 recebido - Girando motor1 sentido anti-horario e motor2 sentido horario, RÉ");
  66. digitalWrite(pino_enable, LOW);
  67. sentido_horario1 = 0;
  68. sentido_antihorario1 = 1;
  69. sentido_horario2 = 1;
  70. sentido_antihorario2 = 0;
  71. }
  72.  
  73. if (numero == '3')
  74. {
  75. Serial.println("Numero 3 recebido - Girando motor1 sentido horario e motor2 parado, VIRA DIREITA");
  76. digitalWrite(pino_enable, LOW);
  77. sentido_horario1 = 1;
  78. sentido_antihorario1 = 0;
  79. sentido_horario2 = 0;
  80. sentido_antihorario2 = 0;
  81. motor2.moveTo(0);
  82. }
  83.  
  84. if (numero == '4')
  85. {
  86. Serial.println("Numero 4 recebido - motor1 parado e motor2 sentido hoorario, VIRA ESQUERDA");
  87. digitalWrite(pino_enable, LOW);
  88. sentido_horario1 = 0;
  89. sentido_antihorario1 = 0;
  90. motor1.moveTo(0);
  91. sentido_horario2 = 1;
  92. sentido_antihorario2 = 0;
  93. }
  94.  
  95. if (numero == '5')
  96. {
  97. Serial.println("Numero 5 recebido - Parando motor1 e motor2...");
  98. sentido_horario1 = 0;
  99. sentido_antihorario1 = 0;
  100. sentido_horario2 = 0;
  101. sentido_antihorario2 = 0;
  102. motor1.moveTo(0);
  103. motor2.moveTo(0);
  104. digitalWrite(pino_enable, HIGH);
  105. }
  106. }
  107. }
  108.  
  109. // Move o motor no sentido horario
  110. if (sentido_horario1 == 1)
  111. {
  112. motor1.moveTo(10000);
  113. }
  114. // Move o motor no sentido anti-horario
  115. if (sentido_antihorario1 == 1)
  116. {
  117. motor1.moveTo(-10000);
  118. }
  119. if (sentido_horario2 == 1)
  120. {
  121. motor2.moveTo(10000);
  122. }
  123. // Move o motor no sentido anti-horario
  124. if (sentido_antihorario2 == 1)
  125. {
  126. motor2.moveTo(-10000);
  127. }
  128. // Comando para acionar o motor no sentido especificado
  129. motor1.run();
  130. motor2.run();
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement