Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define buzzer 7
- #define pinSensorUM 4
- #define pinSensorDOIS 3
- #define pinSensorTRES 8
- #define pinLedVm 6
- #define pinLedAz 5
- int estadoUM; // variavel que guarda o estado do sensor
- int estadoDOIS;
- int estadoTRES;
- unsigned long instanteUM = 0; // tempo total decorrido desde que o programa foi executado
- unsigned long instanteDOIS = 0;
- unsigned long instanteTRES = 0;
- unsigned long elapsedTimeOne; // tempo decorrido do primeiro intervalo
- unsigned long elapsedTimeTwo; // tempo decorrido do segundo intervalo
- unsigned long tempoTotal;
- unsigned long tempoIndica;
- int passou = 0;
- //‐---------------------------------‐--------------------------------------------
- void indica()
- {
- digitalWrite (pinLedVm,HIGH); // liga LED vermelho
- tone (buzzer, 2500);
- digitalWrite (pinLedAz,LOW); // desliga LED azul
- }
- //‐---------------------------------‐--------------------------------------------
- void noIndica()
- {
- noTone (buzzer);
- digitalWrite (pinLedVm,LOW); // desliga LED vermelho
- digitalWrite (pinLedAz,HIGH); // liga LED azul
- }
- //‐---------------------------------‐--------------------------------------------
- void setup() {
- Serial.begin (9600);
- pinMode(pinLedVm,OUTPUT);
- pinMode(pinLedAz,OUTPUT);
- pinMode(buzzer,OUTPUT);
- pinMode(pinSensorUM, INPUT);
- pinMode(pinSensorDOIS, INPUT);
- pinMode(pinSensorTRES, INPUT);
- digitalWrite (pinLedVm,LOW); // desliga LED vermelho
- digitalWrite (pinLedAz,LOW); // desliga LED verde
- digitalWrite (buzzer,LOW);
- }
- //‐---------------------------------‐--------------------------------------------
- void loop()
- {
- estadoUM = digitalRead(pinSensorUM); // ler o pinSensor1 e armazena em estado
- if (estadoUM == LOW)
- {
- instanteUM = millis();
- tempoIndica = millis();
- indica();
- passou = 1;
- }
- if (passou == 1)
- {
- estadoDOIS = digitalRead(pinSensorDOIS); // ler o pinSensor1 e armazena em estado
- if (estadoDOIS == LOW)
- {
- instanteDOIS = millis();
- tempoIndica = millis();
- indica();
- elapsedTimeOne = (instanteDOIS - instanteUM);
- passou = 2;
- }
- }
- if (passou == 2)
- {
- estadoTRES = digitalRead (pinSensorTRES);
- if (estadoTRES == LOW)
- {
- instanteTRES = millis();
- tempoIndica = millis();
- indica();
- passou = 3;
- }
- }
- if(millis() - tempoIndica > 30) // tempo para retenção visual
- noIndica(); // muda LEDs e silencia buzzer
- if (passou == 3)
- {
- elapsedTimeTwo = (instanteTRES - instanteDOIS);
- tempoTotal = (elapsedTimeOne + elapsedTimeTwo);
- Serial.print (" Primeiro intervalo (ms) = ");
- Serial.println (elapsedTimeOne); // imprime no monitor serial o 1º interval
- Serial.print("Segundo intervalo (ms) = ");
- Serial.println(elapsedTimeTwo);
- Serial.print("Tempo Total (ms) = ");
- Serial.println(tempoTotal);
- digitalWrite (pinLedVm,LOW); // desliga LED vermelho
- digitalWrite (pinLedAz,LOW); // desliga LED verde
- digitalWrite (buzzer,LOW);
- passou = 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement