Advertisement
RuiViana

Testa_Motor

Jan 17th, 2018
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.86 KB | None | 0 0
  1. // Programa: Teste carrinho para o mestrado
  2. // Autor: Ewerton de Barcellos Junior
  3. //                                          // --- Mapeamento de Hardware ---
  4. #include <AFMotor.h>                        // Carregar a biblioteca AFMotor
  5. int SensorDireito  = 0;                     // Definir o sensor de veolocidade da direita na porta A0
  6. int SensorEsquerdo = 1;                     // Definir o sensor de veolocidade da esquerda na porta A1
  7. AF_DCMotor motor1 (1);                      // Defini o motor1 ligado na conexão 1
  8. AF_DCMotor motor2 (2);                      // Defini o motor2 ligado na conexão 2
  9. // ==============================================================
  10. volatile byte    pulsos1 = 0;               // ---Variáveis Globais ---
  11. volatile byte    pulsos2 = 0;
  12. int ajuste = 0;
  13. // =============================================================
  14. void contador1 ()                           // ---Interrupção ---
  15. {
  16.   pulsos1++;                                // Incrementa contador 1
  17. }
  18. // =============================================================
  19. void contador2 ()
  20. {
  21.   pulsos2++;                                // Incrementa contador 2
  22. }
  23. // =============================================================
  24. void setup()        // Configurações Iniciais ---
  25. {
  26.   Serial.begin(9600);
  27.   pinMode(SensorDireito,  INPUT);
  28.   pinMode(SensorEsquerdo, INPUT);
  29.   motor1.setSpeed(120);                       // Defini a velocidade maxima para os motores 1 e 2
  30.   motor2.setSpeed(120);
  31.   attachInterrupt(0, contador1, FALLING);     // Aciona o contador a cada pulso
  32.   attachInterrupt(1, contador2, FALLING);
  33. }
  34. // =============================================================
  35. void loop()
  36. {
  37.     motor1.run(FORWARD);                    // Aciona o motor 1 no sentido horario
  38.     motor2.run(BACKWARD);                   // Aciona o motor 2 no sentido anti-horario
  39.     Serial.println(pulsos1);
  40.     Serial.println(pulsos2);    
  41.     delay(500);
  42.   /*
  43.   ajuste = pulsos1 - pulsos2;               // Tem diferença de pulsos
  44.   if (ajuste > 0)                           // Se motor1 rodou mais
  45.   {
  46.     motor2.run(RELEASE);                    // Para motor1
  47.     motor1.run(BACKWARD);                   // Aciona o motor 2 no sentido anti-horario
  48.   }
  49.   if (ajuste < 0)                           // Se motor2 rodou mais
  50.   {
  51.     motor1.run(RELEASE);                    // Para motor2
  52.     motor2.run(FORWARD);                    // Aciona o motor 1 no sentido horario
  53.   }
  54.   if (ajuste == 0)                          // Se contagem é igual
  55.   {
  56.     pulsos1 = 0;                            // Zera contador de pulsos motor1
  57.     pulsos2 = 0;                            // Zera contador de pulsos motor2
  58.     motor1.run(FORWARD);                    // Aciona o motor 1 no sentido horario
  59.     motor2.run(BACKWARD);                   // Aciona o motor 2 no sentido anti-horario
  60.   }*/
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement