RuiViana

EBJ

Jan 22nd, 2018
138
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // http://labdegaragem.com/forum/topics/ajuda-em-conectar-e-programar-sensor-de-velocidade-com-encode
  2. //Programa: Sensor de velocidade Arduino LM393
  3. //Autor: Arduino e Cia
  4.  
  5. //Pino ligado ao pino D0 do sensor
  6. int pino_D0 = 2;
  7. int pino_D1 = 3;
  8.  
  9. long pulsos = 0;
  10. long pulsos2 = 0;
  11. long ajuste = 0;
  12.  
  13. int IN1 = 4;
  14. int IN2 = 5;
  15. int IN3 = 6;
  16. int IN4 = 7;
  17. //--------------------------------
  18. void contador()
  19. {
  20.   //Incrementa contador
  21.   pulsos++;
  22. }
  23. //--------------------------------
  24. void contador2()
  25. {
  26.   //Incrementa contador
  27.   pulsos2++;
  28. }
  29. //----------------------------------
  30. void setup()
  31. {
  32.   Serial.begin(9600);
  33.  
  34.   //Define os pinos como saida
  35.   pinMode(IN1, OUTPUT);
  36.   pinMode(IN2, OUTPUT);
  37.   pinMode(IN3, OUTPUT);
  38.   pinMode(IN4, OUTPUT);
  39.  
  40.   //Pino do sensor como entrada
  41.   pinMode(pino_D0, INPUT);  //Interrupcao 0 - pino digital 2
  42.   pinMode(pino_D1, INPUT);  //Interrupcao 0 - pino digital 3
  43.  
  44.   attachInterrupt(0, contador, FALLING);
  45.   attachInterrupt(1, contador2, FALLING);
  46. }
  47. //-----------------------------------------
  48. void loop()
  49. {
  50.   digitalWrite(IN1, HIGH);
  51.   digitalWrite(IN2, LOW);                    // Aciona o motor 1 no sentido horario
  52.   digitalWrite(IN3, LOW);
  53.   digitalWrite(IN4, HIGH);
  54.  
  55.   ajuste = pulsos - pulsos2;               // Tem diferença de pulsos
  56.   if (ajuste > 0)                           // Se motor1 rodou mais
  57.   {
  58.     Serial.print("ajuste P " ) ; Serial.println(ajuste);
  59.   }
  60.   if (ajuste < 0)                           // Se motor2 rodou mais
  61.   {
  62.     Serial.print("ajuste P2" ) ; Serial.println(ajuste);
  63.   }
  64.   if (ajuste == 0)                          // Se contagem é igual
  65.   {
  66.     Serial.print("ajuste == " ) ; Serial.println(ajuste);
  67.     pulsos = 0;
  68.     pulsos2 = 0;
  69.   }
  70. }
RAW Paste Data