Zadzwoń +48 601 595 618

Witamy w technovade.pl!

Obsługa przycisków typu microswitch

Oceń ten produkt jako pierwszy

     Tematem poradnika jest wykorzystanie przycisków typu microswitch w naszych projektach. W przykładach dostępnych na stronie https://www.arduino.cc/en/Tutorial/HomePage możemy wyróżnić kilka sposobów ich obsługi. Postaramy się po krótce opisać kilka z nich.


     W pierwszym przypadku w momencie przytrzymania wciśniętego przycisku dioda będzie w stanie wysokim (dioda zapalona), natomiast zaraz po jego zwolnieniu wejdzie w stan niski (dioda zgaszona).

Nazwa produktu Cena Ilość
Genuino UNO R3 - Arduino z dystrybucji arduino.cc
93,00 zł
Arduino UNO R3
93,00 zł
  • Kup 10 po 88,00 zł za każdy i oszczędź 6%
Płytka stykowa (prototypowa) 830 otworów
11,00 zł
Tact Switch 12x12, 6mm THT - 5szt.
3,00 zł
Zestaw diod LED 5mm - 30 szt.
3,90 zł
Zestaw rezystorów THT 1/4W 1% - 220 szt.
12,90 zł

Zamówienia powyżej 200 zł wysyłamy za darmo!

Każde zamówienie możesz odebrać w naszym sklepie stacjonarnym w Poznaniu.

Sprzedajemy wyłącznie towar nowy i gwarantujemy jego sprawność!

Z każdym zamówieniem otrzymujesz kupony rabatowe na kolejne zakupy!

Opis produktu

Szczegóły

Poziom trudności: ★★

Szacowany czas: 15min

Wymagane elementy:

  • płytka Arduino, np. Arduino UNO R3
  • płytka stykowa z przewodami połączeniowymi
  • dioda LED czerwona
  • rezystor150Ω lub większy np. 220Ω
  • rezystor 10kΩ
  • przycisk typu microswitch

 

Wstęp

     Tematem poradnika jest wykorzystanie przycisków typu microswitch w naszych projektach. W przykładach dostępnych na stronie https://www.arduino.cc/en/Tutorial/HomePage możemy wyróżnić kilka sposobów ich obsługi. Postaramy się po krótce opisać kilka z nich.

     W pierwszym przypadku w momencie przytrzymania wciśniętego przycisku dioda będzie w stanie wysokim (dioda zapalona), natomiast zaraz po jego zwolnieniu wejdzie w stan niski (dioda zgaszona).

     Schemat układu przedstawia poniższy rysunek.

img01

Połączenia:

  • Jedną nóżkę przycisku łączymy z zasilaniem (5V)
  • Drugą poprzez rezystor łączymy z masą (0V)
  • Nóżkę połączoną z masą łączymy z pinem cyfrowym Arduino, np. 3

 

Pierwszy sposób obsługi przycisków

     Na początku definiujemy piny do których podłączamy przycisk i diodę. (linia 1-2)
     Następnie ustalamy stan jaki panuje na wyjściu pinu 10 bez wciśniętego przycisku. W naszym przypadku dioda będzie zgaszona, jeśli ustawilibyśmy 1 dioda byłaby włączona a wciśnięcie przycisku powodowałoby jej wyłączenie. (linia 4)
     Musimy również ustawić pin przycisku jako wejście, a pin diody jako wyjście. (linie 7-8)
     Dalej tworzymy funkcję warunkową, która w momencie gdy wykryje wciśnięcie przycisku zapala diodę. (linie 13-18)

 

Drugi sposób obsługi przycisków

     Należy zmodyfikować poprzedni kod, tak aby wciśnięcie przycisku zapalało diodę, a następne z powrotem ją wyłączało. Aby tego dokonać należy zapamiętać poprzedni stan microswitcha. Zaimplementujemy również funkcję debounce, która wyeliminuje zjawisko drgania styków.

     W czasie zwierania lub rozwierania przycisków styki mają tendencję do drgania. Jest to zjawisko całkowicie mechaniczne i możemy je wyeliminować programowo. Każdy przycisk zachowuje się inaczej, czas drgania jest różny dla różnych przycisków. Zazwyczaj wystarczy zaimplementować w programie opóźnienie trwające około 50ms. Jeśli to nie pomoże i dioda nadal będzie migać podczas włączania, wyłączania należy go odpowiednio zwiększyć.

     Na początku tworzymy zmienną przechowującą stan diody. Przypisujemy jej wartość wysoką, co powoduje jej zapalenie zaraz po włączeniu zasilania. Ustawiając wartość LOW dioda byłaby zgaszona (linia 4). Musimy również utworzyć zmienną ostatni_stan_przycisku służącą do późniejszego porównywania (linia 6).

     Dalej definiujemy zmienną czas_drgania przechowującą wartość 50, która posłuży nam do programowej eliminacji zjawiska drgania styków. (linia 9) 

     W funkcji setup ustawiamy pin przycisku jako wejście, pin diody jako wyjście oraz wystawiamy na pin wyjściowy (diody) wcześniej zdefiniowaną wartość (w naszym przypadku HIGH). (linie 12-14)

     W funkcji loop tworzymy zmienną odczyt sprawdzającą aktualny stan przycisku. Jeśli zmienna odczyt jest różna (!=) od zmiennej ostatni_czas_przycisku rozpoczyna się odliczanie milisekund. Po upływie 50ms, w momencie gdy wartość zmiennej odczyt jest w dalszym ciągu różna, jej wartość zostaje przypisana do zmiennej stan_przycisku. Dalej musimy napisać prostą instrukcję warunkową, która w momencie wykrycia stanu wysokiego na pinie wejściowy neguje zmienną stan_diody, wyłączając diodę led. (linie 23-36)

     Zanim nasza dioda zgaśnie musimy ponownie wystawić stan_diody na pin wyjściowy. Na końcu zapisujemy zmienną odczyt do zmiennej ostatni_stan_przycisku. (linie 38-39)

Informacje dodatkowe

Informacje dodatkowe

Kraj pochodzenia

Recenzje

Napisz własną recenzję

Tylko zarejestrowani kiienci mogą pisać opinie. Prosimy zalogować się lub zarejestrować

Tagi produktu

Tagi produktu

Użyj spacji aby rozdzielić tagi, apostrofów (') aby wpisać frazy.