Kuinka käyttää painikekytkintä Arduinon kanssa

How to Use a Push Button Switch with the Arduino

Painikekytkimiä käytetään yleisesti elektroniikassa laitteiden hallintaan tai tiettyjen toimintojen käynnistämiseen. Arduinon avulla voit helposti lukea painikkeen tilan ja käyttää sitä projektissasi. Tämä opetusohjelma opastaa sinua määrittämään ja käyttämään painikevaihtoa Arduinon kanssa sekä esimerkkejä siitä, kuinka se sisällyttää koodiin.


Mitä tarvitset

  1. Arduino Board (esim. UNO, Mega, Nano)
  2. Painaton kytkin
  3. 10K-OHM-vastus (alasvetokokoonpanoon)
  4. Leipälevy- ja hyppyjohdot
  5. Tietokone, jossa Arduino IDE on asennettu

Vaihe 1: Push -painikekytkimien ymmärtäminen

Painikekytkin on yksinkertainen laite, joka yhdistää tai katkaisee piirin painettaessa. Siinä on tyypillisesti neljä tappia, joista kaksi on sisäisesti kytketty, muodostaen yhden kytkimen.

Yhteiset kokoonpanot

  • Vedä alas vastus: Varmistaa, että syöttötappi lukee matalaa, kun painiketta ei painaa.
  • Pull-up-vastus: Varmistaa, että syöttötappi lukee korkean, kun painiketta ei paineta (voi käyttää Arduinon sisäistä vetovastusta).

Vaihe 2: Push -painikkeen johdotus Arduinoon

Veto-alasvastuksen kokoonpano

Nappina Yhteys
Toinen puoli Arduinotappi 2
Toinen puoli 5V
Vastus (10k) Arduino -nasta 2 - GND

Vaihe 3: Button -tilan lukeminen

Käyttää digitalRead() Toiminto määrittääksesi, painetaanko painiketta (korkea) vai ei (matala).

Esimerkki Koodi: Peruspainike Lue

#define buttonPin 2 // Button connected to pin 2

void setup() {
  pinMode(buttonPin, INPUT); // Set pin 2 as input
  Serial.begin(9600);
  Serial.println("Button Test");
}

void loop() {
  int buttonState = digitalRead(buttonPin); // Read the button state

  if (buttonState == HIGH) {
    Serial.println("Button Pressed");
  } else {
    Serial.println("Button Released");
  }

  delay(100); // Small delay for readability
}

Vaihe 4: Sisäisen vetovastuksen käyttäminen

Arduinossa on sisäänrakennettuja vetovastuksia, jotka voivat yksinkertaistaa johdotusta poistamalla ulkoisen vastuksen tarve.

Johdotus sisäiseen vetoomukseen

Nappina Yhteys
Toinen puoli Arduinotappi 2
Toinen puoli Hölynpöly

Esimerkki koodi: sisäisen pull-u-u-käyttäminen

#define buttonPin 2 // Button connected to pin 2

void setup() {
  pinMode(buttonPin, INPUT_PULLUP); // Enable internal pull-up resistor
  Serial.begin(9600);
  Serial.println("Button Test with Pull-Up");
}

void loop() {
  int buttonState = digitalRead(buttonPin); // Read the button state

  if (buttonState == LOW) { // LOW means button is pressed
    Serial.println("Button Pressed");
  } else {
    Serial.println("Button Released");
  }

  delay(100); // Small delay for readability
}

Vaihe 5: painikkeen poistaminen

Mekaaniset painikkeet tuottavat usein melua tai "pomppimista" painettaessa aiheuttaen useita lukemia. Debouncing varmistaa vakaat lukemat.

Esimerkki koodi: painikkeen poistaminen

#define buttonPin 2 // Button connected to pin 2

unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50; // 50ms debounce time
int lastButtonState = HIGH;
int buttonState;

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  int reading = digitalRead(buttonPin);

  // If the button state has changed, reset the debounce timer
  if (reading != lastButtonState) {
    lastDebounceTime = millis();
  }

  // Check if the debounce time has passed
  if ((millis() - lastDebounceTime) > debounceDelay) {
    if (reading != buttonState) {
      buttonState = reading;

      if (buttonState == LOW) {
        Serial.println("Button Pressed");
      }
    }
  }

  lastButtonState = reading;
}

Vaihe 6: LEDin ohjaaminen painikkeella

Voit hallita LED -painiketta. Vaihda esimerkiksi LED -tila jokaisella painikkeella paina.

Esimerkki Koodi: Button -vaihtaminen LED

#define buttonPin 2 // Button connected to pin 2
#define ledPin 13   // LED connected to pin 13

bool ledState = false;
bool lastButtonState = HIGH;

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
}

void loop() {
  int buttonState = digitalRead(buttonPin);

  if (buttonState == LOW && lastButtonState == HIGH) {
    ledState = !ledState; // Toggle LED state
    digitalWrite(ledPin, ledState ? HIGH : LOW);
    delay(200); // Debounce delay
  }

  lastButtonState = buttonState;
}

Painikkeiden sovellukset

  1. Käynnistä/Stop -kytkimet
  2. Käyttäjän syöttö tilojen valitsemiseksi
  3. Palauta painikkeet piireissä
  4. Ohjausvalaistus tai laitteet

Vianetsintä

  • Painike ei vastaa: Tarkista johdotus ja varmista, että oikeaa PinMode -ohjelmaa käytetään.
  • Epävakaat lukemat: Lisää Debounce Logic tai käytä veto-/vetävää vastusta.
  • LED ei valaistus: Vahvista LED -suunta ja käytä vastusta virran rajoittamiseen.

Johtopäätös

Olet oppinut käyttämään painikekytkintä Arduinon kanssa, mukaan lukien sen tilan lukeminen, debounding ja hallintalaitteet, kuten LEDit. Painikkeet ovat tärkein komponentti elektroniikassa, ja niiden käytön hallitseminen avaa loputtoman PO: n

Jätä kommentti

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.