15.09.2026

Pull-up-Widerstand erklärt: Arduino, ESP32 und Taster richtig verdrahten

Pull-up resistor explained: Arduino, ESP32 and button wiring guide

Table of contents

Wenn Sie einen Taster an ein Arduino oder ESP32 angeschlossen haben und der Eingang von selbst an- und ausging, war der Code wahrscheinlich in Ordnung. Der Pin war schwebend.

Ein Pull-up-Widerstand behebt das Problem. Er verbindet den Pin über einen Widerstand mit der Versorgung, sodass der Pin bei offenem Taster auf einem bekannten HIGH-Pegel liegt. Drücken Sie den Taster, und der Pin wird direkt mit Masse verbunden, was Vorrang hat, und der Pin liest LOW.

Was ist ein Pull-up-Widerstand?

Table of contents

Wenn Sie einen Taster an ein Arduino oder ESP32 angeschlossen haben und der Eingang von selbst an- und ausging, war der Code wahrscheinlich in Ordnung. Der Pin war schwebend.

Ein Pull-up-Widerstand behebt das Problem. Er verbindet den Pin über einen Widerstand mit der Versorgung, sodass der Pin bei offenem Taster auf einem bekannten HIGH-Pegel liegt. Drücken Sie den Taster, und der Pin wird direkt mit Masse verbunden, was Vorrang hat, und der Pin liest LOW.

Was ist ein Pull-up-Widerstand?

Wenn Sie einen Taster an ein Arduino oder ESP32 angeschlossen haben und der Eingang von selbst an- und ausging, war der Code wahrscheinlich in Ordnung. Der Pin war schwebend.

Ein Pull-up-Widerstand behebt das Problem. Er verbindet den Pin über einen Widerstand mit der Versorgung, sodass der Pin bei offenem Taster auf einem bekannten HIGH-Pegel liegt. Drücken Sie den Taster, und der Pin wird direkt mit Masse verbunden, was Vorrang hat, und der Pin liest LOW.

Was ist ein Pull-up-Widerstand?

Ein Pull-up-Widerstand ist ein Widerstand zwischen einer Signalleitung und der positiven Versorgung, entweder 3,3 V oder 5 V. Er hält die Leitung auf HIGH, wann immer nichts anderes sie ansteuert.

Ohne ihn ist ein Eingangs-Pin mit einem offenen Schalter weder mit der Versorgung noch mit Masse verbunden, sodass seine Spannung undefiniert ist. Das Board meldet weiterhin HIGH oder LOW, aber die Antwort kommt eher von Rauschen als von Ihrer Schaltung.

Warum ein Widerstand und kein Draht? Ein Draht zur Versorgung würde den Pin ebenfalls auf HIGH halten, aber das Drücken des Tasters würde dann die Versorgung mit Masse kurzschließen. Ein 10 kΩ-Widerstand begrenzt diesen Strom auf ein halbes Milliampere, sodass der Taster ihn sicher übersteuern kann.

Embedded Journey Kit - Vom Anfänger zum Profi

Embedded Journey Kit - Vom Anfänger zum Profi

€34,95

Beginner kit

€34,95

Steckbrett

Steckbrett

€3,95
€3,95

Was ist ein schwebender Pin?

Ein schwebender Pin hat keine Spannungsreferenz, daher reagiert er auf alles in der Nähe: Netzbrummen, eine Hand in der Nähe des Steckbretts, ein Motor, der an einer anderen Stelle im Projekt anläuft. Im Code sieht es wie ein Fehler in Ihrer Logik aus. Was Sie sehen, ist:

  • Eine LED, die sich von selbst ein- und ausschaltet.
  • Eine Tastenbetätigung wird registriert, obwohl niemand den Taster berührt hat.
  • Ein Zähler, der von selbst hochzählt.
  • Serielle Ausgabe wechselt zwischen 0 und 1, während die Schaltung stillsteht.

Wenn Ihr Projekt etwas davon tut, überprüfen Sie die Eingangsverdrahtung, bevor Sie den Code anfassen.

Wie funktioniert ein Pull-up-Widerstand?

  1. Taster offen. Ein kleiner Strom fließt von der Versorgung durch den Widerstand in den Pin. Ein Eingangs-Pin zieht fast keinen Strom, daher gibt es fast keinen Spannungsabfall über dem Widerstand, und der Pin liegt fast auf der Versorgungsspannung. Das Board liest HIGH.
  2. Taster geschlossen. Der Pin ist über die Schaltkontakte direkt mit Masse verbunden. Dieser Pfad hat einen Widerstand nahe Null, der 10 kΩ-Widerstand kann nicht mithalten, und der Pin wird auf 0 V gezogen. Das Board liest LOW.

Die Logik liest also rückwärts, was jeden beim ersten Mal überrascht. Nicht gedrückt ist HIGH, gedrückt ist LOW, und Ihr Code testet auf LOW, um einen Tastendruck zu erkennen.

Pull-up-Widerstand vs. Pull-down-Widerstand

Widerstand Verkabelt zwischen Nicht gedrückt Gedrückt Typische Verwendung
Pull-up Pin und positiver Versorgung, mit dem Schalter zu Masse HIGH LOW Taster, Mikroschalter, I2C, alles, was einen eingebauten Pull-up verwendet
Pull-down Pin und Masse, mit dem Schalter zur positiven Versorgung LOW HIGH Schaltungen, bei denen ein Tastendruck HIGH lesen sollte, einige Sensor- und Logikeingänge

Keiner ist besser. Pull-ups sind häufiger, weil Mikrocontroller sie eingebaut haben und Pull-downs von Hand hinzugefügt werden müssen.

Pull-up-Widerstand mit Arduino

Arduino-Boards haben einen internen Pull-up-Widerstand im Chip an jedem digitalen Pin, 20 kΩ bis 50 kΩ bei einem ATmega328, sodass die meisten Tastenprojekte keinen Widerstand auf dem Steckbrett benötigen. Aktivieren Sie ihn mit INPUT_PULLUP anstelle von INPUT und verdrahten Sie den Taster nur zwischen dem Eingangs-Pin und GND.

const int buttonPin = 2;

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  if (digitalRead(buttonPin) == LOW) {
    Serial.println("Button pressed");
  } else {
    Serial.println("Button not pressed");
  }
  delay(200);
}

Zwei Fehler verursachen die meisten Tastenprobleme. Den Pin auf einfachem INPUT zu lassen, ist der oben beschriebene schwebende Fall. Den Taster mit der Versorgung anstelle von Masse zu verdrahten, lässt den Pin in beiden Zuständen HIGH. Wenn Sie die Schienen Loch für Loch erklärt haben möchten, lesen Sie unseren Leitfaden zu was ein Steckbrett ist und wie man es benutzt.

Produkttitel

Produkttitel

€19,99

Pull-up-Widerstand mit ESP32

ESP32-Chips haben ebenfalls interne Pull-ups, etwa 45 kΩ, die mit demselben INPUT_PULLUP aktiviert werden. Zwei Dinge unterscheiden sich von einem Uno. Die Logik ist 3,3 V, sodass das Einspeisen einer 5 V-Schiene in einen GPIO-Pin diesen beschädigt. Und die Pin-Wahl ist wichtig: Einige GPIOs sind Strapping-Pins, die entscheiden, wie der Chip bootet, einige sind reine Eingänge ohne internen Pull-up, und beim klassischen ESP32 hören die Pins am zweiten ADC auf zu funktionieren, sobald Wi-Fi läuft.

Der Grund, einen ESP32 für einen Schalter zu verwenden, ist, was nach dem Drücken passiert, wenn ein Kontakt über Wi-Fi zu einer Home Assistant-Entität wird. Unser ESPHome- und MQTT-Leitfaden behandelt die Software, und ESP32-Projekte für Anfänger enthält funktionierende Beispiele.

NULA Mini ESP32-C6

NULA Mini ESP32-C6

€14,95
€14,95

Im Batteriebetrieb zieht ein interner Pull-up bei geschlossenem Schalter kontinuierlich Strom, etwa 70 µA bei 3,3 V durch 45 kΩ. Das ist nichts im Vergleich zu einem aktiven Funkgerät und viel im Vergleich zum Tiefschlaf, daher sollte der Schalter so verdrahtet werden, dass er im Ruhezustand offen ist.

NULA DeepSleep ESP32-S3 Entwicklungsboard

NULA DeepSleep ESP32-S3 Entwicklungsboard

€16,95
€16,95

Pull-up-Widerstand mit Taster oder Mikroschalter

Für einen Mikrocontroller sind ein Drucktaster und ein Mikroschalter dasselbe Bauteil: ein Paar Kontakte, die entweder berühren oder nicht. Keiner erzeugt eine Spannung, weshalb beide einen Pull-up oder einen Pull-down benötigen, um überhaupt lesbar zu sein.

Ein Mikroschalter bietet Ihnen eine Auswahl an Kontakten. Verbinden Sie COM mit GND und NO mit dem Eingangs-Pin, und er verhält sich wie ein Drucktaster, der LOW liest, während der Hebel gedrückt wird. Verschieben Sie diesen Draht von NO nach NC, und die Zustände tauschen sich, was ein Türsensor möchte. Unser Leitfaden was ein Mikroschalter ist behandelt die Anschlüsse im Detail.

Was ein Pull-up nicht behebt, ist das Prellen der Kontakte. Die Kontakte klappern für ein paar Millisekunden beim Schließen, und eine schnelle Schleife liest dies als mehrere Drücke, daher entprellen Sie es im Code, indem Sie weitere Änderungen für 20 ms bis 50 ms ignorieren.

Pull-up-Widerstände und I2C

Geräte an einem I2C-Bus treiben SDA oder SCL niemals auf HIGH. Sie ziehen eine Leitung auf Masse oder lassen sie los, was es für ein Dutzend Chips sicher macht, zwei Drähte zu teilen. Die Pull-ups sind das Einzige, was jede Leitung auf HIGH zurückführt, daher sind sie Teil der Signalgebung und keine Vorsichtsmaßnahme. Die Werte liegen bei 4,7 kΩ oder 2,2 kΩ, niedriger als ein Taster-Pull-up, da der Bus die Kabelkapazität schnell aufladen muss.

Fast jedes Breakout hat seine Pull-ups eingebaut, sodass ein erstes Projekt ohne zusätzliche Komponenten funktioniert. Die Schwierigkeiten beginnen beim vierten oder fünften Modul, da diese Widerstände parallel geschaltet sind: fünf 4,7 kΩ-Pull-ups verhalten sich wie ein 940 Ω-Widerstand, und schließlich kann kein Gerät eine Leitung tief genug ziehen, um zu registrieren. Boards, die dies erwarten, platzieren die Pull-ups auf Lötjumpern, sodass Sie sie trennen können. Unser Leitfaden zu wie I2C funktioniert behandelt die Adressierungsseite.

LCD-Bildschirm I2C weiß/blau

LCD-Bildschirm I2C weiß/blau

€13,95
€13,95

Real-Time-Clock RTC PCF85063A

Real-Time-Clock RTC PCF85063A

€3,95
€3,95

IO-Expander MCP23017

IO-Expander MCP23017

€4,95
€4,95

Interne vs. externe Pull-up-Widerstände

Aspekt Interner Pull-up Externer Pull-up
Wert Vom Chip festgelegt, 20 kΩ bis 50 kΩ Was immer Sie einbauen
Verdrahtung Keine, eine Zeile Code Ein Widerstand pro Eingang
Aktiv Nur nachdem pinMode() ausgeführt wurde Sobald die Stromversorgung angelegt wird
Geeignet für Taster und Schalter an kurzen Drähten Lange Kabel, Rauschen, I2C, alles, was beim Booten definiert wird

Die Zeitsteuerungszeile ist die, die Schwierigkeiten bereitet. Ein interner Pull-up ist während des Bootvorgangs des Chips ausgeschaltet, sodass der Pin in diesen ersten Millisekunden schwebt. Gut für einen Taster, nicht für eine Reset- oder Enable-Leitung, die vom Moment der Stromversorgung an HIGH sein muss.

Die Kabellänge ist der andere Grund, extern zu arbeiten. Ein Meter Kabel verhält sich wie eine Antenne, und ein interner Pull-up von 47 kΩ ist schwach genug, dass das von ihm aufgenommene Rauschen als Tastenbetätigungen registriert werden kann. Nach einigen Metern bei I2C wird die Kabelkapazität selbst zur Grenze, und ein Bus-Extender behebt dies ordnungsgemäß.

Soldered I2C-Bus-Erweiterung P82B715 Breakout

Soldered I2C-Bus-Erweiterung P82B715 Breakout

€7,95
€7,95

Welchen Wert sollte ein Pull-up-Widerstand haben?

Für einen Taster: 10 kΩ. Zu hoch, und der Widerstand kann die Leitung nicht gegen Rauschen und Leckstrom halten. Zu niedrig, und Sie verschwenden Strom, wann immer der Schalter schließt: bei 5 V kostet ein 10 kΩ-Pull-up 0,5 mA, während der Taster gehalten wird, ein 220 Ω-Widerstand würde 23 mA kosten.

  • Taster und Schalter: 10 kΩ, oder der interne Pull-up und überhaupt kein Widerstand.
  • I2C, ein bis drei Module: 4,7 kΩ, normalerweise bereits auf dem Breakout vorhanden.
  • I2C bei 400 kHz oder an einem langen Kabel: 2,2 kΩ.
  • Ein Schalter an einem Meter oder mehr Kabel: 4,7 kΩ extern, anstelle des internen.

Anfänger-Projektideen mit Pull-up-Widerständen

1. Tastergesteuerte LED

Ein Taster, eine LED und INPUT_PULLUP. Die kürzeste Schaltung, in der Sie die umgekehrte Logik beobachten können: Der serielle Monitor druckt HIGH, bis Ihr Finger landet.

2. Mikroschalter-Türalarm

Montieren Sie einen Mikroschalter so, dass eine Schublade oder ein Deckel den Hebel drückt, wenn er schließt, COM an GND und NO an den Eingang. Fügen Sie einen Summer hinzu, und es ist ein Alarm; protokollieren Sie die Änderungen, und es ist ein Nutzungszähler.

3. ESP32-Briefkastenbenachrichtigung

Derselbe Schalter an einem batteriebetriebenen ESP32. Er schläft, bis der Kontakt sich ändert, sendet eine Nachricht und schläft wieder, wo der Pull-up-Strom tatsächlich eine Rolle spielt.

4. Physischer Home Assistant Taster

Ein Taster an einem ESP32 mit ESPHome wird zu einer Schalterentität für jede Automatisierung. Zwei Drähte und kein Widerstand.

5. I2C-Sensoranzeige

Ein Temperatursensor und ein 16x2 I2C-LCD an denselben zwei Pins. Hier braucht nichts einen Widerstand von Ihnen, was am deutlichsten zeigt, dass die Breakouts die Pull-ups bereits enthalten.

Warum Soldered ein guter Ort ist, um Elektronikgrundlagen zu lernen

Ein Pull-up-Widerstand lehrt die Regel, die die meisten Anfängerfehler verletzen: Jeder Eingang muss mit etwas Bestimmtem verbunden sein. Sobald das sitzt, hören Taster, Mikroschalter, Sensoreingänge, Reset-Leitungen und I2C-Busse auf, auf mysteriöse Weise auszufallen, und Sie überprüfen die Verdrahtung, anstatt die Schleife neu zu schreiben.

Soldered verkauft die Boards, Kits, Breakouts und Displays, um dies der Reihe nach aufzubauen, von einem Taster und einer LED auf einem Steckbrett bis zu einem batteriebetriebenen Sensor, der an Home Assistant meldet. Jedes Breakout hat einen Qwiic-Anschluss und eine gepflegte Arduino-Bibliothek.

Häufig gestellte Fragen

Was ist ein Pull-up-Widerstand?
Ein Widerstand zwischen einer Signalleitung und der positiven Versorgung. Er hält einen Eingangs-Pin auf HIGH, wenn nichts anderes ihn ansteuert.

Warum benötigen Taster Pull-up-Widerstände?
Ein nicht gedrückter Taster lässt den Pin mit nichts verbunden, sodass er Rauschen liest und von selbst zwischen HIGH und LOW wechselt.

Was ist ein schwebender Pin?
Ein Eingangs-Pin ohne definitive Verbindung zu HIGH oder LOW. Ohne Spannungsreferenz reagiert er auf elektrisches Rauschen, und die Messwerte sind zufällig.

Wie funktioniert ein Pull-up-Widerstand?
Bei offenem Schalter hält ein winziger Strom durch den Widerstand den Pin auf der Versorgungsspannung: HIGH. Bei geschlossenem Schalter ist der Pin direkt mit Masse verbunden, was den Widerstand überstimmt: LOW.

Was ist der Unterschied zwischen einem Pull-up- und einem Pull-down-Widerstand?
Ein Pull-up geht zur positiven Versorgung und lässt den Pin im Ruhezustand HIGH. Ein Pull-down geht zu Masse und lässt ihn im Ruhezustand LOW. Beide verhindern, dass der Pin schwebt.

Hat Arduino interne Pull-up-Widerstände?
Ja, an jedem digitalen Pin. Aktivieren Sie einen mit pinMode(pin, INPUT_PULLUP). Bei einem ATmega328 sind es 20 kΩ bis 50 kΩ.

Hat ESP32 interne Pull-up-Widerstände?
Ja, etwa 45 kΩ an den meisten GPIO-Pins. Reine Eingangs-Pins haben keine, und einige Pins beeinflussen den Bootvorgang, daher überprüfen Sie die Pinbelegung Ihres Boards.

Warum liest mein Taster LOW, wenn er gedrückt wird?
Das ist korrekt für die Pull-up-Verdrahtung. Testen Sie auf LOW, um einen Tastendruck zu erkennen.

Welchen Widerstandswert sollte ich für einen Pull-up-Widerstand verwenden?
10 kΩ für Taster und Schalter, 4,7 kΩ für I2C. Für einen einfachen Taster macht der interne Pull-up einen Widerstand überflüssig.

Benötigen I2C-Geräte Pull-up-Widerstände?
Ja. Geräte ziehen SDA und SCL nur nach LOW, daher kehrt ohne Pull-ups nichts sie nach HIGH zurück. Die meisten Breakouts haben sie eingebaut.

Kann ich einen Pull-up-Widerstand mit einem Mikroschalter verwenden?
Ja. Verbinden Sie COM mit GND und NO mit dem Eingangs-Pin, und er liest LOW, während der Hebel gedrückt wird. Verwenden Sie NC, um es zu invertieren.

Sollten Anfänger interne oder externe Pull-up-Widerstände verwenden?
Beginnen Sie mit internen. Verwenden Sie externe, wenn der Draht zum Schalter lang wird, die Umgebung laut ist oder die Leitung HIGH sein muss, bevor Ihr Code ausgeführt wird.

Kann ein Pull-up-Widerstand verhindern, dass ein Taster doppelt auslöst?
Nein. Das ist Tasterprellen und erfordert eine Entprellung im Code oder einen kleinen Kondensator.

Ähnliche Artikel