Tryckknapp: hur man använder detta enkla element med Arduino

knapp

Un tryckknapp är en knapp som låter dig avbryta eller skicka en elektronisk signal. Med detta enkla element kombinerat med andra element kan du skapa projekt för en mängd applikationer. Användningen av denna typ av tryckknappar är mycket vanlig när det gäller projekt med Arduino. Och genom att kombinera flera av dessa knappar kan du skapa ett något mer komplext tangentbord, även om det redan finns programmerbara tangentbord för dessa användningsområden ...

Förresten, du bör inte förväxla tryckknappen med en omkopplare. De är helt olika saker. Skillnaden är att omkopplaren eller omkopplaren aktiveras eller avaktiveras med varje tryck som görs på den. Medan tryckknappen bara förblir i ett tillstånd medan det utövas tryck på den. Jag har kommenterat att det kan skicka eller avbryta, det beror på att det finns två grundläggande typer av knappar.

tryckknappssymbol

Det finns NO eller normalt öppna tryckknappar och NC eller normalt stängda. Detta låter också för dig från reläerna. Och ja, det är exakt samma operation. När du har en NC kommer den att släppa ström genom sina terminaler och den avbryts bara medan du trycker på den. Å andra sidan låter NA inte ström passera när tryck inte utövas på det och kommer bara att låta det passera när du trycker på det.

Veta att, är nästan allt du behöver veta om en tryckknapp för att starta din anslutning och programmering med Arduino. Sanningen är att det är så enkelt att det inte finns mycket mer att säga om denna typ av tryckknappar.

Tryckknappsintegration med Arduino

krets med Arduino

La ansluta en tryckknapp att få det att interagera med Arduino kunde inte vara enklare. Ett exempel är diagrammet som du kan se på dessa rader. Det skulle vara allt som krävs för att börja experimentera. Men naturligtvis, med det schemat kan du göra lite. Det skulle vara nödvändigt för dig att sätta lite fantasi för att bestämma vad den knappen ska kontrollera. Faktum är att om du ofta läser hwlibre.es har du redan sett några artiklar där vi har använt tryckknappar ...

Sätt att ansluta den

pull-up och pull-down

En sak som du bör veta är frågan om anti-studs och hur man ansluter dessa tryckknappar. Först går vi till vägen för att ansluta dem, som du redan vet kan vara med upp- och neddragningsmotstånden:

  • Dra upp- Med denna motståndskonfiguration, när tryckknappen trycks in, kan mikrokontrollern eller Arduino se eller läsa en noll på den stiftet. Det vill säga det tolkar det som en LÅG signal.
  • Dra ner: I det här fallet är det tvärtom, du kan läsa eller ta emot en 1 eller HÖG signal genom den anslutna stiftet.

Förväxla det inte med NC eller NA, vilket är något annat som vi har sett tidigare. Detta är oberoende av det andra ...

Anti-studs

Tryckknapparna har en studseffekt när du trycker på den. Det vill säga, när den trycks ned eller släpps upp finns det en fluktuation i signalen som passerar genom dess kontakter och kan få den att gå från ett HIGT-tillstånd till LOW eller vice versa utan att verkligen vilja att det ska hända. Det kan ge en oönskad effekt på Arduino och få den att göra konstiga saker, som att aktivera ett element när vi verkligen ville stänga av det med tryckknappen etc. Det beror på att Arduino tolkar studsarna som om den hade pressats mer än en gång ...

Den negativa effekten den har en lösning. För detta måste en liten kondensator implementeras i anti-studs-kretsen (hårdvarumetod) eller mjukvara (modifiering av källkoden), oavsett om en pull-up eller pull-down konfiguration har använts eller om den är NC eller NO. I alla dessa fall måste lösningen implementeras för att undvika dessa returer.

Till exempel pull-up och pull-down kretsar med anti-studs kondensator de skulle se ut så här:

rebounder

Medan mjukvarumetod Det kan ses i det här kodavsnittet:

if (digitalRead (knapp) == LOW) // Kontrollera om knappen trycks in
{
tryckt = 1; // Variabeln ändrar värde
}
om (digitalRead (knapp) == HÖG && tryckt == 1)
{
// Utför önskad åtgärd
tryckt = 0; // Variabeln återgår till sitt ursprungliga värde
}

Enkelt projektexempel

anti-studs med tryckknapp och Arduino

När vi väl har lärt oss ämnet för sätten att ansluta vår tryckknapp och anti-rebound-kretsen, kommer vi att se ett praktiskt exempel på styr en LED med tryckknappen. Schemat är lika enkelt som du kan se.

När du är ansluten korrekt är nästa sak att skriva koden i Arduino IDE för att programmera din panel och börja experimentera med knapparna. Ett enkelt kodexempel för att styra vår krets skulle vara följande:

// Exempel på skiss för att styra knappen
int-stift = 2;
int-tillstånd;
pulserande int = 0;
ogiltig installation ()

{
pinMode (2, INPUT); // Att läsa pulsen genom att göra den pin-ingången

pinMode (13, OUTPUT); // För lysdioden

Serial.begin (9600);
}
ogiltig slinga ()

{
om (digitalRead (2) == HÖG)

{

stift = 2;

antiBounce (); // Ringa till anti-studs-funktionen

}
}
// Programvaruavvisningsfunktion
ogiltig anti-studs ()

{
medan (digitalRead (pin) == LOW);
tillstånd = digitalRead (13);
digitalWrite (13 ,! tillstånd);
medan (digitalRead (pin) == HIGH);

}


5 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   Platshållarbild för Marcelo Castillo sade

    Häftigt!!! Tack så mycket, jag har byggt en CNC och paradoxalt nog har knapparna varit det svåraste för mig att ställa in.

  2.   Liliana sade

    Hej! Jag konsulterar som nybörjare i samband med GND ... .. den svarta ledningen borde inte komma ut från den negativa linjen, som ligger ovanför den som visas i diagram 2?

  3.   John sade

    Utmärkt förklaring .. för ett par år sedan gjorde jag ett biltändningsprojekt och sanningen är att jag aldrig kunde göra ett korrekt tangenttryckning. För tändningen .. Jag ska testa den här metoden. Jag tackar dig så mycket för den här stora hjälpen

  4.   omar romero rincon sade

    Hej, jag gör ett projekt med tre knappar och 5 lysdioder med följande sekvens.
    1 tryckknapp skickar en signal till 2 lysdioder som jag har kallat 1 och 2.
    den andra tryckknappen skickar signalen till 3 lysdioder, kallade 2,3 och 4.
    min tredje tryckknapp skickar en signal till ytterligare 3 lysdioder, kallade 3,4, 5 och XNUMX.

    Jag har lyckats göra den sekvensen, jag har bara ett problem, när man trycker på 2 knappar skickar den en falsk signal till lysdioden som ska stanna på vilket gör att den blinkar intermittent, jag har kontrollerat den genom att sätta en fördröjning (på 2 sekunder, vilket är vad jag behöver så att lysdioderna förblir tända och sedan släcks sen är min fråga hur kan jag lägga in millis funktionen i mitt program, jag förstår inte hur millis fungerar, jag vill veta om du kan hjälpa mig genom att gör ett exempel för 3 knappar med millis i var och en av dem, jag behöver millis för att kunna trycka på knapparna när som helst utan att fördröja arduino.

    1.    Isaac sade

      Hola Omar,
      Jag rekommenderar att du ser vår Arduino-handledning:
      https://www.hwlibre.com/programacion-en-arduino/
      Och du kan också se vår artikel om millis ():
      https://www.hwlibre.com/millis-arduino/
      En hälsning.