RuiViana

PlanoInclinado2

Feb 11th, 2020
98
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #define buzzer 7
  2.  
  3. #define pinSensorUM  4
  4. #define pinSensorDOIS 3
  5. #define pinSensorTRES  8
  6. #define pinLedVm  6
  7. #define pinLedAz  5
  8.  
  9. int estadoUM; // variavel que guarda  o estado do sensor
  10. int estadoDOIS;
  11. int estadoTRES;
  12.  
  13. unsigned long instanteUM = 0;    // tempo total decorrido desde que o programa foi executado
  14. unsigned long instanteDOIS = 0;
  15. unsigned long instanteTRES = 0;
  16.  
  17. unsigned long elapsedTimeOne;    // tempo decorrido do primeiro intervalo
  18. unsigned long elapsedTimeTwo;    // tempo decorrido do segundo intervalo
  19. unsigned long tempoTotal;
  20. unsigned long tempoIndica;
  21. int passou = 0;
  22. //‐---------------------------------‐--------------------------------------------
  23. void indica()
  24. {
  25.      digitalWrite (pinLedVm,HIGH);   // liga LED vermelho
  26.      tone (buzzer, 2500);
  27.      digitalWrite (pinLedAz,LOW);      // desliga LED azul
  28.  }
  29. //‐---------------------------------‐--------------------------------------------
  30. void noIndica()
  31. {
  32.      noTone (buzzer);
  33.      digitalWrite (pinLedVm,LOW);   // desliga LED vermelho
  34.      digitalWrite (pinLedAz,HIGH);   // liga LED azul
  35. }
  36. //‐---------------------------------‐--------------------------------------------
  37. void setup() {
  38.  
  39.       Serial.begin (9600);
  40.       pinMode(pinLedVm,OUTPUT);
  41.       pinMode(pinLedAz,OUTPUT);
  42.       pinMode(buzzer,OUTPUT);
  43.       pinMode(pinSensorUM, INPUT);
  44.       pinMode(pinSensorDOIS, INPUT);
  45.       pinMode(pinSensorTRES, INPUT);
  46.    
  47.      digitalWrite (pinLedVm,LOW);   // desliga LED vermelho
  48.      digitalWrite (pinLedAz,LOW);      // desliga LED verde
  49.      digitalWrite (buzzer,LOW);
  50. }
  51. //‐---------------------------------‐--------------------------------------------
  52. void loop()
  53. {
  54. estadoUM = digitalRead(pinSensorUM); // ler o pinSensor1 e armazena em estado
  55.  if (estadoUM == LOW)
  56.     {
  57.         instanteUM = millis();
  58.         tempoIndica = millis();
  59.         indica();
  60.         passou = 1;
  61.     }
  62.   if (passou == 1)
  63.   {
  64.    estadoDOIS = digitalRead(pinSensorDOIS); // ler o pinSensor1 e armazena em estado
  65.    if (estadoDOIS == LOW)
  66.    {
  67.         instanteDOIS = millis();
  68.         tempoIndica = millis();
  69.         indica();
  70.         elapsedTimeOne = (instanteDOIS - instanteUM);
  71.         passou = 2;
  72.         }
  73.      }
  74.  
  75.  if (passou == 2)
  76. {
  77.     estadoTRES = digitalRead (pinSensorTRES);
  78.      if (estadoTRES == LOW)
  79.      {
  80.         instanteTRES = millis();
  81.          tempoIndica = millis();
  82.          indica();
  83.          passou = 3;
  84.       }
  85.    }
  86.  if(millis() - tempoIndica > 30)        // tempo para retenção visual
  87.        noIndica();                                    // muda LEDs e silencia buzzer
  88.        
  89.    if (passou == 3)
  90.    {
  91.        elapsedTimeTwo = (instanteTRES - instanteDOIS);
  92.         tempoTotal = (elapsedTimeOne + elapsedTimeTwo);
  93.          
  94.        Serial.print (" Primeiro intervalo (ms) =   ");
  95.        Serial.println (elapsedTimeOne);   // imprime no monitor serial o 1º interval
  96.  
  97.        Serial.print("Segundo intervalo (ms) =     ");
  98.        Serial.println(elapsedTimeTwo);
  99.  
  100.        Serial.print("Tempo Total (ms) =     ");
  101.        Serial.println(tempoTotal);
  102.        digitalWrite (pinLedVm,LOW);   // desliga LED vermelho
  103.        digitalWrite (pinLedAz,LOW);      // desliga LED verde
  104.        digitalWrite (buzzer,LOW);
  105.         passou = 0;
  106.      }
  107. }
RAW Paste Data