Taster am Arduino anschließen: Pull-up, Pull-down und Entprellen
Wie schließt man einen Taster an den Arduino an? Aufbau des 4-beinigen Tasters, Pull-up- und Pull-down-Widerstand, INPUT_PULLUP, Entprellen und ein Beispiel zum Umschalten einer LED.
Ein Taster ist das einfachste Bauteil, um die Berührung des Nutzers in ein Arduino-Projekt zu bringen. Gedrückt verbindet er zwei Kontakte, losgelassen trennt er sie. So einfach er wirkt: Falsch angeschlossen liefert er zufällige Werte oder zählt einen Druck mehrfach. Hier zeigen wir, wie man einen Taster richtig anschließt und liest.

Aufbau eines 4-beinigen Tasters
Der 6×6-mm-Mikrotaster, den du auf dem Steckbrett am häufigsten nutzt, hat 4 Beinchen, aber nur 2 Anschlusspunkte: Gegenüberliegende Paare sind innen schon verbunden. Beim Drücken werden die beiden Paare verbunden. Setzt du den Taster über den Mittelkanal des Steckbretts, landet jedes Paar in eigenen Reihen und die richtige Ausrichtung ergibt sich leicht.
Warum braucht man einen Pull-up- oder Pull-down-Widerstand?
Ist der Taster nicht gedrückt, hängt der Eingangspin des Arduino in der Luft; man spricht von einem offenen (floating) Eingang. So ein Pin fängt elektrisches Rauschen auf und liest zufällig HIGH oder LOW. Die Lösung: den Pin über einen Widerstand auf einen festen Pegel ziehen:
| Methode | Anschluss | Nicht gedrückt | Gedrückt |
|---|---|---|---|
| Pull-down | 10 kΩ Pin → GND, Taster Pin → 5V | LOW | HIGH |
| Pull-up (extern) | 10 kΩ Pin → 5V, Taster Pin → GND | HIGH | LOW |
| INPUT_PULLUP (intern) | Taster Pin → GND, kein Widerstand nötig | HIGH | LOW |
Am praktischsten ist pinMode(pin, INPUT_PULLUP): Der interne Widerstand des Arduino von etwa 20–50 kΩ wird aktiviert, und du schließt den Taster nur zwischen Pin und GND an. Einziger Unterschied: Die Logik kehrt sich um, ein Druck liest LOW.
Entprellen: Warum zählt ein Druck mehrfach?
In dem Moment, in dem sich die Metallkontakte berühren, schwingen sie einige Millisekunden lang, und der Stromkreis öffnet und schließt sich mehrfach. Weil der Arduino so schnell liest, kann er einen Druck als 3–5 Drücke sehen. Das nennt man Kontaktprellen. In Software löst man das, indem man nach der letzten Änderung etwa 50 ms lang neue Änderungen ignoriert.
const int BUTTON_PIN = 2; // buton pin ile GND arasında / button between pin and GND
const int LED_PIN = 13; // karttaki LED / onboard LED
bool ledOn = false;
int lastReading = HIGH;
int stableState = HIGH;
unsigned long lastChange = 0;
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP); // dahili pull-up / internal pull-up
pinMode(LED_PIN, OUTPUT);
}
void loop() {
int reading = digitalRead(BUTTON_PIN);
if (reading != lastReading) lastChange = millis(); // değişti / changed
if (millis() - lastChange > 50 && reading != stableState) {
stableState = reading; // 50 ms kararlı / stable for 50 ms
if (stableState == LOW) { // basıldı / pressed
ledOn = !ledOn; // LED'i değiştir / toggle LED
digitalWrite(LED_PIN, ledOn ? HIGH : LOW);
}
}
lastReading = reading;
}Dieser Code schaltet die LED pro Druck einmal um; Gedrückthalten schaltet nicht ständig weiter. Da er millis() statt delay() nutzt, wartet die Schleife nie und kann nebenbei andere Aufgaben erledigen.
Typische Fehler
- Taster falsch herum einsetzen: Nutzt du ein bereits verbundenes Paar, gilt der Taster als dauerhaft gedrückt. Dreh ihn um 90°.
- Keinen Widerstand verwenden: Ohne Pull-up oder Pull-down ändert sich der Messwert zufällig.
- Bei INPUT_PULLUP die falsche Logik erwarten: Ein Druck liest LOW, nicht HIGH; schreib die Bedingungen entsprechend.
- Lange delay() zum Entprellen: Das Programm kann in dieser Zeit nichts tun; Timing mit millis() ist besser.
- Pins 34–39 beim ESP32 verwenden: Sie haben keinen internen Pull-up; füge einen externen Widerstand hinzu oder nimm einen anderen Pin.
Wie du Taster und Widerstand richtig auf das Steckbrett setzt, zeigt Was ist ein Steckbrett?; zu Pull-up-Werten siehe Was ist ein Widerstand?.
Häufige Fragen
Welchen Widerstand braucht ein Taster?
10 kΩ ist Standard für Pull-up oder Pull-down. Mit INPUT_PULLUP brauchst du gar keinen externen Widerstand.
Warum liest der Taster beim Drücken LOW?
Mit INPUT_PULLUP oder externem Pull-up ist der Pin normalerweise HIGH; der Taster verbindet ihn mit GND, daher LOW beim Drücken. Das ist so gewollt.
Wie lang sollte die Entprellzeit sein?
20–50 ms reichen für die meisten Taster. Alte oder billige Taster brauchen eventuell 80–100 ms.
Wie lese ich mehrere Taster?
Schließe jeden Taster an einen eigenen Pin an und setze alle auf INPUT_PULLUP. Für viele Taster nimmt man eine Tastenmatrix (Keypad) oder liest sie über einen Analogpin mit unterschiedlichen Widerständen.
Projekte, die du danach bauen kannst
Alle Projekte ansehen
Led Burning mit Druckknopf (Push)
Sofortiges (Druck-)Steuerprojekt, bei dem die LED aufleuchtet, wenn die Taste gedrückt wird, und erlischt, wenn sie losgelassen wird. Lehrt die Verwendung von Tastenlesung und bedingtem Ausdruck mit d

Led Burning mit Taste (Ein Aus)
Ein Toggle-Projekt, das den Zustand der LED (ein/aus) bei jedem Tastendruck ändert. Lehrt Zustandsvariable und Entprellungslogik.

Einfaches Klavier mit Summer und Taste
Mit 8 Tasten und Summer, einfaches Klavierprojekt, das Noten von C bis hoch C spielen kann. Es lehrt, wie man ein Musikinstrument simuliert, indem man jeder Taste verschiedene Frequenzen zuweist.

7-Segment-Anzeige und Zähler mit Taste
Zählerprojekt, das die Zahl auf der 7-Segment-Anzeige mit 3 Tasten erhöht, verringert und zurücksetzt. Lehrt Grenzwertkontrolle und benutzerinteraktive Zählerlogik.

ESP32 LED-Steuerung mit Drucktaste (Push)
Die LED leuchtet auf, wenn die Taste gedrückt wird und geht aus, wenn sie losgelassen wird. Zeigt, wie der digitale Eingangspin des ESP32 und der interne Pull-up-Widerstand verwendet werden. Dank des INPUT_PULLUP-Modus ist kein externer Widerstand erforderlich.

ESP32 LED Steuerung mit Taster (Toggle)
Jedes Mal, wenn die Taste gedrückt wird, ändert sich der Zustand der LED: ist sie an, schaltet sie aus, ist sie aus, schaltet sie ein. Klassisches Toggle-Muster. Mit der Entprellung wird das mechanische Geräusch des Tasters beseitigt, um ein einmaliges Umschalten mit einem einzigen Druck zu gewährleisten.

Raspberry Pi Pico Taster Toggle LED (GP14 + GP2)
Taster + LED — nächste Stufe! 🔁 Anders als #155, du musst den Taster nicht halten. Drücken und loslassen → LED an. Nochmal drücken → LED aus (toggle). Gleiche Schaltung wie #155, aber großer Codeunterschied. Lerne Edge Detection, State Tracking und Debounce.

Raspberry Pi Pico Taster Debounce: IRQ vs Software Polling (GP5 + GP4)
Einmal Taster gedrückt, Code zählt 3-4? Das ist Contact Bounce! 🔁 Vergleiche 2 Zählmethoden in Serial: RAW Polling (fängt Bounce, zählt falsch) vs IRQ + Software Debounce (genau). Lerne Contact Bounce Physik, Software Debounce, Pin.irq() Interrupt, IRQ_FALLING Trigger, ISR Handler, global Variablen ISR-Sicherheit.
Weitere Artikel
Lerne, warum ein Taster allein unzuverlässig gelesen wird, was ein Pull-up-Widerstand macht, wie INPUT_PULLUP funktioniert und wie Entprellen Tastendrücke richtig zählt.

