Der Widerstand ist schon eingebaut
Weil fast jeder Eingang einen Pull-Widerstand braucht, haben die Chiphersteller ihn gleich mit in den Chip gelegt. Er ist per Software zuschaltbar — das ist genau das Pull::Up aus dem Code in Modul 8.
Der Widerstand liegt hier innerhalb der gestrichelten Chip-Grenze. Aussen am Pin hängt nur noch der Taster gegen Masse — ein Bauteil weniger auf dem Steckbrett.
Elektrisch ist das exakt dieselbe Schaltung wie in Abb. 22. Nur die Frage, wer den Widerstand liefert, ist anders beantwortet.
Der Unterschied: die Stärke
Der interne Pull-up ist schwächer als das, was man extern verbaut:
| Widerstand | Strom bei gedrücktem Taster | |
|---|---|---|
| intern (ESP32) | ca. 45 kΩ | ca. 0.07 mA |
| extern (üblich) | 10 kΩ | 0.33 mA |
Schwächer heisst: Er zieht den Pegel weniger kräftig nach oben. Für einen Taster am Steckbrett ist das völlig ausreichend. Kritisch wird es dort, wo etwas dagegen arbeitet:
- Lange Leitungen wirken als Antenne und haben eine gewisse Kapazität. Ein schwacher Pull-up braucht länger, um den Pegel wieder hochzuziehen, und fängt mehr Störungen ein.
- Elektrisch laute Umgebungen — Motoren, Relais, Schaltnetzteile in der Nähe.
- Schnelle Signale, wo die Anstiegszeit zählt.
Faustregel: Am Steckbrett und für Taster direkt auf der Platine reicht der interne Pull-up. Sobald ein Kabel länger als etwa eine Handspanne wird oder Störungen zu erwarten sind, nimm 10 kΩ extern — zusätzlich oder statt des internen.
Nicht jeder Pin hat einen
Beim klassischen ESP32 sind die Pins GPIO34 bis GPIO39 reine Eingangspins. Sie können weder Ausgang sein noch haben sie interne Pull-Widerstände.
Wenn du dort einen Taster anschliesst und dich auf Pull::Up verlässt, passiert nichts — der Eingang floatet weiter, und du suchst den Fehler in der Software. An diesen Pins musst du den Widerstand extern verbauen.
Welche Pins das bei deinem konkreten Chip sind (ESP32, S3, C6 …), sagt dir das Datenblatt oder das Pinout deines Boards. Es lohnt sich, das einmal nachzuschauen, statt es zu erraten.
Wann was
| intern reicht | extern nötig | |
|---|---|---|
| Aufbau | Taster direkt am Board, Prototyp am Steckbrett | lange Kabel, Motoren oder Relais in der Nähe |
| Leitungslänge | unter etwa 20 cm | darüber |
| Pin | einer mit internem Pull | ESP32 GPIO34–39 haben keinen |
| Startverhalten | egal | der Pegel muss schon stimmen, bevor die Firmware läuft |
| Aufwand | eine Zeile Code | ein Bauteil, Standardwert 10 kΩ |
Die vorletzte Zeile wird oft übersehen: Bis die Firmware den internen Pull-up einschaltet, ist der Pin ein floatender Eingang. Bei Signalen, die einen Schaltvorgang auslösen, kann das im Einschaltmoment ein Problem sein.
Beides gleichzeitig ist erlaubt
Wenn ein interner Pull-up aktiv ist und du zusätzlich 10 kΩ extern verbaust, liegen die beiden parallel. Nach Modul 4:
45 kΩ parallel zu 10 kΩ ≈ 8.2 kΩ
Das Ergebnis ist etwas stärker als der externe Widerstand allein — unproblematisch. Es schadet also nichts, den internen aktiv zu lassen.
Gefährlich wird nur die umgekehrte Verwechslung: interner Pull-up und externer Pull-down gleichzeitig. Dann bilden die beiden einen Spannungsteiler, und der Pin landet irgendwo im undefinierten Band aus Modul 8. Mit 45 kΩ nach oben und 10 kΩ nach unten:
U = 3.3 V · 10 / 55 = 0.6 V
Das ist zufällig noch knapp Low — aber ohne jede Reserve, und bei einem anderen Chip mit stärkerem internem Pull-up kippt es. Entscheide dich für eine Richtung.
Kurze Selbstkontrolle
Zählt nicht — nur zum Prüfen, ob es angekommen ist.
1.Du schliesst einen Taster an GPIO34 eines klassischen ESP32 an und aktivierst im Code den internen Pull-up. Der Eingang bleibt unzuverlässig. Warum?
2.Was passiert, wenn ein interner Pull-up von 45 kΩ und ein externer Pull-down von 10 kΩ gleichzeitig aktiv sind?