Podłączenie przycisku do Arduino to podstawowa operacja w elektronice hobbystycznej, umożliwiająca wprowadzanie sygnałów z zewnątrz. Najczęściej stosuje się mechaniczne przyciski tact-switch (z 4 nóżkami) lub dotykowe moduły. Poniżej znajdziesz dwa główne sposoby: z wbudowanym rezystorem podciągającym (INPUT_PULLUP) – najprostszy i zalecany – oraz z zewnętrznym rezystorem 10 kΩ. Instrukcja opiera się na Arduino Uno, ale działa także z innymi modelami (dostosuj piny zasilania: 5V lub 3.3V).
Potrzebne elementy
Zgromadź następujące elementy:
- Arduino Uno – lub inna kompatybilna płytka rozwojowa;
- przycisk tact-switch – 4 nóżki (połączone parami) lub moduł dotykowy (np. TTP223);
- przewody połączeniowe (Dupont) – do łączenia elementów na płytce;
- opcjonalnie: dioda LED + rezystor 220 Ω – do testu, płytka stykowa, rezystor 10 kΩ (dla wariantu zewnętrznego);
- komputer z Arduino IDE – pobrany z oficjalnej strony Arduino.
Przygotowanie Arduino IDE
Wykonaj poniższą konfigurację środowiska:
- Zainstaluj Arduino IDE.
- Podłącz Arduino do komputera kablem USB.
- W IDE wybierz: Narzędzia > Płytka > Arduino Uno oraz Narzędzia > Port > właściwy port COM.
- W Monitorze szeregowym (Ctrl+Shift+M) ustaw szybkość na 9600.
Sposób 1 – podłączenie z wbudowanym rezystorem podciągającym (INPUT_PULLUP) – zalecane
Ten wariant nie wymaga dodatkowego rezystora – Arduino ma wbudowany (ok. 20–50 kΩ). Logika jest odwrócona: naciśnięty przycisk = LOW (0 V), nie naciśnięty = HIGH (5 V).
Schemat podłączenia (tact-switch)
Podłącz jedną parę nóżek przycisku do pinu cyfrowego (np. pin 2), a drugą parę do GND. Następnie sprawdź orientację nóżek na płytce stykowej.
Podłącz elementy zgodnie z tabelą:
| Element | Podłączenie do Arduino |
|---|---|
| Przycisk (jedna strona) | Pin 2 (wejście) |
| Przycisk (druga strona) | GND |
Uwaga: w tact-switch nóżki są połączone parami – upewnij się co do ich orientacji na płytce stykowej.
Dla modułu dotykowego (TTP223)
Podłącz piny modułu według poniższej mapy:
| Pin modułu | Pin Arduino |
|---|---|
| GND | GND |
| OUT | Pin 2 |
| VCC | 5V |
Kod testowy (zapala LED na pinie 13 po naciśnięciu)
Skopiuj i wgraj poniższy szkic do płytki:
const int buttonPin = 2; // Pin przycisku
const int ledPin = 13; // Pin LED (wbudowana dioda)
void setup() {
Serial.begin(9600); // Monitor szeregowy
pinMode(buttonPin, INPUT_PULLUP); // Wejście z pull-up
pinMode(ledPin, OUTPUT); // Wyjście LED
}
void loop() {
int stan = digitalRead(buttonPin); // Odczyt stanu (HIGH=nie naciśnięty, LOW=naciśnięty)
Serial.println(stan); // Debug w monitorze
if (stan == LOW) { // Naciśnięty?
digitalWrite(ledPin, HIGH); // Zapal LED
} else {
digitalWrite(ledPin, LOW); // Wyłącz LED
}
delay(100); // Krótkie opóźnienie
}
Wgraj kod (Ctrl+U), otwórz Monitor szeregowy, naciśnij przycisk i obserwuj zmiany.
Sposób 2 – podłączenie z zewnętrznym rezystorem podciągającym (10 kΩ)
Wybierz ten wariant, jeśli wolisz fizyczny rezystor (do masy lub do +5 V). Rezystor zapobiega stanowi nieokreślonemu (floating) na wejściu.
Schemat (pull-up do +5 V)
Połącz według poniższej tabeli:
| Element | Podłączenie |
|---|---|
| Przycisk | Pin 2 ↔ GND |
| Rezystor 10 kΩ | Pin 2 ↔ 5V |
Logika: naciśnięty = LOW, nie naciśnięty = HIGH.
Kod (bez INPUT_PULLUP)
W tym wariancie zmień tryb pinu na zwykłe wejście:
// ... w setup():
pinMode(buttonPin, INPUT); // Bez PULLUP
Wariant pull-down: rezystor między pin 2 a GND, przycisk między pin 2 a 5V (naciśnięty = HIGH).
Rozwiązywanie problemów (debouncing i wskazówki)
Zawieszenia/odskoki (bouncing): mechaniczny przycisk „drży” przez 10–20 ms, co powoduje fałszywe odczyty. Rozwiązanie: krótki delay() lub biblioteka Bounce2 zapewniająca filtrację drgań.
Przykład z biblioteką Bounce2:
#include <Bounce2.h>
#define BUTTON_PIN 2
Bounce debouncer = Bounce();
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP);
debouncer.attach(BUTTON_PIN);
debouncer.interval(5); // 5 ms
}
void loop() {
debouncer.update();
int stan = debouncer.read(); // Stabilny odczyt
// reszta kodu...
}
Aby zainstalować bibliotekę, przejdź do: Szkic > Dołącz bibliotekę > Zarządzaj, wyszukaj Bounce2 i zainstaluj.
Jeśli nadal masz problemy, sprawdź poniższe wskazówki:
- brak reakcji – sprawdź połączenia multimetrem, orientację przycisku (pary nóżek), poprawny baud rate w monitorze szeregowym;
- kilka przycisków – użyj różnych pinów (2–13), a w kodzie zastosuj tablicę pinów i pętlę do odczytu;
- bezpieczeństwo – nie przekraczaj 5 V / 20 mA na pinie; zawsze używaj rezystora przy LED (np. 220 Ω);
- tryb on/off (toggle) – zastosuj detekcję krawędzi i zmienną stanu (np. porównuj bieżący stan z poprzednim);
- test w Tinkercad – wykonaj symulację online przed montażem lub lutowaniem.
Ten poradnik pozwoli Ci szybko zbudować stabilny układ i pewnie odczytywać stan przycisków w projektach Arduino. Eksperymentuj z wieloma przyciskami albo dodaj enkoder obrotowy, aby rozszerzyć funkcjonalność.






