Nyomógomb: hogyan használhatjuk ezt az egyszerű elemet az Arduino-val

gomb

Un nyomógomb egy gomb, amely lehetővé teszi az elektronikus jel megszakítását vagy küldését. Ezzel az egyszerű elemmel más elemekkel kombinálva számos projekt számára hozhat létre projekteket. Az ilyen típusú nyomógombok használata nagyon gyakori az Arduino-val való projektek esetében. Ezeknek a gomboknak a kombinálásával valamivel összetettebb billentyűzetet hozhat létre, bár ezekre a felhasználásokra már vannak programozható billentyűzetek ...

By the way, nem szabad összekeverni a nyomógombot egy kapcsolóval. Teljesen különböző dolgok. A különbség az, hogy a kapcsolót vagy kapcsolót minden egyes megnyomásakor aktiválják vagy deaktiválják. Míg a nyomógomb csak egy állapotban marad, amíg nyomást gyakorolnak rá. Megjegyeztem, hogy küldhet vagy megszakíthat, mert két alapvető típusú gomb létezik.

nyomógomb szimbólum

Vannak a NO vagy normálisan nyitott nyomógombok és NC vagy normálisan zárt nyomógombok. Ez a váltókból is hangzik neked. És igen, pontosan ugyanaz a művelet. Ha van NC-je, akkor az áram átengedi a kapcsait, és csak akkor szakít meg, amikor Ön megnyomja. Másrészt az NA nem engedi át az áramot, ha nem gyakorolnak rá nyomást, és csak akkor engedi át, ha megnyomja.

Ennek tudatában szinte minden, amit tudnia kell egy nyomógombról hogy elindítsa a kapcsolatot és a programozást az Arduino használatával. Az az igazság, hogy ez olyan egyszerű elem, hogy nem sokkal többet lehet mondani az ilyen típusú nyomógombokról.

Nyomógombos integráció az Arduino-val

áramkör Arduinóval

La nyomógomb csatlakoztatása hogy az Arduinóval kölcsönhatásba lépjen, nem lehet egyszerűbb. Ilyen például az a diagram, amelyet ezeken a vonalakon láthat. Ennyi lenne a kísérletezés megkezdése. De természetesen ezzel a sémával keveset tehet. Szüksége lenne egy kis fantáziára, hogy eldöntse, mit irányít ez a gomb. Valójában, ha gyakran olvassa a hwlibre.es fájlt, már látott néhány cikket, ahol nyomógombokat használtunk ...

Csatlakozási módok

felhúzás és lehúzás

Egy dolog, amit tudnia kell, az a visszapattanás és hogyan csatlakoztassa ezeket a nyomógombokat. Először azok összekapcsolásának módjára megyünk, amelyről már tudja, hogy a felhúzható és lehúzható ellenállásokkal lehet:

  • Felhúz- Ezzel az ellenállási beállítással a nyomógomb megnyomásakor a mikrovezérlő vagy az Arduino nulla értéket láthat vagy olvashat az adott csapon. Vagyis LOW jelként értelmezi.
  • Lehúz: ebben az esetben az ellenkezője van, olvashat vagy fogadhat 1 vagy HIGH jelet a csatlakoztatott tűn keresztül.

Ne keverje össze az NC-vel vagy az NA-val, ami valami más, mint korábban láthattuk. Ez független a többi ...

Ugrálást gátló

A nyomógomboknak van egy visszapattanó hatás amikor megnyomják. Vagyis amikor megnyomják vagy elengedik, a jel ingadozása van, amely áthalad az érintkezõin, és okozhatja, hogy a HIGT állapotból a LOW vagy a fordított állapotba kerüljön, anélkül, hogy valóban akarná, hogy ez megtörténjen. Ez nemkívánatos hatást gyakorolhat az Arduinóra, és furcsa dolgokat tehet, például aktiválhat egy elemet, amikor valóban ki akartuk kapcsolni a nyomógombbal stb. Ez azért van, mert az Arduino úgy értelmezi a visszapattanásokat, mintha többször is megnyomták volna ...

Ez a negatív hatás van megoldása. Ehhez egy kis kondenzátort kell megvalósítani a visszapattanásgátló áramkörben (hardveres módszer) vagy szoftverben (a forráskód módosítása), függetlenül attól, hogy felhúzási vagy lehúzási konfigurációt alkalmaztak-e, vagy ha NC vagy NO. Mindezekben az esetekben a megoldást a visszapattanások elkerülésére kell megvalósítani.

Például felhúzható és lehúzható áramkörök a visszapattanó kondenzátor valahogy így néznének ki:

visszapattanó

Míg szoftveres módszer Ebben a kódrészletben látható:

if (digitalRead (gomb) == LOW) // Ellenőrizze, hogy megnyomták-e a gombot
{
megnyomva = 1; // A változó megváltoztatja az értéket
}
if (digitalRead (gomb) == HIGH && megnyomva == 1)
{
// Végezze el a kívánt műveletet
megnyomva = 0; // A változó visszatér az eredeti értékéhez
}

Egyszerű projektpélda

anti-ugrálás nyomógombbal és Arduino

Miután megtanultuk a nyomógomb és a visszapattanásgátló áramkör csatlakoztatásának módjainak témáját, gyakorlati példát fogunk látni vezérelhet egy LED-et a nyomógombbal. A séma ugyanolyan egyszerű, mint láthatja.

A megfelelő csatlakozás után a következő az írás a kód az Arduino IDE-ben programozni a panelt és elkezdeni kísérletezni a gombokkal. Egy egyszerű kódpélda áramkörünk vezérlésére a következő lenne:

// Példa vázlatra a gomb vezérléséhez
int pin = 2;
int állapot;
pulzáló int = 0;
void setup ()

{
pinMode (2, INPUT); // A pulzus beolvasása a pin bemenet megadásával

pinMode (13, OUTPUT); // A LED-hez

Serial.begin (9600);
}
void loop ()

{
if (digitalRead (2) == HIGH)

{

tű = 2;

antiBounce (); // Hívás a visszapattanásgátló funkcióra

}
}
// Szoftver visszapattanásgátló funkció
érvénytelen ugrálásgátló ()

{
while (digitalRead (pin) == LOW);
állapot = digitalRead (13);
digitalWrite (13 ,! állapot);
while (digitalRead (pin) == HIGH);

}


5 hozzászólás, hagyd a tiedet

Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   Marcelo Castillo helyőrző kép dijo

    Menő!!! Köszönöm szépen, CNC-t építettem, és paradox módon a gombokat volt a legnehezebb hangolni.

  2.   Liliana dijo

    Szia! Kezdőként konzultálok a GND kapcsán ... .. a fekete vezetéknek nem szabad kijönnie a negatív vonalból, amely a 2. ábrán látható vonal felett helyezkedik el?

  3.   János dijo

    Kiváló magyarázat .. pár évvel ezelőtt készítettem egy projektet egy autó beindítására, és az az igazság, hogy soha nem tudtam helyes sajtót készíteni A gyújtásért .. Megpróbálom ezt a módszert. Segítség

  4.   omar romero rincon dijo

    Sziasztok, egy projektet csinálok három gombbal és 5 leddel a következő sorrendben.
    1 nyomógomb jelet küld 2 lednek, amit 1-nek és 2-nek hívtam.
    a második nyomógomb jelet küld 3 lednek, ezek a 2,3, 4 és XNUMX.
    a harmadik nyomógombom további 3 ledre küld jelet, ezek a 3,4 és 5.

    Sikerült megcsinálni ezt a sorrendet, csak egy problémám van, 2 gomb megnyomására téves jelet küld a lednek, aminek égve kell maradnia, amitől szaggatottan villog, késleltetéssel (2 másodperc) szabályoztam , ami kell hogy a ledek égve maradjanak majd kikapcsoljanak.Szóval a kérdésem az lenne hogy a millis függvényt hogy tudom berakni a programomba nem értem hogy működik a millis szeretném tudtok segíteni Ha egy példát készítek 3 gombra, amelyek mindegyikében millis-t használnak, milliekre van szükségem ahhoz, hogy bármikor lenyomhassam a gombokat anélkül, hogy késleltetné az arduino-t.

    1.    Izsák dijo

      Szia Omar!
      Azt javaslom, tekintse meg Arduino oktatóanyagunkat:
      https://www.hwlibre.com/programacion-en-arduino/
      És megtekintheti a millis()-ról szóló cikkünket is:
      https://www.hwlibre.com/millis-arduino/
      A köszöntés.