// DEPURACAO AVANCADA - tratamento de falhas e estado seguro
const int pot = 34;
const int botao = 18;
const int ledSistema = 2;
const int ledErro = 4;
int ultimaLeitura = -1;
bool estadoSeguro = false;
void setup() {
Serial.begin(115200);
pinMode(botao, INPUT_PULLUP);
pinMode(ledSistema, OUTPUT);
pinMode(ledErro, OUTPUT);
Serial.println("Sistema iniciado com tratamento de falhas");
}
void loop() {
int leituraPot = analogRead(pot);
bool erroDetectado = false;
// verifica variacao abrupta
if (ultimaLeitura != -1) {
int variacao = abs(leituraPot - ultimaLeitura);
if (variacao > 1500) {
Serial.println("FALHA DETECTADA: variacao abrupta");
erroDetectado = true;
}
}
// verifica faixa valida
if (leituraPot < 0 || leituraPot > 4095) {
Serial.println("FALHA DETECTADA: leitura invalida");
erroDetectado = true;
}
// ativa estado seguro
if (erroDetectado) {
estadoSeguro = true;
}
// comportamento do sistema
if (estadoSeguro) {
digitalWrite(ledSistema, LOW);
digitalWrite(ledErro, HIGH);
Serial.println("Sistema em ESTADO SEGURO");
}
else {
digitalWrite(ledSistema, HIGH);
digitalWrite(ledErro, LOW);
Serial.print("Sistema operando normalmente | Leitura: ");
Serial.println(leituraPot);
}
ultimaLeitura = leituraPot;
delay(300);
}