[Libreria] Anti Rimbalzo + Multi Task

Ciao a tutti,
l’anno passato ho creato questa libreria per eliminare i rumori elettrici e gestire il programma senza il l’utilizzo del poco elegante Delay();
Mi serviva principalmente per gestire la mia applicazione in modo ‘multi-task’…

Si possono gestire letture dei sensori, fare calcoli, scrivere sul display in tempi diversi…
ad esempio;
se volessi leggere i sensori ogni 50ms e scrivere sull’ LCD ogni 150 nel modo più semplice possibile

//.. 
#include <TriggerButton.h>

TriggerButton Sens1;
TriggerButton LCD;

void setup() {
}

void loop() {
	if (LCD.Wait(150)) {
		// write here..
	}

	if (Sens1.Wait(50)) {
		// read here..
	}
}

Ecco le funzioni che supporta

TriggerButton Button1;

void setup() {
	Button1.setUp(pin, HIGH/LOW); // Attivo basso o attivo alto
}

void loop() {
	if (Button1.Click(100))
		// Ritorna TRUE con una pressione di almeno 100ms
	if (Button1.DoubleClick())
		// Ritorna TRUE al rilevamento del doppio click (i tempi possono essere impostati)
	if (Button1.KeepHold(400))
		// Ritorna il valore in ms (int) del tempo di pressione. Il primo parametro determina il minimo considerabile (al disotto ritorna 0)
}

E’ presente anche la funzione ‘KeepON’ ma non ricordo a cosa serva… dal codice sembra uguale a ‘Click’…

NOTA:

  • Solo i pulsanti vanno inizializzati con la funzione setUp!
    Oggetti utilizzati solo per temporizzare non necessitano di PIN o stato attivo… ofc
  • Non è stato testato con l’ultima versione del software di Arduino, o con Arduino 2

Spero sia ancora compatibile, se ci sono problemi segnalate pure qui, grazie!

[Download]
[Articolo]