Hvordan oppdage trykknappen Long Trykk Arduino

Hvordan oppdage trykknappen Long Trykk Arduino
Når det menneskelige grensesnittet er nødvendig for å gi et innspill til et Arduino -program manuelt, kan forskjellige enheter som tastatur eller trykknapper brukes. Videre kan vi konfigurere funksjonaliteten til slike enheter ved å programmere mikrokontrolleren. For eksempel, når vi må slå av en enhet, kan vi konfigurere trykknappen som bare vil fungere hvis den trykkes i ganske lang tid. Denne funksjonaliteten brukes også i smarttelefoner. Så for å oppdage om knappen er lenge trykket, har vi forklart prosessen ved hjelp av en liten krets og Arduino -kode som oppdager om trykknappen trykkes i lang tid.

Oppdage den lange trykktilstanden på trykknappen

For å legge til funksjonaliteten til knappen for å fungere når den presses i lang tid, har vi laget en enkel krets hvis kretsskjema er gitt nedenfor etterfulgt av komponentene som vi har brukt for å lage kretsen.

  • Arduino Uno
  • Koble til ledninger
  • 1 trykknapp
  • Brødbrett

Maskinvareenhet for å oppdage den lange trykkstaten på trykknappen

For å se hvordan kretsen vil se ut på den faktiske maskinvaren har vi laget maskinvarenheten som er gitt nedenfor på bildet.

Som du kan se på bildet over, har vi brukt pinne 8 av Arduino for å koble den til trykknappen ved hjelp av den grønne ledningen og bruke den svarte ledningen for å koble trykknappen med jordstiften til Arduino.

Arduino -kode for å oppdage den lange trykkstaten på trykknappen

For å oppdage den lange trykket på trykknappen har vi programmert mikrokontrolleren ved hjelp av Millis () -funksjonen. Vi har oppdaget den lange pressetilstanden ved å få tiden som tilstanden til trykknappen forble høy og lav. Etter det beregnet vi varigheten som knappen ble trykket på for og sammenlignet den med en viss konstant tidsverdi basert på at vi kan si at knappen ble trykket i lang tid.

I dette tilfellet har vi gitt den konstante tidsverdien på ett sekund som er 1000 millisekunder som den korte pressen for knappen. Hvis pressens varighet er mer enn tid for den korte pressetiden, vil det bli betraktet som den lange pressen og vil vises på seriemonitoren. Nedenfor har vi gitt Arduino -skissen som ble brukt til å programmere kontrolleren for å oppdage den lange trykktilstanden på trykknappen.

int -knapp = 8; /* Arduino Pin for trykknappen*/
int short_time = 1000; / * Tid som vil bli betraktet som den korte pressetiden */
lang on_durasjon;/ * variabel som vil lagre verdien av tiden som knappen trykkes på */
int forrige state = lav; / * Angi den opprinnelige tilstanden til trykknappen høyt når vi bruker input_pullup -modus */
int Presentstate; /* Variabel som vil lagre den nåværende tilstanden hvis knappen*/
usignert lang presse_time = 0; / * Tid der knappen ble trykket på */
usignert lang utgivelse_tid = 0;/ *tid der knappen er utgitt */
void setup ()
Serie.Begynn (9600);/* Gi baudfrekvensen for seriell kommunikasjon*/
pinmode (knapp, input_pullup);/* Gi arbeidsmodus til trykknappen som er input_pullup (inverserer inngangene til knappen)*/

void loop ()
// Les tilstanden til bryteren/knappen:
PresentState = DigitalRead (knapp);/ * Få den nåværende tilstanden til trykknappen */
if (forrige state == High && PresentState == lav) / * Hvis knappen trykkes * /
Press_time = Millis ();/ * Lagre tiden i millisekunder ved hjelp av Millis -funksjonen */
ellers if (forrige state == LOW && PRESENTERTATE == HIGH) /* IF -knappen er utgitt* ​​/
Release_time = Millis ();/ * Lagre tiden da knappen ble utgitt */
lang ON_TIME = Release_Time - Press_Time;/* Beregning av tiden som knappen forble i lav tilstand*/
if (on_time> short_time) /* sammenligne verdien av tid som knappen trykkes til verdien for kort pressetid* /
Serie.println ("-knappen trykkes i lang tid");/ * Skrive ut dataene på seriell monitor */

Forrige State = Presentstate;/ * Lagre nåverdien i forrige verdi */

Maskinvaredemonstrasjon

Vi har laget kretsen på maskinvaren riktig i henhold til maskinvarenheten som er diskutert tidligere, og bildet nedenfor viser maskinvareimplementeringen av trykknappkretsen for å oppdage den lange trykktilstanden på knappen.

Når vi trykker på knappen i mer enn ett sekund, vises Arduino -koden på seriemonitoren at knappen trykkes i lang tid som vist på bildet nedenfor:

Konklusjon

Betydningen av å bruke den lange trykktilstanden til trykknappen er at du kan bruke en enkelt knapp for å utføre mer enn en oppgave. Så for å forklare hvordan du kan oppdage den lange trykktilstanden på trykknappen har vi designet en krets og implementert den på den faktiske maskinvaren, og vi har også gitt Arduino -skissen som vil gi en stor forståelse av emnet.