Übungsaufgaben zu digitalen Eingängen am Mikrocontroller: Taster, Pull-up/Pull-down und Entprellen
https://bildung.social/@oerinformatik/
https://oer-informatik.de/mcu-digitale-eingaenge-uebungsaufgaben
Mikrocontroller, digitaler Eingang, Taster, Pull-up-Widerstand, Pull-down-Widerstand, Flankenerkennung, Öffner, Drahtbruch, Prellen, Entprellen, Übungsaufgaben, Prüfungsvorbereitung
tl/dr; (Bearbeitungszeit insgesamt 44 min, mehrere Aufgaben): Drei Übungsaufgaben zu digitalen Eingängen: Pegel an Tastereingängen mit Pull-up- und Pull-down-Widerständen bestimmen und einen offenen Eingang beurteilen, ein Prüfprogramm mit Flankenerkennung und Entprellung schreiben, Pull-up-Ströme berechnen und Öffner und Schließer beim Drahtbruch beurteilen, eine Entprellung mit RC-Glied und Schmitt-Trigger berechnen und Entprellschaltungen sowie einen Reset-Taster auf Fehler prüfen. Zu jeder Teilaufgabe lässt sich eine Beispiellösung einblenden [AI-Assisted]. (Zuletzt geändert am 10.11.2026)
Diese Übungsaufgaben gehören zum Artikel Digitale Eingänge am Mikrocontroller: Taster, Logikpegel, Pull-up/Pull-down und Entprellen. Die Programme gibt es für vier Boards; wähle in den Beispiellösungen oben im Tab Dein Board (ESP32-C6 ist voreingestellt).
Hinweise zur Bearbeitung: Bis zur Teil-1- bzw. Zwischenprüfung der Elektroberufe solltest Du die Basiskompetenz beherrschen, also Aufgabe 1.1. Als FIA, FISY, FIDP, FIDV, ISE, EGS oder IEGS musst Du zur Teil-2- bzw. Abschlussprüfung Aufgaben auf Kernkompetenz-Ebene lösen können, das ist Aufgabe 2.1. Von EGS wird zusätzlich erwartet, dass ihnen Aufgaben auf Profilkompetenz-Ebene (Aufgabe 3.1) keine Probleme bereiten. Die Beispiellösungen der Rechenaufgaben sind immer gleich aufgebaut: Unter Geg. steht, was gegeben ist (bei mehreren Teilaufgaben gemeinsam in der ersten), unter Ges., was gesucht ist. Jede Formel steht zuerst in ihrer Grundform; Umstellungen sind Äquivalenzumformungen, deren Rechenschritt grau rechts neben dem senkrechten Strich steht. Ergebnisse stehen mit drei signifikanten Stellen doppelt unterstrichen, gerundete mit \approx. Rechne selbst ebenso mit Formel, eingesetzten Werten und Einheit. Bei „nennen“ und „angeben“ genügen Stichworte, bei „beschreiben“, „erklären“, „begründen“ und „beurteilen“ antwortest Du in ganzen Sätzen. Programme kannst Du auf dem Board testen; die Verdrahtung zeigt der Artikel zu digitalen Eingängen. Schreib Deine Lösung zuerst vollständig auf, bevor Du die Beispiellösung einblendest.
Du möchtest eigene Aufgaben zum Üben von einem KI-Sprachmodell generieren lassen?
Kopiere den Text in ein KI-Sprachmodell Deiner Wahl und passe Kompetenzstufe, Anzahl, Bearbeitungszeit und Szenario bei Bedarf an. Wie die Aufgaben aufgebaut sind, beschreibt der Artikel Wie sind die Aufgaben aufgebaut?. Prüfe die Ergebnisse mit dem Lehrartikel: KI-Sprachmodelle machen Fehler.
Erstelle neue Übungsaufgaben zum Thema „Digitale Eingänge am
Mikrocontroller: Taster, Pull-up/Pull-down und Entprellen“.
Bauplan: Halte Dich an Aufbau, Kompetenzstufen, Operatoren,
Anforderungsbereiche, Punkte und Zeitschätzung, die im Artikel
https://oer-informatik.de/aufgaben-aufbau beschrieben sind.
Fachliche Grundlage:
- https://oer-informatik.de/mcu-digitale-eingaenge
- https://oer-informatik.de/spannungsteiler
- https://oer-informatik.de/komparator-schmitt-trigger
- https://oer-informatik.de/mcu-zeitsteuerung-millis
- https://oer-informatik.de/mcu-pinout
- Stilbeispiel: https://oer-informatik.de/mcu-digitale-eingaenge-uebungsaufgaben
Die Aufgaben sollen Inhalte zu diesen Schlagwörtern abdecken:
- Mikrocontroller
- digitaler Eingang
- Taster
- Pull-up-Widerstand
- Pull-down-Widerstand
- Flankenerkennung
- Öffner
- Drahtbruch
- Prellen
- Entprellen
Kompetenzstufe: Basiskompetenz (alternativ: Kernkompetenz, Profilkompetenz, Expertise)
Anzahl: 1 Aufgabe mit Teilaufgaben
Bearbeitungszeit in Minuten ca.: <5 bis 30 min>
Szenario: eines der Szenarien aus dem Bauplan
Vorgehen:
1. Lies zuerst die verlinkten Artikel. Kannst Du keine Webseiten
abrufen, sag mir das, statt zu raten.
2. Steht bei einer Angabe noch ein Platzhalter in <…>, frag mich
zuerst danach. Richte Punkte und Zahl der Teilaufgaben nach der
Bearbeitungszeit (ca. 0,9 min je Punkt).
3. Gib je Aufgabe Titel mit Kompetenzstufe, Ausgangssituation und
Teilaufgaben mit Operator und Punktzahl aus, dazu die geschätzte
Bearbeitungszeit.
4. Gib die Beispiellösungen mit Punkteverteilung erst aus, wenn ich
danach frage.
Aufgabe 1.1: Bedieneinheit eines Rolltors (Basiskompetenz)
(ca. 11 min Bearbeitungszeit)
Ein Rolltor einer Lagerhalle wird über eine kleine Steuerplatine bedient. Ihr Mikrocontroller arbeitet mit U_\mathrm{B} = 3{,}3\ \mathrm{V}. Der Stromlaufplan zeigt, wie die Taster „AUF“ (-S1) und „ZU“ (-S2) und der Endlagenschalter -S3 an die Portleitungen PA3, PA4 und PA5 angeschlossen sind. Der Controller liest bis 0,99 V sicher Low und ab 2,31 V sicher High.
a) Bestimme für PA3 und PA4 den logischen Pegel bei unbetätigtem und betätigtem Taster und gib an, ob das Signal high- oder low-aktiv ist. (4 Punkte)
| Eingang | Taster unbetätigt | Taster betätigt | high- oder low-aktiv |
|---|---|---|---|
| PA3 (-S1 AUF) | |||
| PA4 (-S2 ZU) |
Geg.: U_\mathrm{B} = 3{,}3\ \mathrm{V}, -R1 = 10\ \mathrm{k\Omega} von PA3 nach U_\mathrm{B}, -S1 von PA3 nach Masse; -R2 = 22\ \mathrm{k\Omega} von PA4 nach Masse, -S2 von PA4 nach U_\mathrm{B}; -S3 an PA5 ohne Widerstand; Low bis 0,99 V, High ab 2,31 V
Ges.: Pegel an PA3 und PA4, aktiver Pegel
| Eingang | Taster unbetätigt | Taster betätigt | high- oder low-aktiv |
|---|---|---|---|
| PA3 (-S1 AUF) | 1 (3,3 V über -R1) | 0 (0 V, Taster an Masse) | low-aktiv |
| PA4 (-S2 ZU) | 0 (0 V über -R2) | 1 (3,3 V, Taster an U_\mathrm{B}) | high-aktiv |
(je Zeile 2 Punkte: Pegel 1 Punkt, aktiver Pegel 1 Punkt)
b) An PA5 fehlt ein Widerstand, wie ihn PA3 und PA4 haben. Beschreibe, wie sich PA5 bei offenem Endlagenschalter verhält, wenn das Programm den Pin als einfachen Eingang einstellt. Leite daraus ab, welche Aufgabe -R1 und -R2 erfüllen, ordne beide den Begriffen Pull-up- und Pull-down-Widerstand zu und nenne eine Abhilfe für PA5 ohne zusätzliches Bauteil. (5 Punkte)
Ges.: Verhalten von PA5, Aufgabe und Bezeichnung von -R1 und -R2, Abhilfe
- PA5: Bei offenem -S3 hängt der Eingang in der Luft (floatet). Ein CMOS-Eingang ist sehr hochohmig; sein Pegel ist undefiniert und wechselt durch Störungen zufällig zwischen 0 und 1 – der Controller meldet womöglich die Endlage, obwohl das Tor noch fährt. Im verbotenen Bereich zieht die Eingangsstufe zudem erhöhten Querstrom. (2 Punkte)
- Aufgabe von -R1 und -R2: Beide Widerstände ziehen den Eingang bei offenem Taster auf ein festes Potenzial und sorgen so für einen definierten Pegel; bei betätigtem Taster begrenzen sie den Strom, sodass kein Kurzschluss zwischen U_\mathrm{B} und Masse entsteht. (1 Punkt)
- Bezeichnung: -R1 (nach U_\mathrm{B}) ist ein Pull-up-Widerstand, -R2 (nach Masse) ein Pull-down-Widerstand. (1 Punkt)
- Abhilfe für PA5: im Programm den internen Pull-up einschalten (z. B.
pinMode(PA5, INPUT_PULLUP)bzw. Bit im Port-Register setzen). Dann ist PA5 bei offenem Schalter High und bei betätigtem Low. (1 Punkt)
c) Berechne den Strom durch -R1 bei betätigtem Taster -S1. Begründe, warum an PA3 bei unbetätigtem Taster trotz -R1 die volle Spannung von 3,3 V anliegt. (3 Punkte)
Ges.: Strom I_{R1} bei betätigtem -S1; Begründung für U_\mathrm{PA3} = 3{,}3\ \mathrm{V} bei offenem -S1
Bei betätigtem Taster liegt die ganze Spannung an -R1 (1 Punkt):
\def\arraystretch{2.3} \begin{array}{rcl|l} I_{R1} & = & \frac{U_\mathrm{B}}{R_1} & \\ I_{R1} & = & \frac{3{,}3\ \mathrm{V}}{10\ \mathrm{k\Omega}} & \\ I_{R1} & = & \underline{\underline{0{,}330\ \mathrm{mA}}} & \end{array}
(1 Punkt)
Bei offenem Taster fließt nur der winzige Eingangsstrom des CMOS-Eingangs (Leckstrom, höchstens im µA-Bereich) durch -R1. Der Spannungsabfall U_{R1} = R_1 \cdot I ist deshalb praktisch null, und an PA3 liegt nahezu die volle Spannung von 3,3 V. (1 Punkt)
Aufgabe 2.1: Tasterprüfung an der Zisternensteuerung (Kernkompetenz)
(ca. 17 min Bearbeitungszeit)
Im Prüffeld der Blattwerk Steuerungen GmbH wird jede Zisternensteuerung ZS-1 vor der Auslieferung geprüft. Ludmila Sokolova möchte, dass die Taster der Frontplatte dabei je zehnmal betätigt werden und ein Prüfprogramm mitzählt. Für den Versuchsaufbau nimmst Du ein Mikrocontroller-Board aus der Ausbildungswerkstatt: Der zu prüfende Taster liegt zwischen dem Pin von Taster 1 (BUTTON1_PIN) und GND, eine Kontroll-LED am Pin von LED 1 (LED1_PIN). Jakob Terhorst hat einen ersten Entwurf geschrieben (Ausschnitt, fehlerhaft):
int pressCount = 0;
void loop() {
if (digitalRead(BUTTON1_PIN) == LOW) { // Taster gedrückt?
pressCount++;
Serial.println(pressCount);
}
}a) Nach einem einzigen kurzen Tastendruck zeigt der serielle Monitor einen Zählerstand von mehreren Hundert. Erkläre die Ursache. Erkläre außerdem, warum es auch nach Behebung dieses Fehlers noch zu Mehrfachzählungen kommen kann. (3 Punkte)
- Pegel statt Flanke: Das Programm fragt den Pegel ab, nicht die Änderung.
loop()läuft viele tausend Mal pro Sekunde; solange der Taster gedrückt ist, ist die Bedingung in jedem Durchlauf wahr, und der Zähler steigt bei jedem Durchlauf. Ein Druck von 0,2 s ergibt so Hunderte Zählungen (gebremst nur durch die serielle Ausgabe). (2 Punkte) - Prellen: Auch wenn nur der Wechsel von
HIGHnachLOWgezählt wird, öffnet und schließt der mechanische Kontakt in den ersten Millisekunden mehrmals. Jede dieser Flanken würde gezählt. (1 Punkt)
b) Schreibe das Prüfprogramm vollständig neu: Jede Betätigung zählt genau einmal (beim Drücken, nicht beim Loslassen), der Taster wird mit einer Wartezeit von 20 ms entprellt, der Zählerstand erscheint nach jeder Betätigung im seriellen Monitor, und nach zehn Betätigungen leuchtet die Kontroll-LED dauerhaft. Nutze den internen Pull-up und beginne mit der Liste der Ein- und Ausgabeelemente Deines Boards. (8 Punkte)
Taster an GPIO1 (Taster 1) gegen GND, Kontroll-LED an GPIO4 (LED 1).
//-------------------------------------------------------------------------------------
// Liste der Ein- und Ausgabeelemente
// Board: ESP32-C6 Dev Kit N8-M
//-------------------------------------------------------------------------------------
// Datentyp | Name der Variable | Anschlusspin | Name, Verhalten
const int BUTTON1_PIN = 1; // Button 1, active LOW, INPUT_PULLUP
const int LED1_PIN = 4; // LED 1, active HIGH (strapping pin, ok as output)
const unsigned long DEBOUNCE_MS = 20; // Wartezeit zum Entprellen in ms
const int TARGET_COUNT = 10; // Sollzahl der Betätigungen
int lastState = HIGH; // letzter gültiger Pegel (unbetätigt: HIGH)
int pressCount = 0; // gezählte Betätigungen
void setup() {
Serial.begin(115200);
pinMode(BUTTON1_PIN, INPUT_PULLUP); // Taster gegen GND, interner Pull-up
pinMode(LED1_PIN, OUTPUT);
digitalWrite(LED1_PIN, LOW);
}
void loop() {
int state = digitalRead(BUTTON1_PIN);
if (state != lastState) { // Flanke erkannt
delay(DEBOUNCE_MS); // Prellen abwarten
state = digitalRead(BUTTON1_PIN);
if (state != lastState) { // neuer Pegel ist stabil
lastState = state;
if (state == LOW) { // nur die fallende Flanke zählt
pressCount++;
Serial.print("Betaetigungen: ");
Serial.println(pressCount);
if (pressCount >= TARGET_COUNT) {
digitalWrite(LED1_PIN, HIGH); // Sollzahl erreicht: LED 1 an
}
}
}
}
}Die Listen der Ein- und Ausgabeelemente für weitere Boards (ESP32 Dev Kit V1/V2, WeMos-Board mit OLED) stehen im Artikel Pinbelegung der Mikrocontroller-Boards.
Bewertung: Liste mit Taster 1 und LED 1 (1 Punkt), pinMode() mit INPUT_PULLUP und OUTPUT (1 Punkt), letzten Pegel speichern und Änderung erkennen (2 Punkte), Wartezeit und erneutes Lesen (1 Punkt), nur fallende Flanke zählen (1 Punkt), Ausgabe des Zählerstands (1 Punkt), LED ab zehn Betätigungen (1 Punkt). Eine Lösung, die statt delay() mit millis() entprellt, ist ebenso richtig.
c) Am fertigen Gerät hängt die Frontplatte über ein 1,5 m langes Flachbandkabel an der Steuerplatine. Kwame Asante schlägt vor, statt des internen Pull-ups (für diese Aufgabe angenommen: R_\mathrm{int} = 45\ \mathrm{k\Omega}) auf der Steuerplatine einen externen Pull-up von R_\mathrm{ext} = 4{,}7\ \mathrm{k\Omega} an U_\mathrm{B} = 3{,}3\ \mathrm{V} zu bestücken. Berechne für beide Widerstände den Strom bei gedrücktem Taster und begründe den Vorschlag. (4 Punkte)
Geg.: U_\mathrm{B} = 3{,}3\ \mathrm{V}, R_\mathrm{int} = 45\ \mathrm{k\Omega}, R_\mathrm{ext} = 4{,}7\ \mathrm{k\Omega}
Ges.: I_\mathrm{int}, I_\mathrm{ext} bei gedrücktem Taster; Begründung
Bei gedrücktem Taster liegt die ganze Spannung am Pull-up-Widerstand:
\def\arraystretch{2.3} \begin{array}{rcl|l} I_\mathrm{int} & = & \frac{U_\mathrm{B}}{R_\mathrm{int}} & \\ I_\mathrm{int} & = & \frac{3{,}3\ \mathrm{V}}{45\ \mathrm{k\Omega}} & \\ I_\mathrm{int} & = & \underline{\underline{73{,}3\ \mathrm{\mu A}}} & \end{array}
(1 Punkt)
\def\arraystretch{2.3} \begin{array}{rcl|l} I_\mathrm{ext} & = & \frac{U_\mathrm{B}}{R_\mathrm{ext}} & \\ I_\mathrm{ext} & = & \frac{3{,}3\ \mathrm{V}}{4{,}7\ \mathrm{k\Omega}} & \\ I_\mathrm{ext} & = & \underline{\underline{0{,}702\ \mathrm{mA}}} & \end{array}
(1 Punkt)
Begründung: Eine lange Leitung fängt Störungen ein und hat eine merkliche Kapazität. Der niederohmige externe Pull-up hält den Eingang mit etwa zehnmal mehr Strom fest auf High, sodass eingekoppelte Störimpulse ihn kaum unter die Low-Schwelle ziehen, und lädt die Leitungskapazität nach dem Loslassen schneller wieder auf. Der Mehrverbrauch von 0,7 mA fließt nur, solange der Taster gedrückt ist, und ist für ein netzversorgtes Gerät unerheblich. (2 Punkte)
d) Ein Taster der Frontplatte soll die Pumpe sicher abschalten („Pumpe aus“). Gib an, welchen Pegel der Eingang mit Pull-up liest, wenn der Stecker des Flachbandkabels abgezogen ist. Beurteile damit, ob für diesen Taster ein Schließer oder ein Öffner eingesetzt werden sollte. (3 Punkte)
- Pegel: Bei abgezogenem Stecker hängt nur noch der Pull-up am Eingang; er liest dauerhaft
HIGH. (1 Punkt) - Schließer:
HIGHbedeutet „nicht betätigt“. Der Fehler fällt nicht auf, und die Pumpe ließe sich im Ernstfall nicht ausschalten. (1 Punkt) - Öffner:
HIGHbedeutet „betätigt“. Bei abgezogenem Stecker oder Drahtbruch schaltet die Steuerung die Pumpe ab, der Fehler fällt sofort auf. Für „Pumpe aus“ ist deshalb ein Öffner zu wählen; das Programm wertet dannHIGHals Abschaltbefehl. (1 Punkt)
Aufgabe 3.1: Stückzähler an einem Packtisch (Profilkompetenz)
(ca. 16 min Bearbeitungszeit)
An einem Packtisch drückt die Mitarbeiterin nach jedem fertigen Paket einen robusten Taster; ein Zählereingang des Mikrocontrollers zählt die Pakete. Der Taster ist entprellt wie im Lehrartikel (RC-Glied mit Schmitt-Trigger-Inverter): Pull-up R_1 = 22\ \mathrm{k\Omega} an U_\mathrm{B} = 3{,}3\ \mathrm{V}, Taster gegen Masse, zwischen Taster-Knoten und Kondensator R_2 = 470\ \mathrm{\Omega}, C_1 = 470\ \mathrm{nF} gegen Masse. Der Schmitt-Trigger schaltet bei steigender Eingangsspannung bei U_\mathrm{T+} = 1{,}9\ \mathrm{V}, bei fallender bei U_\mathrm{T-} = 1{,}1\ \mathrm{V}. Laut Herstellerangabe prellt der Taster höchstens 5 ms.
a) Erkläre, warum der Zähler ohne Entprellung für ein Paket oft mehrere Stück zählt. (2 Punkte)
Geg.: R_1 = 22\ \mathrm{k\Omega}, R_2 = 470\ \mathrm{\Omega}, C_1 = 470\ \mathrm{nF}, U_\mathrm{B} = 3{,}3\ \mathrm{V}, U_\mathrm{T+} = 1{,}9\ \mathrm{V}, U_\mathrm{T-} = 1{,}1\ \mathrm{V}, Prellzeit höchstens 5 ms
Ges.: Ursache für Mehrfachzählung
Mechanische Kontakte prellen: Beim Schließen (und Öffnen) federn die Kontaktflächen zurück und öffnen und schließen in den ersten Millisekunden mehrmals. (1 Punkt) Der Zählereingang ist schnell genug, um jede dieser Flanken als eigenes Ereignis zu zählen; aus einem Tastendruck werden so mehrere Stück. (1 Punkt)
b) Berechne, wie lange es nach dem Betätigen dauert, bis die Kondensatorspannung U_\mathrm{T-} unterschreitet, und wie lange es nach dem Loslassen dauert, bis sie U_\mathrm{T+} überschreitet. Beurteile, ob die Entprellung für den Taster ausreicht. (6 Punkte)
Ges.: Zeit t_1 beim Betätigen bis u_C < U_\mathrm{T-}, Zeit t_2 nach dem Loslassen bis u_C > U_\mathrm{T+}, Beurteilung
Betätigen: Der Taster entlädt C_1 über R_2 (der Knoten am Taster liegt auf Masse, R_1 spielt für den Kondensator keine Rolle) (1 Punkt):
\def\arraystretch{2.3} \begin{array}{rcl|l} u_C & = & U_\mathrm{B} \cdot e^{-\frac{t_1}{R_2 \cdot C_1}} & \color{gray}{\text{mit } u_C = U_\mathrm{T-}} \\ t_1 & = & R_2 \cdot C_1 \cdot \ln\frac{U_\mathrm{B}}{U_\mathrm{T-}} & \\ t_1 & = & 470\ \mathrm{\Omega} \cdot 470\ \mathrm{nF} \cdot \ln\frac{3{,}3\ \mathrm{V}}{1{,}1\ \mathrm{V}} & \\ t_1 & = & 0{,}221\ \mathrm{ms} \cdot 1{,}10 \approx \underline{\underline{0{,}243\ \mathrm{ms}}} & \end{array}
(1 Punkt)
Loslassen: C_1 lädt sich über R_1 + R_2 auf (1 Punkt):
\def\arraystretch{2.3} \begin{array}{rcl|l} u_C & = & U_\mathrm{B} \cdot \left(1 - e^{-\frac{t_2}{(R_1 + R_2) \cdot C_1}}\right) & \color{gray}{\text{mit } u_C = U_\mathrm{T+}} \\ e^{-\frac{t_2}{(R_1 + R_2) \cdot C_1}} & = & \frac{U_\mathrm{B} - U_\mathrm{T+}}{U_\mathrm{B}} & \color{gray}{\ln} \\ t_2 & = & (R_1 + R_2) \cdot C_1 \cdot \ln\frac{U_\mathrm{B}}{U_\mathrm{B} - U_\mathrm{T+}} & \\ t_2 & = & 22{,}47\ \mathrm{k\Omega} \cdot 470\ \mathrm{nF} \cdot \ln\frac{3{,}3\ \mathrm{V}}{1{,}4\ \mathrm{V}} & \\ t_2 & = & 10{,}6\ \mathrm{ms} \cdot 0{,}857 \approx \underline{\underline{9{,}08\ \mathrm{ms}}} & \end{array}
Mit gerundeten Zwischenergebnissen ergibt sich: t_2 \approx 9{,}08\ \mathrm{ms}
Ohne gerundete Zwischenergebnisse ergibt sich: t_2 \approx 9{,}06\ \mathrm{ms}
(1 Punkt)
Beurteilung: Beim Betätigen schaltet der Ausgang nach rund 0,24 ms – die kurzen Öffnungen beim Prellen laden C_1 über die 22 kΩ kaum auf, die Spannung bleibt unter U_\mathrm{T+}. Beim Loslassen vergehen rund 9 ms bis zum Umschalten; jedes erneute Schließen während des Prellens entlädt C_1 wieder. Da 9 ms deutlich länger sind als die höchstens 5 ms Prellzeit, entsteht je Tastendruck genau ein Impuls. Die Entprellung reicht aus, und die Verzögerung merkt die Mitarbeiterin nicht. (2 Punkte)
c) Bei einer Reparatur wurde der Schmitt-Trigger-Inverter durch einen gewöhnlichen Inverter derselben Logikfamilie ersetzt. Beurteile die Auswirkung. (2 Punkte)
Ges.: Auswirkung eines Inverters ohne Schmitt-Trigger
Ein gewöhnlicher Inverter hat nur eine Schaltschwelle und keine Hysterese. Die langsam ansteigende Kondensatorspannung verweilt lange im Übergangsbereich; kleine Störungen oder Restprellen lassen den Ausgang dort mehrfach kippen oder schwingen, und die Eingangsstufe zieht erhöhten Querstrom. (1 Punkt) Der Zähler kann dadurch wieder Mehrfachimpulse zählen. Die Reparatur ist fehlerhaft; es muss wieder ein Baustein mit Schmitt-Trigger-Eingang eingesetzt werden. (1 Punkt)
d) An einem zweiten Packtisch wurde die Entprellung als RS-Flipflop aus zwei NAND-Gattern mit Pull-up-Widerständen aufgebaut. Der eingebaute Taster ist ein Schließer, der nur den Eingang \overline{S} gegen Masse schaltet; \overline{R} liegt über seinen Pull-up dauerhaft auf High. Prüfe die Schaltung auf Fehler, beschreibe das Verhalten und gib eine Korrektur an. (3 Punkte)
Ges.: Fehler, Verhalten, Korrektur
- Fehler: Das RS-Flipflop braucht einen Wechsler, der abwechselnd \overline{S} und \overline{R} gegen Masse schaltet. Mit einem Schließer an \overline{S} wird das Flipflop nie zurückgesetzt. (1 Punkt)
- Verhalten: Beim ersten Tastendruck geht Q auf 1 und bleibt dort, weil \overline{R} dauerhaft High ist (Speichern). Der Zähler zählt nach dem Einschalten genau ein Paket und danach keines mehr. (1 Punkt)
- Korrektur: Taster gegen einen Wechsler tauschen: gemeinsamer Kontakt an Masse, Schließer-Kontakt an \overline{S}, Öffner-Kontakt an \overline{R}, beide Eingänge mit Pull-up. Alternativ das RC-Glied mit Schmitt-Trigger einsetzen, das mit einem Schließer auskommt. (1 Punkt)
e) Der Zählerstand wird über einen zweiten Taster am Reset-Eingang des Controllers gelöscht. Im Entwurf liegt dieser Taster ohne weitere Bauteile zwischen Reset-Eingang und Masse; der Reset-Eingang hat einen internen Pull-up. Beurteile den Entwurf und nenne drei Bauteile, mit denen Du ihn verbesserst, jeweils mit ihrer Aufgabe. (4 Punkte)
Ges.: Beurteilung des Reset-Entwurfs, drei Verbesserungen
Beurteilung: Der Entwurf ist ungünstig. Der Taster prellt direkt am Reset-Eingang und erzeugt beim Drücken und Loslassen mehrere kurze, unterschiedlich lange Impulse; zu kurze Impulse lösen keinen sicheren Reset aus oder lassen den Controller in einem undefinierten Zustand anlaufen. Der hochohmige interne Pull-up macht den Eingang außerdem störempfindlich (Fehl-Resets). (1 Punkt)
Verbesserungen (3 Punkte, je Bauteil mit Aufgabe 1 Punkt):
- Kondensator (z. B. 100 nF … 1 µF) vom Reset-Eingang gegen Masse: bildet mit dem Pull-up ein RC-Glied, überbrückt das Prellen und verlängert den Impuls nach dem Loslassen auf einige Millisekunden.
- Externer Pull-up-Widerstand (z. B. 10 kΩ) nach U_\mathrm{B}: niederohmiger als der interne, legt die Zeitkonstante fest und macht den Eingang störfest.
- Schutzwiderstand (einige 100 Ω) in Reihe zum Taster: begrenzt den Entladestrom des Kondensators.
- alternativ bzw. zusätzlich ein Reset-Baustein (supervisor) mit Schmitt-Trigger-Eingang, der einen Impuls fester Mindestlänge liefert, oder eine Diode nach U_\mathrm{B}, die den Kondensator beim Abschalten entlädt.
Links und weitere Informationen
zum Nachlesen: Digitale Eingänge am Mikrocontroller: Taster, Logikpegel, Pull-up/Pull-down und Entprellen
Voraussetzung: Spannungsteiler
weiterführend: Komparator und Schmitt-Trigger
weiterführend: Zeit ohne delay(): millis()
für die Pins aller Boards: Pinbelegung der Mikrocontroller-Boards
Hinweis zur Nachnutzung als Open Educational Resource (OER)
Dieser Artikel und seine Texte, Bilder, Grafiken, Code und sonstiger Inhalt sind - sofern nicht anders angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: “Übungsaufgaben zu digitalen Eingängen am Mikrocontroller: Taster, Pull-up/Pull-down und Entprellen” von oer-informatik.de (H. Stein), Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/mcu-digitale-eingaenge-uebungsaufgaben veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/mcu/arduino-esp. Erstellt mit KI-Assistenz; von mir umfassend redaktionell überarbeitet, geprüft und freigegeben. Stand: 10.11.2026.
[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]
