|

Przycisk chwilowy z Arduino

Przycisk chwilowy to jeden z podstawowych komponentów analogowych stosowany w robotyce i automatyce. Przyciski chwilowe występują w wersji NO – Normally Open oraz NC – Normally Closed. W arduino zazwyczaj ustawia się go w trybie pulldown lub pullup za pomocą rezystora 10k / 20k. Pulldown ściąga stan na niski (rezystor jest połączony z GND), a pullup podnosi stan na wysoki (rezystor jest połączony z 5V).

Dodatkowo można zastosować kondensator o małej pojemności, aby wykluczyć zjawisko drgania styków przycisku (debouncing).

pushbutton pullup pulldown inputpullup arduino
pushbutton pullup pulldown inputpullup arduino

Wykrywanie pojedynczych kliknięć wymaga dodatkowych zabiegów, np. poprzez sprawdzanie poprzedniego i aktualnego stanu przycisku.

Zliczanie kliknięć przycisku chwilowego

bool btnPrevState = false;
int counter = 0;
int btnPin = 4;

void setup() {
  btnPrevState = digitalRead(btnPin);
  Serial.begin(9600);
}

void onClick() {
  bool btnNowState = digitalRead(btnPin);
  if (btnNowState == 1 && btnPrevState == 0) {
    counter++;
    Serial.println(counter);
  }
  btnPrevState = btnNowState;
}

void loop() {
  onClick();
}

Przycisk chwilowy z millis

const int bounce = 200;
unsigned long lastClickedTime = 0;
int counter = 0;
int btnPin = 4;

void setup() {
  Serial.begin(9600);
}

void checkButton() {
  if (digitalRead(btnPin) == HIGH) {
    if (millis() - lastClickedTime > bounce) {
      lastClickedTime = millis();
      counter++;
      Serial.println(counter);
    }
  }
}

void loop() {
  checkButton();
}

Przycisk chwilowy z filtrem dolnoprzepustowym RC

pushbutton z filtrem dolnoprzepustowym arduino
pushbutton z filtrem dolnoprzepustowym arduino
int counter = 0;
void setup(){
  Serial.begin(9600);
}

void loop(){
  if(analogRead(A0) == 1){
    counter++;
    Serial.println(counter);
  } 
}

Zobacz: Funkcje czasowe z millis Arduino

Podobne wpisy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *