/*
=================================================
SAFE DRIVER IoT
Turma GTI
=================================================
*/
const int botao = 2;
const int ledAmarelo = 3;
const int ledVerde = 4;
const int ledVermelho = 5;
const int buzzer = 6;
void setup() {
pinMode(botao, INPUT_PULLUP);
pinMode(ledAmarelo, OUTPUT);
pinMode(ledVerde, OUTPUT);
pinMode(ledVermelho, OUTPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
Serial.println("SAFE DRIVER IoT");
}
void loop() {
digitalWrite(ledVerde, HIGH);
digitalWrite(ledAmarelo, LOW);
digitalWrite(ledVermelho, LOW);
noTone(buzzer);
Serial.println("------------------");
Serial.println("TESTE INICIADO");
tone(buzzer, 2000);
delay(200);
noTone(buzzer);
unsigned long inicio = millis();
bool amarelo = false;
bool vermelho = false;
while (true) {
unsigned long tempo = millis() - inicio;
if (digitalRead(botao) == LOW && !vermelho) {
Serial.println("STATUS: APTO");
tone(buzzer, 2000);
delay(300);
noTone(buzzer);
while (digitalRead(botao) == LOW);
delay(2000);
break;
}
if (tempo >= 3000 && !amarelo) {
digitalWrite(ledVerde, LOW);
digitalWrite(ledAmarelo, HIGH);
Serial.println("ATENCAO");
tone(buzzer, 1500);
delay(300);
noTone(buzzer);
amarelo = true;
}
if (tempo >= 5000 && !vermelho) {
digitalWrite(ledAmarelo, LOW);
digitalWrite(ledVermelho, HIGH);
Serial.println("ALERTA CRITICO");
vermelho = true;
}
if (vermelho) {
tone(buzzer, 1000);
delay(200);
noTone(buzzer);
delay(200);
if (digitalRead(botao) == LOW) {
noTone(buzzer);
Serial.println("STATUS: NAO APTO");
while (digitalRead(botao) == LOW);
delay(3000);
break;
}
}
}
}