Jak używać przełącznika przycisku z Arduino

How to Use a Push Button Switch with the Arduino

Przełączniki przycisków są powszechnie używane w elektronice do sterowania urządzeniami lub wyzwalania określonych działań. Dzięki Arduino możesz łatwo odczytać stan przycisku i użyć go w swoich projektach. Ten samouczek poprowadzi Cię przez konfigurowanie i użycie przełącznika przycisku z Arduino, wraz z przykładami włączenia go do kodu.


Czego będziesz potrzebować

  1. Arduino Board (np. UNO, Mega, Nano)
  2. Przełącznik przycisku
  3. Rezystor 10K-OHM (do konfiguracji rozciągnięcia)
  4. Druty chleba i skoczków
  5. Komputer z zainstalowanym Arduino IDE

Krok 1: Zrozumienie przełączników przycisków

Przełącznik przycisku to proste urządzenie, które łączy lub odłącza obwód po naciśnięciu. Zazwyczaj ma cztery piny, z których dwa są wewnętrznie podłączone, tworząc pojedynczy przełącznik.

Wspólne konfiguracje

  • Odwrotny rezystor: Zapewnia, że ​​kołek wejściowy odczytuje nisko, gdy przycisk nie jest naciśnięty.
  • Rezystor podciągający: Zapewnia, że ​​kołek wejściowy odczytuje wysoko, gdy przycisk nie jest naciśnięty (może użyć wewnętrznego rezystora podciągania Arduino).

Krok 2: Okablowanie przycisku do Arduino

Konfiguracja rezystora wyciągnięcia

Przycisk Połączenie
Jedna strona Arduino Pin 2
Druga strona 5v
Rezystor (10k) Arduino Pin 2 do GND

Krok 3: Czytanie stanu przycisku

Użyj digitalRead() funkcja, aby ustalić, czy przycisk jest naciśnięty (wysoki), czy nie (niski).

Przykładowy kod: Podstawowy odczyt przycisku

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

Krok 4: Używanie wewnętrznego rezystora podciągania

Arduino ma wbudowane rezystory podciągające, które mogą uprościć okablowanie, eliminując potrzebę zewnętrznego rezystora.

Okablowanie do podciągania wewnętrznego

Przycisk Połączenie
Jedna strona Arduino Pin 2
Druga strona GND

Przykładowy kod: za pomocą wewnętrznego podciągania

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

Krok 5: Zadłużenie przycisku

Po naciśnięciu przyciski mechaniczne często wytwarzają hałas lub „podskakiwanie”, powodując wiele odczytów. Debuina zapewnia stabilne odczyty.

Przykładowy kod: Zabranie przycisku

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

Krok 6: Kontrolowanie diody LED za pomocą przycisku

Możesz użyć przycisku do kontrolowania diody LED. Na przykład przełącz stan LED przy naciśnięciu każdego przycisku.

Przykładowy kod: przycisk przełącza diodę 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;
}

Zastosowania przycisków

  1. Przełączniki start/stop
  2. Wejście użytkownika do wyboru trybów
  3. Zresetuj przyciski w obwodach
  4. Oświetlenie kontrolne lub urządzenia

Rozwiązywanie problemów

  • Przycisk nie odpowiada: Sprawdź okablowanie i upewnij się, że używany jest odpowiedni pinmod.
  • Niestabilne odczyty: Dodaj logikę debuncia lub użyj rezystora podciągania/rozciągania.
  • LED, a nie oświetlenie: Potwierdź orientację LED i użyj rezystora, aby ograniczyć prąd.

Wniosek

Nauczyłeś się, jak korzystać z przełącznika przycisku z Arduino, w tym czytaniem jego stanu, debunowania i sterowania urządzeniami, takimi jak diody LED. Przyciski naciśnięcia są fundamentalnym elementem elektroniki, a opanowanie ich użycia otworzy niekończące się PO

Zostaw komentarz

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.