mercoledì 25 novembre 2020

Arduino N° 70 - Multivibratore "Monostabile Retriggerabile" senza ritardo

< Segue da Arduino N° 69 

 Achille De Santis

Arduino N°  71




Figura 1: Collaudo della procedura
con una scheda "protoboard"; 
Analogamente a quanto detto nel precedente post, un temporizzatore monostabile per tempi lunghi realizzato con la funzione "delay()" bloccherebbe l'esecuzione di altre istruzioni fino all'esaurimento del tempo di ritardo impostato. Si può ovviare al problema utilizzando la funzione "millis()" per le necessarie temporizzazioni. In questo modo il controllore sarà in grado, nel frattempo, di svolgere altre funzioni.

Questo sketch realizza un "Multivibratore Monostabile Retriggerabile" senza bloccare l'esecuzione del programma. Permette di utilizzare la temporizzazione con la funzione predefinita "millis()" senza usare la funzione "delay()" che inevitabilmente bloccherebbe l'esecuzione di altre istruzioni fino alla fine del "ritardo" impostato.

Attraverso il segnale di comando è anche possibile "Retriggerare" la temporizzazione, che in questo caso si prolunga per un'altra unità di tempo.


L'organizzazione come "procedura" permette il suo utilizzo in modo rapido e multiplo, semplicemente richiamando la funzione con la relativa variabile.


E' possibile provare lo sketch senza ulteriore hardware, ad eccezione della scheda Arduino. Il LED utilizzato per il temporizzatore è quello a bordo, collegato su uno dei piedini digitali (D13 su Arduino UNO). 

Per provare la modalità di "retriggering", lo dico per i meno esperti, avviare la simulazione e premere qualche volta il pulsante, mentre il LED è acceso. La temporizzazione riparte dall'ultima pressione del pulsante. In pratica, si ottiene un "prolungamento" della temporizzazione stessa.


Simulazione: 

Multivibratore "Monostabile Retriggerabile" senza ritardo


>Arduino N°  71

Nessun commento:

Posta un commento