Trykknapp: hvordan du bruker dette enkle elementet med Arduino

knapp

Un trykknapp er en knapp som lar deg avbryte eller sende et elektronisk signal. Med dette enkle elementet kombinert med andre elementer kan du lage prosjekter for en rekke applikasjoner. Bruk av denne typen trykknapper er veldig vanlig når det gjelder prosjekter med Arduino. Og ved å kombinere flere av disse knappene kan du lage et litt mer komplekst tastatur, selv om det allerede er programmerbare tastaturer for disse bruksområdene ...

Forresten, du skal ikke forveksle trykknappen med en bryter. De er helt forskjellige ting. Forskjellen er at bryteren eller bryteren aktiveres eller deaktiveres for hvert trykk som gjøres på den. Mens trykknappen bare vil forbli i en tilstand mens det blir utøvd trykk på den. Jeg har kommentert at det kan sende eller avbryte, det er fordi det er to grunnleggende typer knapper.

trykknapp-symbol

Det er NO eller normalt åpne trykknapper og NC eller normalt lukkede trykknapper. Dette vil også høres ut for deg fra stafettene. Og ja, det er nøyaktig den samme operasjonen. Når du har en NC, vil den la strøm passere gjennom terminalene, og den avbryter bare mens du trykker på den. På den annen side lar NA ikke strøm passere når det ikke blir utøvd trykk på det, og vil bare la det passere når du trykker på det.

Vet det, er nesten alt du trenger å vite om en trykknapp for å starte tilkoblingen og programmeringen ved hjelp av Arduino. Sannheten er at det er et så enkelt element at det ikke er mye mer å si om denne typen trykknapper.

Trykknappintegrasjon med Arduino

krets med Arduino

La koble til en trykknapp å få det til å samhandle med Arduino kunne ikke være enklere. Et eksempel er diagrammet du kan se på disse linjene. Det ville være alt som trengs for å begynne å eksperimentere. Men selvfølgelig, med den ordningen kan du gjøre lite. Du må sette litt fantasi for å bestemme hva den knappen skal kontrollere. Hvis du ofte leser hwlibre.es, har du allerede sett noen artikler der vi har brukt trykknapper ...

Måter å koble den til

pull-up og pull-down

En ting du bør vite er spørsmålet om anti-sprett og hvordan du kobler til disse trykknappene. Først går vi til måten å koble dem til, som du allerede vet kan være med trekk- og nedtrekksmotstandene:

  • Pull-up- Med denne motstandsinnstillingen, når trykknappen trykkes, kan mikrokontrolleren eller Arduino se eller lese et null på den pinnen. Det vil si at den tolker det som et LAVT signal.
  • Trekke ned: I dette tilfellet er det motsatt, du kan lese eller motta et 1 eller HIGH signal gjennom den tilkoblede pinnen.

Ikke forveksle det med NC eller NA, som er noe annet annerledes som vi har sett tidligere. Dette er uavhengig av det andre ...

Anti-sprett

Trykknappene har en rebound-effekt når du trykker på den. Det vil si at når det trykkes eller slippes, er det en svingning i signalet som passerer gjennom kontaktene og kan føre til at det går fra en HIGT-tilstand til LAV eller omvendt uten egentlig å ønske at det skal skje. Det kan gi en uønsket effekt på Arduino og få den til å gjøre rare ting, som å aktivere et element når vi virkelig ønsket å slå av det med trykknappen, etc. Det er fordi Arduino tolker sprettene som om den hadde blitt presset mer enn en gang ...

Den negative effekten den har en løsning. For dette må en liten kondensator implementeres i anti-sprette kretsen (maskinvaremetode) eller programvare (modifisering av kildekoden), enten en pull-up eller pull-down konfigurasjon har blitt brukt eller hvis den er NC eller NO. I alle disse tilfellene må løsningen implementeres for å unngå disse reboundene.

For eksempel trekke opp og trekke ned kretser med anti-sprette kondensator de ville se ut slik:

rebounder

Mens programvaremetode Det kan sees i denne kodebiten:

hvis (digitalRead (knapp) == LAV) // Sjekk om du trykker på knappen
{
presset = 1; // Variabelen endrer verdi
}
hvis (digitalRead (knapp) == HØY && trykkes == 1)
{
// Utfør ønsket handling
presset = 0; // Variabelen går tilbake til sin opprinnelige verdi
}

Enkelt prosjekteksempel

anti-sprette med trykknapp og Arduino

Når vi har lært temaet for måter å koble trykknappen og anti-rebound-kretsen til, vil vi se et praktisk eksempel på kontroller en LED med trykknappen. Ordningen er like enkel som du kan se.

Når du er koblet til riktig, er det neste å skrive koden i Arduino IDE for å programmere panelet og begynne å eksperimentere med knappene. Et enkelt kodeeksempel for å kontrollere kretsen vår vil være følgende:

// Eksempel på skisse for å kontrollere knappen
int pin = 2;
int-tilstand;
pulserende int = 0;
ugyldig oppsett ()

{
pinMode (2, INPUT); // Å lese pulsen ved å lage den pininngangen

pinMode (13, OUTPUT); // For LED

Serial.begin (9600);
}
ugyldig sløyfe ()

{
hvis (digitalRead (2) == HIGH)

{

pinne = 2;

antiBounce (); // Ring til anti-sprettfunksjonen

}
}
// Programvare anti-sprette funksjon
ugyldig anti-sprette ()

{
mens (digitalRead (pin) == LOW);
state = digitalRead (13);
digitalWrite (tilstand 13 ,!);
mens (digitalRead (pin) == HIGH);

}


5 kommentarer, legg igjen dine

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   Marcelo Castillo plassholderbilde sa

    Kul!!! Tusen takk, jeg har bygd en CNC og paradoksalt nok har knappene vært det vanskeligste for meg å stille inn.

  2.   Liliana sa

    Hei! Jeg konsulterer som en nybegynner i forbindelse med GND ... den svarte ledningen skal ikke komme ut av den negative linjen, som ligger over den som er vist i diagram 2?

  3.   John sa

    Utmerket forklaring .. for et par år siden gjorde jeg et biltenningsprosjekt og sannheten er at jeg aldri kunne foreta et riktig tastetrykk. For tenningen .. Jeg skal prøve denne metoden. Jeg takker deg veldig mye for denne gode hjelpen

  4.   omar romero rincon sa

    Hei, jeg gjør et prosjekt med tre knapper og 5 lysdioder med følgende sekvens.
    1 trykknapp sender et signal til 2 lysdioder, som jeg har kalt 1 og 2.
    den andre trykknappen sender signal til 3 lysdioder, kalt 2,3 og 4.
    min tredje trykknapp sender et signal til ytterligere 3 lysdioder, kalt 3,4, 5 og XNUMX.

    Jeg har klart å gjøre den sekvensen, jeg har bare ett problem, når du trykker på 2 knapper, sender den et falskt signal til lysdioden som skal forbli på og får den til å blinke av og til, jeg har kontrollert den ved å sette en forsinkelse (på 2 sekunder, som er det jeg trenger slik at lysdiodene forblir på og deretter skru seg av. så er spørsmålet mitt hvordan kan jeg sette millis funksjonen inn i programmet mitt, jeg forstår ikke hvordan millis fungerer, jeg vil vite om du kan hjelpe meg ved å lage et eksempel for 3 knapper med millis i hver av dem, jeg trenger millis for å kunne trykke på knappene når som helst uten å forsinke arduinoen.

    1.    Isaac sa

      Hola Omar,
      Jeg anbefaler at du ser Arduino-opplæringen vår:
      https://www.hwlibre.com/programacion-en-arduino/
      Og du kan også se vår artikkel om millis ():
      https://www.hwlibre.com/millis-arduino/
      En hilsen.