Come rilevare il pulsante Push Long Premere Arduino

Come rilevare il pulsante Push Long Premere Arduino
Quando l'interfaccia umana è necessaria per fornire un input a un programma Arduino, è possibile utilizzare dispositivi manualmente diversi come la tastiera o i pulsanti. Inoltre, possiamo configurare la funzionalità di tali dispositivi programmando il microcontrollore. Ad esempio, quando dobbiamo disattivare un dispositivo, possiamo configurare il pulsante che funzionerà solo se viene premuto per un bel po 'di tempo. Questa funzionalità viene utilizzata anche negli smartphone. Quindi, per rilevare se il pulsante è a lungo premuto, abbiamo spiegato il processo con l'aiuto di un piccolo circuito e un codice Arduino che rileva se il pulsante viene premuto a lungo.

Rilevare lo stato di pressione lungo del pulsante

Per aggiungere la funzionalità del pulsante per funzionare quando viene premuto per molto tempo, abbiamo creato un circuito semplice il cui schema di circuito è indicato di seguito seguito dai componenti che abbiamo usato per realizzare il circuito.

  • Arduino Uno
  • Collegamento dei fili
  • 1 pulsante
  • Breadboard

Assemblaggio hardware per rilevare lo stato di pressione lunga del pulsante

Per vedere come sarà il circuito sull'hardware reale, abbiamo realizzato il gruppo hardware che è indicato di seguito nell'immagine.

Come puoi vedere nell'immagine sopra, abbiamo usato il pin 8 di Arduino per collegarlo al pulsante usando il filo verde e usando il filo nero per collegare il pulsante con il perno di terra di Arduino.

Codice Arduino per rilevare lo stato di pressione lunga del pulsante

Per rilevare la lunga pressione del pulsante abbiamo programmato il microcontrollore utilizzando la funzione Millis (). Abbiamo rilevato lo stato di pressione lunga ottenendo il tempo per il quale lo stato del pulsante è rimasto alto e basso. Dopodiché abbiamo calcolato la durata per la quale il pulsante è stato premuto e quindi lo abbiamo confrontato con un valore temporale costante in base a ciò che possiamo dire che il pulsante è stato premuto per lungo tempo.

In questo caso abbiamo dato il valore temporale costante di un secondo che è di 1000 millisecondi come pressa corta per il pulsante. Se la durata della stampa è più del tempo per il tempo di pressa breve, verrà considerata come la lunga pressione e verrà visualizzata sul monitor seriale. Di seguito abbiamo dato lo schizzo Arduino utilizzato per programmare il controller per rilevare lo stato di pressione a lungo del pulsante.

Button Int = 8; /* Pin Arduino per il pulsante Push*/
int short_time = 1000; / * Tempo che verrà considerato il tempo di pressa breve */
Long on_Duration;/ * Variabile che memorizzerà il valore del tempo per il quale viene premuto il pulsante */
Int PrecexState = Low; / * Impostazione dello stato iniziale del pulsante in alto poiché stiamo utilizzando la modalità input_pullup */
int PresentState; /* Variabile che memorizzerà lo stato attuale se il pulsante*/
Press_time senza firma non firmato = 0; / * Tempo in cui è stato premuto il pulsante */
UNSCIGN Long Release_time = 0;/ *tempo in cui il pulsante viene rilasciato */
void setup ()
Seriale.inizio (9600);/* dando il tasso di baud per la comunicazione seriale*/
pinMode (pulsante, input_pullup);/* Dare la modalità di lavoro al pulsante che è input_pullup (inverte gli ingressi del pulsante)*/

void loop ()
// Leggi lo stato dell'interruttore/pulsante:
PresentState = DigitalRead (pulsante);/ * Ottenere lo stato attuale del pulsante */
if (precexstate == high && presentState == Low) / * se il pulsante viene premuto * /
press_time = millis ();/ * Salva il tempo in millisecondi usando la funzione Millis */
else if (precedentestate == Low && PresentState == High) /* se il pulsante viene rilasciato* /
rilascio_time = millis ();/ * salva il tempo in cui il pulsante è stato rilasciato */
Long on_time = rilascio_time - press_time;/* calcolando il tempo per il quale il pulsante è rimasto nello stato basso*/
if (on_time> short_time) /* confrontando il valore del tempo per il quale il pulsante viene premuto sul valore per il tempo di pressione breve* /
Seriale.println ("il pulsante viene premuto a lungo");/ * stampare i dati sul monitor seriale */

PrecedentiState = PresentState;/ * Salvare il valore attuale nel valore precedente */

Dimostrazione hardware

Abbiamo realizzato il circuito sull'hardware proprio in base al gruppo hardware che viene discusso in precedenza e l'immagine seguente mostra l'implementazione hardware del circuito del pulsante Push per rilevare lo stato di pressione lunga del pulsante.

Quando premiamo il pulsante per più di un secondo, il codice Arduino mostra sul monitor seriale, quel pulsante viene premuto a lungo come mostrato nell'immagine seguente:

Conclusione

Il significato dell'utilizzo dello stato di pressione lunga del pulsante è che è possibile utilizzare un singolo pulsante per eseguire più di un'attività. Quindi, per spiegare come rilevare lo stato di pressione a lungo del pulsante, abbiamo progettato un circuito e implementato sull'hardware reale e abbiamo anche fornito lo schizzo Arduino che fornirà un ottimo sottovalutazione dell'argomento.