//Controllo tempo trascorso da Attivazione Ingresso con Display LCD,
//Funzione millis

#include <LiquidCrystal.h>
#define In 1
#define Out 13
int val = 0;
// inizializza il display LCD (adatta i pin ai tuoi collegamenti)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// pin collegato all'uscita che vuoi monitorare
const int uscitaPin = 8;

// variabile per memorizzare il tempo di attivazione
unsigned long tempoAttivazione;

void setup() {
  lcd.begin(16, 2); // adatta le dimensioni del display
    pinMode(uscitaPin, OUTPUT);
    pinMode(In, INPUT);
    pinMode(Out, OUTPUT);
    }

    void loop() {
      val = digitalRead(In);
      if (digitalRead(val == HIGH)) {
        digitalWrite(uscitaPin, HIGH);
        digitalWrite(Out, HIGH);
      } else {
        digitalWrite(uscitaPin, LOW);
        digitalWrite(Out, LOW);
      }
      if (digitalRead(val) == HIGH) {
          // se l'uscita è attiva, calcola il tempo trascorso
              if (tempoAttivazione == 0) {
                    tempoAttivazione = millis();
                        }
                            unsigned long tempoTrascorso = millis() - tempoAttivazione;
                                lcd.setCursor(0, 0);
                                    lcd.print("Secondi: ");
                                        lcd.print(tempoTrascorso / 1000);
                                          } else {
                                              // se l'uscita è disattiva, resetta il tempo
                                                  tempoAttivazione = 0;
                                                      lcd.clear();
                                                        }
                                                        }