//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();
}
}