Kung paano gumamit ng isang switch ng pindutan ng push kasama ang arduino

How to Use a Push Button Switch with the Arduino

Ang mga switch ng pindutan ng push ay karaniwang ginagamit sa electronics upang makontrol ang mga aparato o mag -trigger ng mga tiyak na aksyon. Sa isang Arduino, madali mong mabasa ang estado ng isang pindutan ng push at gamitin ito sa iyong mga proyekto. Ang tutorial na ito ay gagabay sa iyo sa pamamagitan ng pag -set up at paggamit ng isang switch ng pindutan ng push kasama ang Arduino, kasama ang mga halimbawa ng kung paano isama ito sa iyong code.


Ano ang kakailanganin mo

  1. Arduino Board (hal., Uno, Mega, Nano)
  2. Switch ng pindutan ng push
  3. 10k-ohm risistor (para sa pull-down na pagsasaayos)
  4. Mga wire ng tinapay at jumper
  5. Isang computer na may naka -install na Arduino IDE

Hakbang 1: Pag -unawa sa mga switch ng pindutan ng push

Ang isang switch ng pindutan ng push ay isang simpleng aparato na nag -uugnay o nag -disconnect ng isang circuit kapag pinindot. Karaniwan itong may apat na mga pin, dalawa sa mga ito ay konektado sa loob, na bumubuo ng isang solong switch.

Karaniwang mga pagsasaayos

  • Pull-down risistor: Tinitiyak na ang input pin ay nagbabasa ng mababa kapag ang pindutan ay hindi pinindot.
  • Pull-up risistor: Tinitiyak na ang input pin ay nagbabasa ng mataas kapag ang pindutan ay hindi pinindot (maaaring gumamit ng panloob na pull-up risistor ng Arduino).

Hakbang 2: Ang mga kable ng pindutan ng push sa Arduino

Pull-down na pagsasaayos ng risistor

Pindutan ng pin Koneksyon
Isang tabi Arduino pin 2
Iba pang panig 5v
Resistor (10k) Arduino pin 2 hanggang gnd

Hakbang 3: Pagbasa ng Estado ng Button

Gamitin ang digitalRead() Pag -andar upang matukoy kung ang pindutan ay pinindot (mataas) o hindi (mababa).

Halimbawa Code: Basic Button Basahin

#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
}

Hakbang 4: Gamit ang panloob na pull-up risistor

Ang Arduino ay may built-in na pull-up resistors na maaaring gawing simple ang mga kable sa pamamagitan ng pagtanggal ng pangangailangan para sa isang panlabas na risistor.

Mga kable para sa panloob na pull-up

Pindutan ng pin Koneksyon
Isang tabi Arduino pin 2
Iba pang panig Gnd

Halimbawa ng code: gamit ang panloob na pull-up

#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
}

Hakbang 5: Pagdebouncing ang pindutan

Ang mga mekanikal na pindutan ay madalas na gumagawa ng ingay o "nagba -bounce" kapag pinindot, na nagiging sanhi ng maraming pagbabasa. Tinitiyak ng Debouncing ang matatag na pagbabasa.

Halimbawa ng code: Pag -deboun ng isang pindutan

#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;
}

Hakbang 6: Pagkontrol ng isang LED na may pindutan

Maaari mong gamitin ang pindutan upang makontrol ang isang LED. Halimbawa, i -toggle ang estado ng LED sa bawat pindutin ng pindutan.

Halimbawa Code: Button Toggles 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;
}

Mga aplikasyon ng mga pindutan ng push

  1. Start/Stop switch
  2. Input ng gumagamit para sa pagpili ng mga mode
  3. I -reset ang mga pindutan sa mga circuit
  4. Control lighting o appliances

Pag -aayos

  • Button na hindi tumutugon: Suriin ang mga kable at tiyakin na ginagamit ang tamang pinmode.
  • Hindi matatag na pagbabasa: Magdagdag ng debounce logic o gumamit ng isang pull-up/pull-down risistor.
  • Humantong hindi pag -iilaw: Kumpirma ang orientation ng LED at gumamit ng isang risistor upang limitahan ang kasalukuyang.

Konklusyon

Nalaman mo kung paano gumamit ng isang switch ng pindutan ng push kasama ang Arduino, kasama ang pagbabasa ng estado, pag -deboun, at pagkontrol ng mga aparato tulad ng mga LED. Ang mga pindutan ng push ay isang pangunahing sangkap sa electronics, at ang pag -master ng kanilang paggamit ay magbubukas ng walang katapusang po

Mag -iwan ng komento

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.