Pushbutton: jak korzystać z tego prostego elementu w Arduino

przycisk

Un przycisk to przycisk, który umożliwia przerwanie lub wysłanie sygnału elektronicznego. Dzięki temu prostemu elementowi w połączeniu z innymi elementami możesz tworzyć projekty do wielu zastosowań. Stosowanie tego typu przycisków jest bardzo powszechne w projektach z Arduino. Łącząc kilka z tych przycisków, możesz stworzyć nieco bardziej złożoną klawiaturę, chociaż istnieją już programowalne klawiatury do tych zastosowań ...

By the way, nie należy mylić przycisku z przełącznikiem. To są zupełnie inne rzeczy. Różnica polega na tym, że przełącznik lub przełącznik jest aktywowany lub dezaktywowany z każdym jego naciśnięciem. Natomiast przycisk pozostanie tylko w jednym stanie podczas wywierania na niego nacisku. Skomentowałem, że może wysyłać lub przerywać, ponieważ istnieją dwa podstawowe typy przycisków.

symbol przycisku

Przyciski NO lub normalnie otwarte i przyciski NC lub normalnie zamknięte. To również zabrzmi z przekaźników. I tak, to dokładnie ta sama operacja. Kiedy masz NC, przepuszcza prąd przez swoje zaciski i przerywa tylko, gdy go naciskasz. Z drugiej strony NA nie przepuszcza prądu, gdy nie jest na niego wywierany nacisk, i przepuszcza go tylko wtedy, gdy go naciśniesz.

Wiedząc to, to prawie wszystko, co musisz wiedzieć o przycisku aby rozpocząć połączenie i programowanie za pomocą Arduino. Prawda jest taka, że ​​to tak prosty element, że niewiele więcej można powiedzieć o tego typu przyciskach.

Integracja za pomocą przycisku z Arduino

obwód z Arduino

La podłączenie przycisku interakcja z Arduino nie może być prostsza. Przykładem jest diagram, który możesz zobaczyć na tych liniach. To wystarczy, aby zacząć eksperymentować. Ale oczywiście przy takim schemacie niewiele możesz zdziałać. Konieczne byłoby trochę wyobraźni, aby zdecydować, co ten przycisk będzie kontrolował. W rzeczywistości, jeśli często czytasz hwlibre.es, widziałeś już kilka artykułów, w których używaliśmy przycisków ...

Sposoby połączenia

pull-up i pull-down

Jedną rzeczą, którą powinieneś wiedzieć, jest kwestia zapobiegania odskakiwaniu i jak podłączyć te przyciski. Najpierw przechodzimy do sposobu ich podłączenia, który już wiesz, może być z rezystorami pull-up i pull-down:

  • Podciągnij się- Przy takiej konfiguracji rezystora, po naciśnięciu przycisku mikrokontroler lub Arduino może zobaczyć lub odczytać zero na tym pinie. Oznacza to, że interpretuje to jako sygnał NISKI.
  • Rozbierać, opuszczać: W tym przypadku jest odwrotnie, możesz odczytać lub odebrać sygnał 1 lub HIGH przez podłączony pin.

Nie myl go z NC lub NA, co jest czymś innym, jak widzieliśmy wcześniej. Jest to niezależne od innych ...

Anti-Bounce

Przyciski mają efekt odbicia po naciśnięciu. Oznacza to, że po naciśnięciu lub zwolnieniu następuje fluktuacja sygnału, który przechodzi przez jego styki i może spowodować przejście ze stanu WYSOKIEGO do NISKIEGO lub odwrotnie, nie chcąc, aby tak się stało. Może to wywołać niepożądany efekt na Arduino i sprawić, że będzie robił dziwne rzeczy, na przykład aktywuj element, gdy naprawdę chcieliśmy go wyłączyć za pomocą przycisku itp. Dzieje się tak, ponieważ Arduino interpretuje odbicia tak, jakby zostało naciśnięte więcej niż raz ...

Ten negatywny efekt ma rozwiązanie. W tym celu należy zaimplementować mały kondensator w obwodzie przeciwdziałającym odbiciom (metoda sprzętowa) lub oprogramowaniu (modyfikacja kodu źródłowego), niezależnie od tego, czy zastosowano konfigurację pull-up lub pull-down, czy też jest to NC lub NO. We wszystkich tych przypadkach należy wdrożyć rozwiązanie, aby uniknąć tych zbiórek.

Na przykład obwody pull-up i pull-down z rozszerzeniem kondensator zapobiegający odbiciu wyglądałyby mniej więcej tak:

rebounder

Podczas gdy metoda oprogramowania Można to zobaczyć w tym fragmencie kodu:

if (digitalRead (button) == LOW) // Sprawdź, czy przycisk jest wciśnięty
{
wciśnięty = 1; // Zmienna zmienia wartość
}
if (digitalRead (przycisk) == HIGH && wciśnięty == 1)
{
// Wykonaj żądaną akcję
wciśnięty = 0; // Zmienna wraca do swojej pierwotnej wartości
}

Prosty przykład projektu

Anti-Bounce z przyciskiem i Arduino

Kiedy już poznamy temat sposobów łączenia naszego przycisku i obwodu przeciwdziałającego odbiciu, zobaczymy praktyczny przykład sterować diodą LED za pomocą przycisku. Schemat jest równie prosty, jak widać.

Po poprawnym podłączeniu następną rzeczą jest pisanie kod w Arduino IDE zaprogramować panel i zacząć eksperymentować z przyciskami. Prosty przykład kodu do sterowania naszym obwodem byłby następujący:

// Przykład szkicu do sterowania przyciskiem
int pin = 2;
stan int;
pulsujący int = 0;
void setup ()

{
pinMode (2, WEJŚCIE); // Aby odczytać impuls, wprowadzając ten pin na wejściu

pinMode (13, OUTPUT); // Dla diody LED

Serial.begin (9600);
}
void loop ()

{
if (digitalRead (2) == WYSOKI)

{

szpilka = 2;

antiBounce (); // Wywołanie funkcji zapobiegającej odbijaniu

}
}
// Programowa funkcja zapobiegająca odbiciom
void anti-bounce ()

{
while (digitalRead (pin) == LOW);
state = digitalRead (13);
digitalWrite (13, stan!);
while (digitalRead (pin) == HIGH);

}


5 komentarzy, zostaw swoje

Zostaw swój komentarz

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

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   Symbol zastępczy dla Marcelo Castillo powiedział

    Chłodny!!! Dziękuję bardzo, budowałem CNC i paradoksalnie najtrudniej mi było dostroić przyciski.

  2.   Liliana powiedział

    Cześć! Konsultuję jako nowicjusz, w połączeniu z GND… .. czarny przewód nie powinien wychodzić z linii ujemnej, która znajduje się nad tą pokazaną na schemacie 2?

  3.   John powiedział

    Doskonałe wytłumaczenie ... kilka lat temu wykonałem projekt zapłonu samochodu i prawda jest taka, że ​​nigdy nie mogłem zrobić prawidłowego naciśnięcia klawisza. Do zapłonu .. Spróbuję tej metody. Bardzo dziękuję za tę wielką pomoc

  4.   Omar Romero Rincon powiedział

    Witam, wykonuję projekt z trzema przyciskami i 5 diodami o następującej kolejności.
    1 przycisk wysyła sygnał do 2 diod LED, które nazwałem 1 i 2.
    drugi przycisk wysyła sygnał do 3 diod LED, zwanych 2,3 i 4.
    mój trzeci przycisk wysyła sygnał do kolejnych 3 diod LED, zwanych 3,4, 5 i XNUMX.

    Udało mi się wykonać tę sekwencję, mam tylko jeden problem, przy wciśnięciu 2 przycisków wysyła fałszywy sygnał do diody, która powinna świecić, powodując jej przerywane mruganie, sterowałem przez nałożenie opóźnienia (o 2 sekundy, czego potrzebuję, aby diody LED pozostały włączone, a następnie zgasły.wtedy moje pytanie brzmi, jak mogę umieścić funkcję millis w moim programie, nie rozumiem, jak działa millis, chcę wiedzieć, czy możesz mi pomóc przez robiąc przykład dla 3 przycisków używając milisów w każdym z nich , potrzebuję milisów aby móc wciskać przyciski w dowolnym momencie bez opóźniania arduino.

    1.    Isaac powiedział

      Witaj Omarze,
      Polecam zapoznać się z naszym samouczkiem Arduino:
      https://www.hwlibre.com/programacion-en-arduino/
      Możesz także zobaczyć nasz artykuł o milisach ():
      https://www.hwlibre.com/millis-arduino/
      Pozdrowienia.