Libreria per rilevare un impulso

Ciao Ragazzi, mi date una mano x favore ?!?

Ho scritto questo codice per fare una specie di relè passo passo, un click del pulsante accende e un click spegne.

  UltimoStatoPulsante1 = StatoPulsante1;
  StatoPulsante1 = digitalRead(Ingresso1);
  if (UltimoStatoPulsante1 == HIGH && StatoPulsante1 == LOW)
  {
    ContaImpulsi1++;
    if(ContaImpulsi1 % 2 )
      digitalWrite(Uscita1,HIGH);
    else
      digitalWrite(Uscita1,LOW);

Visto che questa parte di codice è ripetuta 16 volte per i 16 pulsanti/relè volevo crearmi una libreria per rendere più leggibile il codice. Mi sapete dire come posso fare ?

Questo codice quindi serve a rilevare il fronte positivo dell'impulso. Ora ... domandina numero 2: è possibile rilevare un doppio click invece di un singolo click ? Teoricamente dovrei rilevare se dopo un primo impulso ce n'è stato un secondo entro tot tempo giusto ? Come posso fare ?

Ah dimenticavo di dire che: UltimoStatoPulsante1 == HIGH && StatoPulsante1 == LOW perchè uso la resistenza di pullup interna, quindi lo stato dell'ingresso è sempre alto e va basso quando premo il pulsante

In realtà non ti serve la libreria…

ti basta fare un array che contiene lo stato precedente dei pin che stai monitorando e poi fare un funzioncina alla qualle passi il numero del pin che vuoi monitorare e lui si fa i suoi calcoletti…

m

Ah ok grazie. E invece per il doppio click ?!? sto facendo un po' di prove con millis ma non funziona !

Credo che tu debba mettere in un altro array il valore di millis di quando ha rilevato l’evento in questo modo quando hai un altro click vai a vedere quanti millisecondi sono passati e decidi se è un doppio click