Gomb bekötése és programozása

Ismerje meg, hogyan kell bekábelezni és programozni egy nyomógombot a LED vezérlésére.


Utolsó felülvizsgálat: 2022.02.04 16:50


A nyomógombok vagy kapcsolók egy áramkör két pontját kapcsolják össze, amikor megnyomja őket. Ez a példa bekapcsolja a 13. kivezetés beépített LED-jét, amikor megnyomja a gombot.

Hardver szükséglet

  • Arduino kártya

  • Egy pillanatkapcsoló, gomb vagy billenőkapcsoló

  • 10 kohm-os ellenállás

  • összekötő vezetékek

  • dugdosós próbapanel (breadboard)

Az áramkör

Csatlakoztasson három vezetéket a kártyához. Az első kettő, a piros és a fekete, a próbapanel oldalán lévő két hosszú függőleges sorhoz csatlakozik, hogy hozzáférést biztosítson az 5 voltos táphoz és a földhöz. A harmadik vezeték a 2. digitális kivezetéstől a nyomógomb egyik lábáig tart. A gomb ugyanezen lába csatlakozik egy lehúzó ellenálláson keresztül (itt 10 kohm) a földhöz. A gomb másik lába az 5 voltos tápfeszültségre csatlakozik.

Nyitott (nem lenyomott) nyomógomb esetén nincs kapcsolat a nyomógomb két lába között, így a kivezetést földeljük (a lehúzó ellenálláson keresztül) és LOW-t olvasunk. A gomb bezárásakor (lenyomva) összeköttetést hoz létre a két lába között, a kivezetést 5 voltra csatlakoztatja, így HIGH-t olvasunk.

Ezt az áramkört fordítva is bekötheti, egy felhúzó ellenállással, amely HIGH értéken tartja a bemenetet, és LOW-ra megy, amikor megnyomja a gombot. Ha igen, akkor a vázlat viselkedése megfordul, a LED normál esetben világít, és a gomb megnyomásakor kialszik.

Ha mindenről leválasztja a digitális I/O kivezetést, előfordulhat, hogy a LED hibásan villog. Ennek az az oka, hogy a bemenet "lebegő" - vagyis véletlenszerűen HIGH vagy LOW értékkel tér vissza. Ezért kell az áramkörbe a felhúzó vagy a lehúzó ellenállás.

Vázlat

A kód

Az alábbi kód a millis() függvényt használja, egy olyan parancsot, amely visszaadja, hogy hány ezredmásodperc telt el azóta, hogy a tábla elkezdte futtatni az aktuális vázlatot, és villogtatni egy LED-et.

/*
  Button

  Be- és kikapcsolja a 13-as digitális kivezetéshez csatlakoztatott fénykibocsátó diódát (LED),
  amikor megnyomja a 2-es kivezetéshez csatlakoztatott nyomógombot.

  Az áramkör:
  - LED csatlakozik a 13-as kivezetéstől a földig 220 ohmos ellenálláson keresztül
  - nyomógomb +5V-ról a 2-es kivezetésre csatlakoztatva
  - 10 kohm-os ellenállás csatlakozik a 2. kivezetésre a földről

  - Megjegyzés: A legtöbb Arduino kártyán már van egy LED a 13-as kivezetésre csatlakoztatva.

  created 2005
  by DojoDave <http://www.0j0.org>
  modified 30 Aug 2011
  by Tom Igoe

  Ez a kód nyilvános.

  https://docs.arduino.cc/built-in-examples/digital/Button
*/

// az állandók nem változnak. Itt a kivezetés számának beállítására szolgálnak:
const int buttonPin = 2;     // a nyomógomb kivezetés száma
const int ledPin =  13;      // a LED kivezetés száma

// a változók megváltozhatnak:
int buttonState = 0;         // változó a nyomógomb állapotának leolvasására

void setup() {
  // inicializálja a LED kivezetést kimenetként:
  pinMode(ledPin, OUTPUT);
  // inicializálja a nyomógomb kivezetést bemenetként:
  pinMode(buttonPin, INPUT);
}

void loop() {
  // olvassa a nyomógomb állapotának értékét:
  buttonState = digitalRead(buttonPin);

  // ellenőrizze, hogy a nyomógomb meg van-e nyomva. Ha igen, akkor a gombállapot HIGH:
  if (buttonState == HIGH) {
    // LED bekapcsolása:
    digitalWrite(ledPin, HIGH);
  } else {
    // LED kikapcsolása:
    digitalWrite(ledPin, LOW);
  }
}

Tudj meg többet

További alapvető oktatóanyagokat a beépített példák részben talál.

Felfedezheti a nyelvi referenciát is, az Arduino programozási nyelv részletes gyűjteményét.