Vorrei accendere il led dopo che il pulsante viene premuto per 5 secondi se non premo il pulsante o lo premo per un tempo inferiore ai 5 secondi il led non si deve accendere.
Questo programma mi serve per eseguire un programma più complesso che sarebbe l' apertura e la chiusura di un finestrino di una macchima. Il programma dovrebbe aprire o chiudere tutto il finestrino se tengo premuto per meno di un secondo il pulsante di apertura o chiusura. Se invece tengo premuto il pulsante di apertura e chiusura il finestrino si apre o si chiude fino a quando lo volglio io.
Questo il programma ma non funziona.
const int Pulsantepin = 2;
const int Utilizzatorepin = 3;
int Statopulsante;
int Statoutilizzatore;
unsigned long durataimpulso;
unsigned long tempopressionepulsante = 5000;
void setup ()
{
Serial.begin(9600);
pinMode (Pulsantepin, INPUT);
pinMode (Utilizzatorepin, OUTPUT);
}
void loop ()
{
Statopulsante = digitalRead (Pulsantepin);
Statoutilizzatore = digitalRead (Utilizzatorepin);
durataimpulso = pulseIn (Pulsantepin, HIGH);
if (Statopulsante==HIGH)
{
if (durataimpulso>tempopressionepulsante)
{
Statoutilizzatore=HIGH;
digitalWrite (Utilizzatorepin, Statoutilizzatore);
}
}
else
{
Statoutilizzatore = LOW;
digitalWrite (Utilizzatorepin, Statoutilizzatore);
}
}