RuiViana

PlanoInclinado

Feb 10th, 2020
274
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. int passou = 0;
  21.  
  22. void setup() {
  23.  
  24.       Serial.begin (9600);
  25.       pinMode(pinLedVm,OUTPUT);
  26.       pinMode(pinLedAz,OUTPUT);
  27.       pinMode(buzzer,OUTPUT);
  28.       pinMode(pinSensorUM, INPUT);
  29.       pinMode(pinSensorDOIS, INPUT);
  30.       pinMode(pinSensorTRES, INPUT);
  31.    
  32.      digitalWrite (pinLedVm,LOW);   // desliga LED vermelho
  33.      digitalWrite (pinLedAz,LOW);      // desliga LED verde
  34.      digitalWrite (buzzer,LOW);
  35. }
  36.  
  37. void loop()
  38. {
  39. estadoUM = digitalRead(pinSensorUM); // ler o pinSensor1 e armazena em estado
  40.  if (estadoUM == LOW)
  41.     {
  42.         instanteUM = millis();
  43.         digitalWrite (pinLedVm, HIGH);
  44.         digitalWrite (pinLedAz, LOW);
  45.         tone (buzzer, 2500);
  46.         passou = 1;
  47.     }
  48.   if (passou == 1)
  49.   {
  50.    estadoDOIS = digitalRead(pinSensorDOIS); // ler o pinSensor1 e armazena em estado
  51.    if (estadoDOIS == LOW)
  52.    {
  53.         instanteDOIS = millis();
  54.         digitalWrite (pinLedVm, LOW);
  55.         digitalWrite (pinLedAz, HIGH);
  56.         noTone (buzzer);
  57.         elapsedTimeOne = (instanteDOIS - instanteUM);
  58.         passou = 2;
  59.         }
  60.      }
  61.  
  62.  if (passou == 2)
  63. {
  64.     estadoTRES = digitalRead (pinSensorTRES);
  65.      if (estadoTRES == LOW)
  66.      {
  67.         instanteTRES = millis();
  68.         digitalWrite (pinLedVm, HIGH);
  69.         digitalWrite (pinLedAz, LOW);
  70.         tone (buzzer, 2500);
  71.         passou = 3;
  72.       }
  73.    }
  74.    if (passou == 3)
  75.    {
  76.        elapsedTimeTwo = (instanteTRES - instanteDOIS);
  77.         tempoTotal = (elapsedTimeOne + elapsedTimeTwo);
  78.          
  79.        Serial.print (" Primeiro intervalo (ms) =   ");
  80.        Serial.println (elapsedTimeOne);   // imprime no monitor serial o 1º interval
  81.  
  82.        Serial.print("Segundo intervalo (ms) =     ");
  83.        Serial.println(elapsedTimeTwo);
  84.  
  85.        Serial.print("Tempo Total (ms) =     ");
  86.        Serial.println(tempoTotal);
  87.        digitalWrite (pinLedVm,LOW);   // desliga LED vermelho
  88.        digitalWrite (pinLedAz,LOW);      // desliga LED verde
  89.        digitalWrite (buzzer,LOW);
  90.         if (passou == 0)
  91.      }
  92. }
RAW Paste Data