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.
Są 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.
Wskaźnik
Integracja za pomocą przycisku 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
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:
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
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);
}
Chłodny!!! Dziękuję bardzo, budowałem CNC i paradoksalnie najtrudniej mi było dostroić przyciski.
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?
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
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.
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.