//#include <Arduino.h>
int cont = 0;
const int sensorPin = 19; // Defina o pino do sensor
const int ledPin = 17; // Pino do LED
bool sensorState = true; // Estado inicial do sensor
unsigned long sensorOffTime = 0; // Tempo em que o sensor ficou desligado
unsigned long totalOffTime = 0; // Total de tempo em que o sensor ficou desligado
const unsigned long threshold = 3000; // Tempo mínimo para considerar como "desligado" (em milissegundos)
void setup() {
pinMode(sensorPin, INPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW); // Garante que o LED esteja inicialmente desligado
Serial.begin(9600);
}
void loop() {
// Verifica o estado do sensor
bool currentSensorState = digitalRead(sensorPin);
// Se o estado do sensor mudar para desligado (HIGH para LOW)
if (sensorState && !currentSensorState) {
sensorOffTime = millis(); // Marca o tempo em que o sensor ficou desligado
sensorState = false; // Atualiza o estado do sensor
digitalWrite(ledPin, HIGH); // Liga o LED quando o sensor está desligado
}
// Se o estado do sensor for ligado (LOW para HIGH)
if (!sensorState && currentSensorState) {
unsigned long downtime = millis() - sensorOffTime; // Calcula o tempo que o sensor ficou desligado
cont++;
Serial.print("contador: ");
Serial.print(cont);
if (downtime >= threshold) {
totalOffTime += downtime; // Adiciona o tempo de desligamento ao total apenas se for igual ou maior que o threshold
Serial.print("DownTime: ");
Serial.print(downtime / 1000);
Serial.println(" segundos.");
Serial.print("TotalOffTime: ");
Serial.print(totalOffTime / 60000);
Serial.println(" minutos.");
}
sensorState = true; // Atualiza o estado do sensor
digitalWrite(ledPin, LOW); // Desliga o LED quando o sensor está ligado
}
// Você pode adicionar código aqui para fazer outras operações enquanto o sensor está ligado
}