Mikrocontroller: Wiederholung und Übungsaufgaben
https://bildung.social/@oerinformatik/
https://oer-informatik.de/mikrocontroller-uebungsaufgaben
Mikrocontroller, Flash, SRAM, EEPROM, Pull-up-Widerstand, AD-Umsetzer, PWM, Timer, Watchdog, Übungsaufgaben, Prüfungsvorbereitung
tl/dr; (ca. 65 min Lese- und Bearbeitungszeit): Wiederholung und Übungsaufgaben zur Mikrocontroller-Hardware – von Speicher und Takt über Ein- und Ausgangsbeschaltung, Analogeingang, Timer und PWM bis zu Watchdog und Stromlaufplan. Du berechnest Vorwiderstände, Basiswiderstände, Spannungsteiler für 24-V-Signale, Umsetzwerte, PWM-Frequenzen und Timer-Vergleichswerte und analysierst zum Schluss den Stromlaufplan einer temperaturabhängigen Lüftersteuerung. Zu jeder der 19 Aufgaben lässt sich eine Beispiellösung einblenden [AI-Assisted]. (Zuletzt geändert am 13.11.2026)
Schon fit in diesem Thema? Nutze die Kann-Liste und die Leitfragen unter dem Artikel als Checkliste, ob Du die relevanten Kompetenzen bereits hast.
Als Mikrocontroller-Grundlagen kann ich nach Durcharbeiten des Artikels…
… die Bausteine eines Mikrocontrollers und die Aufgaben von Flash, SRAM und EEPROM benennen.
… Takterzeugung mit Quarz, Reset-Beschaltung und Abblockkondensator erklären.
… Vorwiderstände für LEDs und Basiswiderstände für Transistorstufen an Ausgangspins berechnen.
… Eingänge mit Pull-up- und Pull-down-Widerständen beschalten und Pegel prüfen.
… Auflösung und Umsetzwerte des Analogeingangs berechnen.
Darüber hinaus kann ich als Mikrocontroller-Expertenwissen…
… 24-V-Signale an einen Mikrocontroller anpassen und die Grenzen eines Spannungsteilers beurteilen.
… PWM-Frequenz, Tastgrad und Timer-Vergleichswerte berechnen.
… Interrupt, Watchdog und Brown-out-Erkennung erklären.
… einen Stromlaufplan mit Mikrocontroller analysieren und den Zustand nach dem Reset beurteilen.
Fast jede Baugruppe enthält einen Mikrocontroller. Zum Kernwissen der Geräte- und Systemtechnik gehören Aufbau und Speicher, Takterzeugung, die Beschaltung von Ein- und Ausgängen, der Analogeingang, Interrupts, Timer und PWM sowie Watchdog und Reset. Dieser Artikel behandelt die Hardware rund um den Mikrocontroller; das Programmieren (Mikrocontroller-Programmierung: Wiederholung und Übungsaufgaben), die seriellen Schnittstellen und die AD-Umsetzung (A/D-Umsetzer) haben eigene Artikel.
Dieser Artikel ist in acht Schritten aufgebaut. Schritt 8 verbindet alles in einem Stromlaufplan. Jeder Schritt beginnt mit einer kurzen Wiederholung, danach folgen Aufgaben:
gebundene Aufgaben (Auswahlaufgaben): Genau eine der fünf Antworten ist richtig.
ungebundene Aufgaben: Lösungsweg mit Ansatz und Ergebnis.
Hinweise zur Bearbeitung: Bei den gebundenen Aufgaben ist genau eine Antwort richtig; begründe Dir selbst, warum die anderen vier nicht zutreffen. Die Beispiellösungen 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. Einfache Formeln werden römisch nummeriert und ineinander eingesetzt („I in II“). Ergebnisse stehen mit drei signifikanten Stellen doppelt unterstrichen, gerundete mit \approx; wurde mit gerundeten Zwischenergebnissen gerechnet, steht das Ergebnis ohne Rundung darunter. Rechne selbst ebenso mit Formel, eingesetzten Werten und Einheit. Pinnamen wie PB0 oder PD6 entsprechen verbreiteten 8-Bit-Mikrocontrollern (z. B. ATmega328P). Bei „angeben“ und „nennen“ genügen Stichworte, bei „beschreiben“, „erklären“ und „begründen“ antwortest Du in ganzen Sätzen. 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 „Mikrocontroller“.
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/mikrocontroller-uebungsaufgaben
- Stilbeispiel: https://oer-informatik.de/mikrocontroller-uebungsaufgaben
Die Aufgaben sollen Inhalte zu diesen Schlagwörtern abdecken:
- Mikrocontroller
- Flash
- SRAM
- EEPROM
- Pull-up-Widerstand
- AD-Umsetzer
- PWM
- Timer
- Watchdog
Kompetenzstufe: Kernkompetenz (alternativ: Basiskompetenz, 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.
1 Aufbau eines Mikrocontrollers
Grundlagen
Ein Mikrocontroller vereint auf einem Chip die CPU, die Speicher, die Takterzeugung und die Peripherie (Ein- und Ausgänge, AD-Umsetzer, Timer, Schnittstellen). Ein Mikroprozessor (z. B. im PC) enthält dagegen nur die CPU; Speicher und Peripherie sind externe Bausteine.
| Speicher | Inhalt | flüchtig? | Schreiben |
|---|---|---|---|
| Flash | Programm (Firmware) | nein | beim Programmieren, blockweise, begrenzte Zyklen (ca. 10 000) |
| SRAM | Variablen, Stack | ja | beliebig oft während des Betriebs |
| EEPROM | Parameter, Kalibrierwerte, Zählerstände | nein | byteweise während des Betriebs, ca. 100 000 Zyklen |
Die meisten Mikrocontroller arbeiten nach der Harvard-Architektur: getrennte Busse für Programm und Daten, Befehl und Daten können gleichzeitig gelesen werden.
Mit n Adressleitungen lassen sich 2^n Speicherzellen ansprechen.
Viele Befehle werden in einem Taktzyklus ausgeführt: T = 1 : f.
Aufgabe 1.1 (gebunden)
In welchem Speicher legt ein Mikrocontroller einen Kalibrierwert ab, der während des Betriebs geändert wird und nach dem Abschalten erhalten bleiben soll?
SRAM
Register der CPU
EEPROM
Stack
Cache
Richtige Antwort: 3
Geg.: Kalibrierwert, im Betrieb änderbar, nichtflüchtig
Ges.: geeigneter Speicher
Das \underline{\underline{\text{EEPROM}}} ist nichtflüchtig und kann während des Betriebs byteweise beschrieben werden: Antwort 3. SRAM (Antwort 1), CPU-Register (Antwort 2), Stack (Antwort 4, ein Bereich im SRAM) und Cache (Antwort 5) verlieren ihren Inhalt beim Abschalten.
Aufgabe 1.2 (gebunden)
Der Programmspeicher eines Mikrocontrollers wird über 16 Adressleitungen angesprochen; jede Adresse enthält 1 Byte. Wie groß ist der adressierbare Speicher?
16 KiB
32 KiB
64 KiB
128 KiB
16 Byte
Richtige Antwort: 3
Geg.: 16 Adressleitungen, 1 Byte je Adresse
Ges.: adressierbarer Speicher
2^{16} = 65\,536\ \text{Byte} = \frac{65\,536}{1024}\ \text{KiB} = \underline{\underline{64\ \text{KiB}}}
Antwort 3. Antwort 1 und 2 entsprechen 14 bzw. 15 Adressleitungen, Antwort 4 entspricht 17. Antwort 5 verwechselt die Zahl der Leitungen mit der Speichergröße.
Aufgabe 1.3 (ungebunden, 8 Punkte)
Ein Mikrocontroller hat 32 KiB Flash, 2 KiB SRAM und 1 KiB EEPROM und wird mit 16 MHz getaktet.
Ordne die folgenden Daten jeweils einem Speicher zu und begründe kurz: Programmcode, aktueller Messwert, eingestellte Solltemperatur, die nach dem Abschalten erhalten bleiben soll. (3 Punkte)
Berechne die Dauer eines Taktzyklus und die Zeit für eine Programmschleife, die 1000 Taktzyklen benötigt. (3 Punkte)
Nenne zwei Unterschiede zwischen einem Mikrocontroller und einem Mikroprozessor. (2 Punkte)
Geg.: 32 KiB Flash, 2 KiB SRAM, 1 KiB EEPROM; f = 16\ \text{MHz}; Schleife mit 1000 Taktzyklen
a) Ges.: Zuordnung zu den Speichern
| Daten | Speicher | Begründung |
|---|---|---|
| Programmcode | \underline{\underline{\text{Flash}}} | nichtflüchtig, wird nur beim Programmieren geschrieben |
| aktueller Messwert | \underline{\underline{\text{SRAM}}} | ändert sich ständig, muss nicht erhalten bleiben |
| Solltemperatur | \underline{\underline{\text{EEPROM}}} | im Betrieb änderbar und nach dem Abschalten erhalten |
b) Ges.: T, t_\mathrm{Schleife}
\begin{aligned} &\text{(I)} && T = \dfrac{1}{f} \\ &\text{(II)} && t_\mathrm{Schleife} = 1000 \cdot T \end{aligned}
I in II:
T = \frac{1}{16\ \text{MHz}} = \underline{\underline{62{,}5\ \text{ns}}} \qquad t_\mathrm{Schleife} = 1000 \cdot 62{,}5\ \text{ns} = \underline{\underline{62{,}5\ \text{µs}}}
c) Ges.: zwei Unterschiede
\underline{\underline{\text{Speicher und Peripherie auf dem Chip}}}: Der Mikrocontroller enthält Ports, ADC, Timer und Schnittstellen selbst; der Mikroprozessor braucht dafür externe Bausteine.
\underline{\underline{\text{Einsatzzweck}}}: Mikrocontroller sind auf Steuerungsaufgaben mit geringem Stromverbrauch und niedrigen Kosten ausgelegt, Mikroprozessoren auf hohe Rechenleistung mit großem externem Speicher.
2 Takterzeugung und Reset
Grundlagen
Der Takt kommt von einem internen RC-Oszillator (preiswert, Toleranz einige Prozent) oder von einem externen Quarz (Toleranz typisch \pm 50\ \text{ppm}, also \pm 0{,}005\ \%). Für Uhren und serielle Schnittstellen ist ein genauer Takt nötig; bei UART sollte die Abweichung unter etwa 2 % liegen.
Der Quarz wird mit zwei kleinen Kondensatoren (typisch 12 … 22 pF) gegen 0 V beschaltet. Sie bilden die Lastkapazität, mit der der Oszillator auf der Nennfrequenz schwingt.
Der RESET-Eingang ist meist low-aktiv. Ein Pull-up-Widerstand (z. B. 10 kΩ) hält ihn im Betrieb auf High; ein Low-Pegel startet den Mikrocontroller neu.
Direkt an jedem Versorgungsanschluss sitzt ein Abblockkondensator (typisch 100 nF), der kurze Stromspitzen beim Schalten liefert und Störungen von der Versorgung fernhält.
Aufgabe 2.1 (gebunden)
Welche Aufgabe haben die beiden 22-pF-Kondensatoren am Quarz eines Mikrocontrollers?
Sie glätten die Versorgungsspannung des Mikrocontrollers.
Sie verhindern, dass der Quarz zu schwingen beginnt.
Sie teilen die Quarzfrequenz durch zwei.
Sie schützen die Pins vor elektrostatischer Entladung.
Sie bilden die Lastkapazität, damit der Oszillator sicher auf der Nennfrequenz schwingt.
Richtige Antwort: 5
Geg.: Quarz mit zwei 22-pF-Kondensatoren gegen 0 V
Ges.: Aufgabe der Kondensatoren
Die Kondensatoren bilden mit der Schaltungskapazität die vom Quarzhersteller angegebene \underline{\underline{\text{Lastkapazität}}}. Nur damit schwingt der Oszillator sicher und genau auf der Nennfrequenz: Antwort 5. Die Versorgung glättet der Abblockkondensator (Antwort 1). Die Kondensatoren ermöglichen das Schwingen, statt es zu verhindern (Antwort 2), und teilen keine Frequenz (Antwort 3). ESD-Schutz (Antwort 4) leisten Schutzdioden.
Aufgabe 2.2 (ungebunden, 6 Punkte)
Eine Steuerung zählt die Sekunden mit einem Timer.
Der Takt stammt von einem Quarz mit einer Toleranz von \pm 50\ \text{ppm}. Berechne die größtmögliche Abweichung der Uhr nach einem Tag. (3 Punkte)
Der interne RC-Oszillator hat eine Toleranz von \pm 10\ \%. Beurteile, ob er für eine serielle Schnittstelle mit 9600 Bit/s geeignet ist. (2 Punkte)
Nenne die Aufgabe des 100-nF-Kondensators zwischen VCC und GND. (1 Punkt)
Geg.: Quarztoleranz \delta = \pm 50\ \text{ppm} = \pm 50 \cdot 10^{-6}; RC-Oszillator \pm 10\ \%; UART 9600 Bit/s, zulässige Abweichung etwa 2 %
a) Ges.: \Delta t nach einem Tag
\begin{aligned} &\text{(I)} && \Delta t = t \cdot \delta \\ &\text{(II)} && t = 24 \cdot 3600\ \text{s} = 86\,400\ \text{s} \end{aligned}
II in I:
\Delta t = 86\,400\ \text{s} \cdot 50 \cdot 10^{-6} = \underline{\underline{4{,}32\ \text{s}}}
b) Ges.: Eignung des RC-Oszillators
Mit \pm 10\ \% kann die Bitrate um bis zu 10 % abweichen. Zulässig sind etwa 2 %; die Abtastung des letzten Bits eines Zeichens läge außerhalb des Bits. Der unkalibrierte RC-Oszillator ist \underline{\underline{\text{nicht geeignet}}} (erst nach Kalibrierung auf etwa \pm 1\ \% oder mit Quarz).
c) Ges.: Aufgabe des 100-nF-Kondensators
Er ist ein \underline{\underline{\text{Abblockkondensator}}}: Er liefert die kurzen Stromspitzen beim Umschalten direkt am Chip und hält Störungen von der Versorgung fern.
3 Digitale Ausgänge
Grundlagen
Ein Ausgangspin kann Strom liefern (Last gegen 0 V, Bild a) oder aufnehmen (Last gegen U_\mathrm{DD}, Bild b). Je nach Beschaltung ist eine Last also high-aktiv oder low-aktiv.
Belastbarkeit: Die Datenblätter nennen einen Höchststrom je Pin (z. B. 20 mA, absolut 40 mA) und eine Summe für alle Pins (z. B. 200 mA). Unter Last sinkt U_\mathrm{OH} etwas unter U_\mathrm{DD}.
Vorwiderstand einer LED: R_\mathrm{V} = \dfrac{U_\mathrm{OH} - U_\mathrm{F}}{I_\mathrm{F}}
Größere Lasten (Relais, Motoren, Lampen) schaltet ein Transistor oder MOSFET (Bild c). Beim Bipolartransistor gilt I_\mathrm{B} = \ddot{u} \cdot \dfrac{I_\mathrm{C}}{B_\mathrm{min}} mit dem Übersteuerungsfaktor \ddot{u} (typisch 2 … 5).
Induktive Lasten brauchen eine Freilaufdiode: Beim Abschalten erzeugt die Spule eine hohe Gegenspannung, die den Transistor zerstören könnte.
Aufgabe 3.1 (gebunden)
Bei welchem Zustand von PB1 leuchtet die LED -P_2 in Bild b?
PB1 = High
PB1 = Low
PB1 ist als Eingang geschaltet.
Bei beiden Pegeln, nur unterschiedlich hell.
Nie, weil die LED falsch herum eingebaut ist.
Richtige Antwort: 2
Geg.: Bild b: LED mit Vorwiderstand zwischen +5 V und PB1
Ges.: Zustand, bei dem die LED leuchtet
Strom fließt nur, wenn zwischen +5 V und PB1 eine Spannung liegt, also bei \underline{\underline{\text{PB1 = Low}}}: Antwort 2. Bei High (Antwort 1) liegen beide Enden auf 5 V. Als Eingang (Antwort 3) ist der Pin hochohmig; es fließt nur ein vernachlässigbarer Strom. Antwort 4 trifft nicht zu, und die LED ist richtig gepolt (Anode zu +5 V), Antwort 5 ist falsch.
Aufgabe 3.2 (ungebunden, 10 Punkte)
Der Mikrocontroller arbeitet an 5 V. Rechne mit U_\mathrm{OH} = 5\ \text{V}, U_\mathrm{OL} = 0\ \text{V} und U_\mathrm{BE} = 0{,}7\ \text{V}.
Die LED -P_1 (rot, U_\mathrm{F} = 2{,}0\ \text{V}) soll mit höchstens 10 mA betrieben werden. Berechne -R_1, wähle einen Wert aus der Reihe E12 und berechne den LED-Strom. (3 Punkte)
An einem Port werden acht solcher LEDs gleichzeitig betrieben. Prüfe die Belastung, wenn der Summenstrom aller Pins höchstens 200 mA betragen darf. (1 Punkt)
Das Relais -Q_1 hat eine Spule mit 12 V und 400 Ω. Der Transistor -K_1 hat B_\mathrm{min} = 100. Berechne -R_3 für einen Übersteuerungsfaktor von 3 und wähle einen Wert aus der Reihe E12. (4 Punkte)
Erkläre die Aufgabe von -R_4. (2 Punkte)
Geg.: U_\mathrm{OH} = 5\ \text{V}; U_\mathrm{OL} = 0\ \text{V}; U_\mathrm{BE} = 0{,}7\ \text{V}; -P_1: U_\mathrm{F} = 2{,}0\ \text{V}, I_\mathrm{F,max} = 10\ \text{mA}; I_\mathrm{ges,max} = 200\ \text{mA}; -Q_1: 12 V, 400 Ω; B_\mathrm{min} = 100; \ddot{u} = 3
a) Ges.: R_1, E12-Wert, I_\mathrm{F}
\begin{aligned} &\text{(I)} && U_\mathrm{OH} = U_\mathrm{F} + U_\mathrm{R1} \\ &\text{(II)} && U_\mathrm{R1} = R_1 \cdot I_\mathrm{F} \end{aligned}
II in I:
\def\arraystretch{2.3} \begin{array}{rcl|l} U_\mathrm{OH} & = & U_\mathrm{F} + R_1 \cdot I_\mathrm{F} & \color{gray}{-U_\mathrm{F}} \\ U_\mathrm{OH} - U_\mathrm{F} & = & R_1 \cdot I_\mathrm{F} & \color{gray}{:I_\mathrm{F}} \\ R_1 & = & \dfrac{U_\mathrm{OH} - U_\mathrm{F}}{I_\mathrm{F}} = \dfrac{5\ \text{V} - 2{,}0\ \text{V}}{10\ \text{mA}} = 300\ \Omega & \end{array}
Gewählt: \underline{\underline{R_1 = 330\ \Omega}} (nächster größerer E12-Wert).
I_\mathrm{F} = \frac{3{,}0\ \text{V}}{330\ \Omega} \approx \underline{\underline{9{,}09\ \text{mA}}}
b) Ges.: Summenstrom
I_\mathrm{ges} = 8 \cdot 9{,}09\ \text{mA} \approx \underline{\underline{72{,}7\ \text{mA}}} < 200\ \text{mA}
Mit gerundeten Zwischenergebnissen ergibt sich: I_\mathrm{ges} \approx 72{,}7\ \text{mA}
Ohne gerundete Zwischenergebnisse ergibt sich: I_\mathrm{ges} = 8 \cdot 3\ \text{V} : 330\ \Omega \approx 72{,}7\ \text{mA}
Die Belastung ist \underline{\underline{\text{zulässig}}}.
c) Ges.: R_3, E12-Wert
\begin{aligned} &\text{(I)} && I_\mathrm{C} = \dfrac{U_\mathrm{Sp}}{R_\mathrm{Sp}} \\ &\text{(II)} && I_\mathrm{B} = \ddot{u} \cdot \dfrac{I_\mathrm{C}}{B_\mathrm{min}} \\ &\text{(III)} && U_\mathrm{OH} = U_\mathrm{R3} + U_\mathrm{BE} \\ &\text{(IV)} && U_\mathrm{R3} = R_3 \cdot I_\mathrm{B} \end{aligned}
I in II:
I_\mathrm{C} = \frac{12\ \text{V}}{400\ \Omega} = 30{,}0\ \text{mA} \qquad I_\mathrm{B} = 3 \cdot \frac{30{,}0\ \text{mA}}{100} = 0{,}900\ \text{mA}
IV in III:
\def\arraystretch{2.3} \begin{array}{rcl|l} U_\mathrm{OH} & = & R_3 \cdot I_\mathrm{B} + U_\mathrm{BE} & \color{gray}{-U_\mathrm{BE}} \\ U_\mathrm{OH} - U_\mathrm{BE} & = & R_3 \cdot I_\mathrm{B} & \color{gray}{:I_\mathrm{B}} \\ R_3 & = & \dfrac{U_\mathrm{OH} - U_\mathrm{BE}}{I_\mathrm{B}} = \dfrac{5\ \text{V} - 0{,}7\ \text{V}}{0{,}900\ \text{mA}} \approx 4{,}78\ \text{k}\Omega & \end{array}
Gewählt: \underline{\underline{R_3 = 4{,}7\ \text{k}\Omega}} (nächster kleinerer E12-Wert, damit der Basisstrom nicht kleiner wird).
Damit wird I_\mathrm{B} = 4{,}3\ \text{V} : 4{,}7\ \text{k}\Omega \approx 0{,}915\ \text{mA}; der Pin wird kaum belastet.
d) Ges.: Aufgabe von -R_4
-R_4 ist die \underline{\underline{\text{Freilaufdiode}}}.
Beim Abschalten will die Spule den Strom aufrechterhalten und erzeugt eine hohe Gegenspannung. Die Diode übernimmt den Strom, der in Spule und Diode abklingt. Ohne sie würde die Spannung am Kollektor weit über 12 V steigen und -K_1 zerstören.
4 Digitale Eingänge
Grundlagen
Ein offener Eingang hat ein undefiniertes Potenzial. Ein Pull-down-Widerstand (Bild a) legt ihn bei offenem Taster auf Low, ein Pull-up-Widerstand auf High.
Viele Mikrocontroller haben zuschaltbare interne Pull-up-Widerstände (typisch 20 … 50 kΩ, Bild b). Der Taster schaltet dann gegen 0 V.
Pegel bei CMOS-Eingängen (Beispiel): U_\mathrm{IL,max} = 0{,}3 \cdot U_\mathrm{DD}, U_\mathrm{IH,min} = 0{,}6 \cdot U_\mathrm{DD}. Die Eingangsspannung darf höchstens U_\mathrm{DD} + 0{,}5\ \text{V} betragen.
Signale mit 24 V (Sensoren, SPS-Pegel) werden über einen Spannungsteiler (Bild c), besser über einen Optokoppler mit galvanischer Trennung angepasst. 24-V-Signale gelten nach IEC 61131-2 (Typ 1) ab 15 V als High und dürfen bis 30 V betragen.
Mechanische Taster prellen einige Millisekunden. Entprellen: in Software (erneut lesen nach etwa 10 … 20 ms) oder mit RC-Glied und Schmitt-Trigger.
Aufgabe 4.1 (gebunden)
In Bild b ist der interne Pull-up-Widerstand eingeschaltet. Welchen Wert liest das Programm an PD3, wenn -S_2 gedrückt ist?
0
1
einen zufälligen Wert, weil der Eingang offen ist
1, aber erst nach dem Loslassen
dauerhaft abwechselnd 0 und 1
Richtige Antwort: 1
Geg.: interner Pull-up, Taster gegen 0 V gedrückt
Ges.: gelesener Wert an PD3
Der gedrückte Taster verbindet den Pin mit 0 V; der Pull-up kann dagegen nichts ausrichten. Das Programm liest \underline{\underline{0}}: Antwort 1. 1 (Antwort 2) gilt bei offenem Taster. Der Eingang ist durch den Pull-up nie offen (Antwort 3). Antwort 4 beschreibt kein reales Verhalten. Dauerhaftes Wechseln (Antwort 5) tritt nicht auf; nur beim Prellen wechselt der Wert für wenige Millisekunden.
Aufgabe 4.2 (gebunden)
Der interne Pull-up-Widerstand hat mindestens 20 kΩ. Wie groß ist der Strom durch den gedrückten Taster -S_2 höchstens (U_\mathrm{DD} = 5\ \text{V})?
20 mA
2,5 mA
0,1 mA
0,25 mA
4 mA
Richtige Antwort: 4
Geg.: R_\mathrm{PU,min} = 20\ \text{k}\Omega; U_\mathrm{DD} = 5\ \text{V}
Ges.: I_\mathrm{max}
I_\mathrm{max} = \frac{U_\mathrm{DD}}{R_\mathrm{PU,min}} = \frac{5\ \text{V}}{20\ \text{k}\Omega} = \underline{\underline{0{,}250\ \text{mA}}}
Antwort 4. Antwort 1 verwechselt den Widerstand mit dem Strom, Antwort 2 rechnet mit 2 kΩ, Antwort 3 mit 50 kΩ (das ist der kleinste Strom). Antwort 5 teilt 20 durch 5.
Aufgabe 4.3 (ungebunden, 10 Punkte)
In Bild c ist -R_2 = 39\ \text{k}\Omega und -R_3 = 10\ \text{k}\Omega. Der Mikrocontroller arbeitet an 5 V.
Berechne die Spannung an PD4 bei einem Sensorsignal von 24 V. (2 Punkte)
Das Signal kann bis zu 30 V betragen. Berechne die Spannung an PD4 und beurteile sie. (2 Punkte)
-R_2 wird auf 56 kΩ vergrößert. Prüfe, ob ein High-Signal zwischen 15 V und 30 V nun sicher erkannt wird und den Eingang nicht überlastet. (4 Punkte)
Nenne eine bessere Lösung und ihren Vorteil. (2 Punkte)
Geg.: R_2 = 39\ \text{k}\Omega (in c: 56 kΩ); R_3 = 10\ \text{k}\Omega; U_\mathrm{DD} = 5\ \text{V}; U_\mathrm{IH,min} = 0{,}6 \cdot U_\mathrm{DD}; U_\mathrm{E,max} = U_\mathrm{DD} + 0{,}5\ \text{V}; High-Signal 15 V … 30 V
a) Ges.: U_\mathrm{PD4} bei 24 V
Spannungsteiler (unbelastet, der Eingang ist hochohmig):
\frac{U_\mathrm{PD4}}{U_\mathrm{S}} = \frac{R_3}{R_2 + R_3}
\def\arraystretch{2.3} \begin{array}{rcl|l} \dfrac{U_\mathrm{PD4}}{U_\mathrm{S}} & = & \dfrac{R_3}{R_2 + R_3} & \color{gray}{\cdot U_\mathrm{S}} \\ U_\mathrm{PD4} & = & U_\mathrm{S} \cdot \dfrac{R_3}{R_2 + R_3} = 24\ \text{V} \cdot \dfrac{10\ \text{k}\Omega}{49\ \text{k}\Omega} \approx \underline{\underline{4{,}90\ \text{V}}} & \end{array}
b) Ges.: U_\mathrm{PD4} bei 30 V; Beurteilung
U_\mathrm{PD4} = 30\ \text{V} \cdot \frac{10\ \text{k}\Omega}{49\ \text{k}\Omega} \approx \underline{\underline{6{,}12\ \text{V}}} > U_\mathrm{E,max} = 5{,}5\ \text{V}
Die Spannung ist \underline{\underline{\text{unzulässig}}}: Der Grenzwert U_\mathrm{DD} + 0{,}5\ \text{V} ist überschritten, die Schutzdiode des Eingangs leitet. Der Strom ist wegen des hochohmigen Teilers klein (unter 0,1 mA), der Betrieb ist aber nicht bestimmungsgemäß.
c) Ges.: Prüfung mit 56 kΩ
U_\mathrm{PD4,max} = 30\ \text{V} \cdot \frac{10\ \text{k}\Omega}{66\ \text{k}\Omega} \approx 4{,}55\ \text{V} \leq 5{,}5\ \text{V} \quad \text{(zulässig)}
U_\mathrm{PD4,min} = 15\ \text{V} \cdot \frac{10\ \text{k}\Omega}{66\ \text{k}\Omega} \approx 2{,}27\ \text{V} < U_\mathrm{IH,min} = 0{,}6 \cdot 5\ \text{V} = 3{,}0\ \text{V}
Der Eingang wird nicht überlastet, aber ein High-Signal von 15 V wird \underline{\underline{\text{nicht sicher erkannt}}}. Ein einfacher Spannungsteiler kann den großen Eingangsbereich nicht abdecken: Für den Überlastschutz bei 30 V wäre R_2 \geq 44{,}5\ \text{k}\Omega nötig, für die sichere Erkennung bei 15 V R_2 \leq 40\ \text{k}\Omega.
Das Diagramm zeigt beide Teiler über dem ganzen Signalbereich: Mit 39 kΩ überschreitet die Spannung an PD4 ab etwa 27 V die zulässigen 5,5 V, mit 56 kΩ bleibt sie unterhalb von 19,8 V unter der High-Schwelle von 3,0 V.
d) Ges.: bessere Lösung
Ein \underline{\underline{\text{Optokoppler}}} (mit Vorwiderstand oder Konstantstromeingang auf der 24-V-Seite und Pull-up am Mikrocontroller). Vorteile: galvanische Trennung zwischen 24-V-Anlage und Elektronik, Schutz vor Überspannung und Störungen, sichere Erkennung im ganzen Bereich von 15 V bis 30 V.
5 Analogeingang
Grundlagen
Der integrierte AD-Umsetzer wandelt eine Spannung zwischen 0 V und der Referenzspannung U_\mathrm{ref} in eine Zahl um (ausführlich im Artikel A/D-Umsetzer). Bei n Bit gilt:
U_\mathrm{LSB} = \frac{U_\mathrm{ref}}{2^n} \qquad N = \frac{U_\mathrm{E}}{U_\mathrm{ref}} \cdot 2^n \ \text{(abgerundet)}
Als Referenz dienen die Betriebsspannung, eine interne Referenz (z. B. 1,1 V) oder eine externe Referenzspannungsquelle. Eine kleinere Referenz ergibt eine feinere Auflösung, aber einen kleineren Messbereich.
Sensoren mit veränderlichem Widerstand (NTC, LDR, Potenziometer) werden mit einem Festwiderstand als Spannungsteiler angeschlossen.
Aufgabe 5.1 (gebunden)
Welche Auflösung hat ein 10-Bit-AD-Umsetzer mit U_\mathrm{ref} = 5\ \text{V}?
9,77 mV
4,88 mV
19,5 mV
0,5 V
1,22 mV
Richtige Antwort: 2
Geg.: n = 10; U_\mathrm{ref} = 5\ \text{V}
Ges.: U_\mathrm{LSB}
U_\mathrm{LSB} = \frac{U_\mathrm{ref}}{2^n} = \frac{5\ \text{V}}{1024} \approx \underline{\underline{4{,}88\ \text{mV}}}
Antwort 2. Antwort 1 rechnet mit 512 Stufen (9 Bit), Antwort 3 mit 256 Stufen (8 Bit). Antwort 4 teilt durch 10, Antwort 5 durch 4096 (12 Bit).
Aufgabe 5.2 (ungebunden, 8 Punkte)
Ein Temperatursensor liefert 10\ \text{mV} je Grad Celsius (0 V bei 0 °C). Er wird an einen 10-Bit-AD-Umsetzer mit der internen Referenz U_\mathrm{ref} = 1{,}1\ \text{V} angeschlossen.
Berechne die Auflösung in Millivolt und in Kelvin. (2 Punkte)
Berechne die höchste messbare Temperatur. (2 Punkte)
Berechne den Umsetzwert bei 25 °C. (2 Punkte)
Begründe, warum hier die interne Referenz statt der Betriebsspannung (5 V) gewählt wird. (2 Punkte)
Geg.: Sensor 10 mV/°C, 0 V bei 0 °C; n = 10; U_\mathrm{ref} = 1{,}1\ \text{V}
a) Ges.: Auflösung in mV und K
U_\mathrm{LSB} = \frac{1{,}1\ \text{V}}{1024} \approx \underline{\underline{1{,}07\ \text{mV}}} \qquad \Delta\vartheta = \frac{1{,}07\ \text{mV}}{10\ \text{mV/K}} \approx \underline{\underline{0{,}107\ \text{K}}}
Mit gerundeten Zwischenergebnissen ergibt sich: \Delta\vartheta \approx 0{,}107\ \text{K}
Ohne gerundete Zwischenergebnisse ergibt sich: \Delta\vartheta = 1{,}074\ \text{mV} : 10\ \text{mV/K} \approx 0{,}107\ \text{K}
b) Ges.: \vartheta_\mathrm{max}
\vartheta_\mathrm{max} = \frac{U_\mathrm{ref}}{10\ \text{mV/°C}} = \frac{1100\ \text{mV}}{10\ \text{mV/°C}} \approx \underline{\underline{110\ \text{°C}}}
(genau: der größte Umsetzwert 1023 entspricht etwa 109,9 °C).
c) Ges.: Umsetzwert bei 25 °C
U_\mathrm{E} = 25\ \text{°C} \cdot 10\ \text{mV/°C} = 0{,}25\ \text{V} \qquad N = \frac{0{,}25\ \text{V}}{1{,}1\ \text{V}} \cdot 1024 \approx 232{,}7 \Rightarrow \underline{\underline{N = 232}}
d) Ges.: Begründung interne Referenz
Mit 5 V wäre U_\mathrm{LSB} = 4{,}88\ \text{mV}, also nur etwa 0,49 K je Stufe; der Sensor nutzt bis 110 °C nur ein Fünftel des Messbereichs. Mit 1,1 V wird der Bereich besser ausgenutzt, die Auflösung ist etwa \underline{\underline{\text{4,55-mal feiner}}}. Außerdem ist die interne Referenz unabhängig von Schwankungen der Betriebsspannung. Sie hat allerdings eine Toleranz von etwa \pm 10\ \% und sollte kalibriert werden.
6 Interrupt, Timer und PWM
Grundlagen
Polling: Das Programm fragt einen Eingang ständig ab. Interrupt: Ein Ereignis (Flanke an einem Pin, Timerüberlauf, Byte empfangen) unterbricht das Hauptprogramm; eine Interrupt-Service-Routine (ISR) wird ausgeführt, danach läuft das Hauptprogramm weiter.
Ein Timer zählt Taktimpulse, die ein Vorteiler (Prescaler N) herunterteilt: f_\mathrm{Timer} = f_\mathrm{CPU} : N. Im Vergleichsmodus (CTC) löst er einen Interrupt aus, wenn der Zählerstand den Vergleichswert erreicht, und beginnt wieder bei 0; damit gilt: Vergleichswert = Zahl der Timertakte - 1.
PWM (Pulsweitenmodulation): Ein Rechtecksignal mit fester Frequenz und veränderlicher Einschaltdauer.
\text{Tastgrad } g = \frac{t_\mathrm{ein}}{T} \qquad \overline{U} = g \cdot \hat{U}
Bei einem 8-Bit-Timer im Fast-PWM-Modus gilt f_\mathrm{PWM} = \dfrac{f_\mathrm{CPU}}{N \cdot 256}, und der Tastgrad ist g = (\text{Vergleichswert} + 1) : 256.
Für Motoren und Lüfter wählt man die PWM-Frequenz oft über 20 kHz, damit kein Pfeifen hörbar ist.
Aufgabe 6.1 (gebunden)
Ein Durchflusssensor an einer Bewässerungsanlage liefert je Liter einen Impuls von 2 ms Länge, höchstens 50 Impulse je Sekunde. Bisher liest die Hauptschleife den Pin einmal je Durchlauf; ein Durchlauf dauert wegen der Displayausgabe bis zu 15 ms. Welche Beurteilung trifft zu?
Die Abfrage reicht aus, weil ein Durchlauf (15 ms) kürzer ist als der kleinste Impulsabstand (20 ms).
Die Abfrage verliert Impulse, weil ein 2-ms-Impuls ganz zwischen zwei Abfragen liegen kann; ein Interrupt auf die steigende Flanke zählt jeden Impuls.
Ein Interrupt hilft nicht, weil die ISR erst ausgeführt wird, wenn die Hauptschleife ihren Durchlauf beendet hat.
Mit einem Interrupt ist das Problem gelöst, wenn die ISR zusätzlich das Display aktualisiert.
Die Abfrage wird zuverlässig, wenn man am Schleifenende
delay(2)einfügt, damit jeder Impuls mindestens einmal gelesen wird.
Richtige Antwort: 2
Geg.: Impulsdauer t_\mathrm{i} = 2\ \text{ms}; höchstens 50 Impulse je Sekunde; Schleifendauer bis t_\mathrm{S} = 15\ \text{ms}
Ges.: Beurteilung von Abfrage (Polling) und Interrupt
Entscheidend ist nicht der Impulsabstand, sondern die Impulsdauer: Der Pin ist nur 2 ms lang high, zwischen zwei Abfragen vergehen bis zu 15 ms. Fällt ein Impuls ganz in diese Lücke, sieht die Hauptschleife ihn nie. Ein Flankeninterrupt unterbricht das Hauptprogramm dagegen sofort, die ISR erhöht nur den Zähler: \underline{\underline{\text{Antwort 2}}}. Antwort 1 vergleicht mit dem Impulsabstand statt mit der Impulsdauer. Antwort 3 ist falsch, denn die ISR läuft mitten im Durchlauf und nicht erst danach. Antwort 4 widerspricht der Regel „ISR kurz halten“: Die langsame Displayausgabe in der ISR würde weitere Interrupts verzögern. Antwort 5 verlängert die Schleife nur um 2 ms; die Lücke zwischen zwei Abfragen bleibt größer als der Impuls.
Das Zeitdiagramm zeigt ein Beispiel mit Abfragen im Abstand von 15 ms: Nur zwei von fünf Impulsen fallen zufällig auf einen Abfragezeitpunkt, der Flankeninterrupt zählt alle fünf.
Aufgabe 6.2 (gebunden)
Ein PWM-Signal mit 5 V Amplitude hat t_\mathrm{ein} = 0{,}6\ \text{ms} und T = 0{,}8\ \text{ms}. Wie groß sind Tastgrad und Mittelwert?
60 %; 3,0 V
25 %; 1,25 V
80 %; 4,0 V
75 %; 5,0 V
75 %; 3,75 V
Richtige Antwort: 5
Geg.: \hat{U} = 5\ \text{V}; t_\mathrm{ein} = 0{,}6\ \text{ms}; T = 0{,}8\ \text{ms}
Ges.: g, \overline{U}
g = \frac{t_\mathrm{ein}}{T} = \frac{0{,}6\ \text{ms}}{0{,}8\ \text{ms}} = \underline{\underline{75\ \%}} \qquad \overline{U} = g \cdot \hat{U} = 0{,}75 \cdot 5\ \text{V} = \underline{\underline{3{,}75\ \text{V}}}
Antwort 5. Antwort 1 setzt t_\mathrm{ein} in ms als Prozent ein, Antwort 2 nimmt die Ausschaltzeit 0{,}2\ \text{ms}, Antwort 3 nimmt T als Prozent. Antwort 4 hat den richtigen Tastgrad, gibt aber den Scheitelwert statt des Mittelwerts an.
Aufgabe 6.3 (ungebunden, 10 Punkte)
Der Mikrocontroller läuft mit f_\mathrm{CPU} = 16\ \text{MHz}.
Ein 8-Bit-Timer erzeugt Fast-PWM. Berechne die PWM-Frequenz für die Vorteiler N = 64 und N = 1 und wähle den geeigneten Vorteiler für einen Lüfter. (3 Punkte)
Der Lüfter soll mit einem Tastgrad von 40 % laufen. Berechne den Vergleichswert. (2 Punkte)
Ein 16-Bit-Timer soll mit dem Vorteiler N = 64 alle 10 ms einen Interrupt auslösen. Berechne den Vergleichswert. (3 Punkte)
Begründe, warum die Drehzahl mit PWM statt mit einem Vorwiderstand eingestellt wird. (2 Punkte)
Geg.: f_\mathrm{CPU} = 16\ \text{MHz}; 8-Bit-Fast-PWM; g = 40\ \%; 16-Bit-Timer mit N = 64, t = 10\ \text{ms}
a) Ges.: f_\mathrm{PWM} für N = 64 und N = 1; Wahl
f_\mathrm{PWM} = \frac{f_\mathrm{CPU}}{N \cdot 256}
N = 64{:}\ f_\mathrm{PWM} = \frac{16\ \text{MHz}}{64 \cdot 256} \approx \underline{\underline{977\ \text{Hz}}} \qquad N = 1{:}\ f_\mathrm{PWM} = \frac{16\ \text{MHz}}{256} = \underline{\underline{62{,}5\ \text{kHz}}}
Gewählt: \underline{\underline{N = 1}}. 977 Hz liegen im Hörbereich, der Lüfter würde pfeifen; 62,5 kHz liegen darüber.
b) Ges.: Vergleichswert
\def\arraystretch{2.3} \begin{array}{rcl|l} g & = & \dfrac{\text{OCR} + 1}{256} & \color{gray}{\cdot 256} \\ \text{OCR} + 1 & = & g \cdot 256 = 0{,}4 \cdot 256 = 102{,}4 & \color{gray}{-1} \\ \text{OCR} & = & 101{,}4 & \end{array}
Gewählt: \underline{\underline{\text{OCR} = 101}} (Tastgrad 102 : 256 \approx 39{,}8\ \%; mit 102 wären es 40,2 %, ebenfalls vertretbar).
c) Ges.: Vergleichswert für 10 ms
\begin{aligned} &\text{(I)} && f_\mathrm{Timer} = \dfrac{f_\mathrm{CPU}}{N} \\ &\text{(II)} && n = f_\mathrm{Timer} \cdot t \\ &\text{(III)} && \text{OCR} = n - 1 \end{aligned}
Nacheinander berechnet (I, II, III):
f_\mathrm{Timer} = \frac{16\ \text{MHz}}{64} = 250\ \text{kHz} \qquad n = 250\ \text{kHz} \cdot 10\ \text{ms} = 2500 \qquad \text{OCR} = \underline{\underline{2499}}
Der Wert passt in den 16-Bit-Timer (höchstens 65 535).
d) Ges.: Begründung PWM
Bei PWM ist der Transistor entweder voll durchgeschaltet (kleine Spannung) oder gesperrt (kein Strom); die Verlustleistung bleibt klein. Ein Vorwiderstand setzt die überschüssige Leistung dauerhaft in Wärme um. PWM ist deshalb \underline{\underline{\text{verlustärmer}}} und lässt sich vom Mikrocontroller direkt einstellen.
7 Watchdog und Betriebssicherheit
Grundlagen
Der Watchdog ist ein unabhängiger Timer. Das Programm muss ihn regelmäßig zurücksetzen („füttern“). Bleibt das Programm hängen (Endlosschleife, Störung), läuft der Watchdog ab und löst einen Reset aus.
Die Brown-out-Erkennung hält den Mikrocontroller im Reset, solange die Versorgungsspannung unter einer Schwelle liegt (z. B. 4,3 V). So werden Fehlfunktionen und fehlerhafte EEPROM-Schreibvorgänge bei Unterspannung verhindert.
Nach dem Reset sind die Pins meist Eingänge (hochohmig). Angeschlossene Leistungsstufen brauchen deshalb Pull-down- bzw. Pull-up-Widerstände, damit sie in dieser Zeit sicher ausgeschaltet bleiben.
Aufgabe 7.1 (gebunden)
In der Steuerung einer Dosierpumpe ist der Watchdog auf 500 ms eingestellt. Die Hauptschleife setzt ihn am Ende jedes Durchlaufs zurück; ein Durchlauf dauert normalerweise 40 ms. Eines Tages antwortet der Drucksensor nicht mehr, und das Programm wartet in einer while-Schleife ohne Zeitbegrenzung auf seine Antwort. Was geschieht?
Nichts, denn der Watchdog greift nur ein, wenn die Versorgungsspannung zu niedrig ist.
Der Reset erfolgt schon nach 40 ms, weil die übliche Schleifendauer überschritten ist.
Etwa 500 ms nach dem letzten Zurücksetzen löst der Watchdog einen Reset aus; das Programm beginnt wieder mit der Initialisierung.
Nach 500 ms springt das Programm aus der Warteschleife und setzt mit der nächsten Anweisung fort.
Der Watchdog verlängert seine Zeit, solange das Programm in einer Schleife arbeitet.
Richtige Antwort: 3
Geg.: Watchdog-Zeit t_\mathrm{WD} = 500\ \text{ms}; Schleifendauer im Normalbetrieb 40\ \text{ms}; Zurücksetzen nur am Schleifenende
Ges.: Verhalten, wenn das Programm in der Warteschleife hängt
Das Programm erreicht das Schleifenende nicht mehr, der Watchdog wird nicht mehr zurückgesetzt. Etwa 500 ms nach dem letzten Zurücksetzen \underline{\underline{\text{löst er einen Reset aus}}}, das Programm startet neu: Antwort 3. Hängt der Sensor weiter, wiederholt sich das; die Firmware sollte deshalb Neustarts zählen und eine Störung melden. Antwort 1 beschreibt die Brown-out-Erkennung. Antwort 2 verwechselt die übliche Schleifendauer mit der eingestellten Watchdog-Zeit. Antwort 4 beschreibt einen Zeitablauf (Timeout) im Programm, kein Reset. Antwort 5 ist falsch: Der Watchdog zählt unabhängig vom Programm weiter. Würde man ihn auch in der Warteschleife zurücksetzen, könnte er den Fehler gar nicht mehr erkennen.
Aufgabe 7.2 (gebunden)
Was bewirkt die Brown-out-Erkennung?
Sie hält den Mikrocontroller im Reset, solange die Versorgungsspannung zu niedrig ist.
Sie schaltet bei Überspannung die Versorgung ab.
Sie erkennt einen Kurzschluss an einem Ausgangspin.
Sie startet das Programm neu, wenn ein Taster prellt.
Sie senkt den Takt bei hoher Temperatur.
Richtige Antwort: 1
Geg.: Brown-out-Erkennung
Ges.: Wirkung
Sie \underline{\underline{\text{hält den Mikrocontroller im Reset}}}, solange die Versorgungsspannung unter der Schwelle liegt: Antwort 1. Überspannungsschutz (Antwort 2), Kurzschlusserkennung an Pins (Antwort 3), Entprellen (Antwort 4) und Taktabsenkung (Antwort 5) sind andere Funktionen.
8 Anwendung: Lüftersteuerung
Grundlagen
Bei der Analyse eines Stromlaufplans mit Mikrocontroller hilft eine feste Reihenfolge: Versorgung, Takt und Reset prüfen; dann für jeden Pin feststellen, ob er Ein- oder Ausgang ist, welcher Pegel aktiv ist und welche Ströme fließen; zuletzt den Zustand nach dem Einschalten (Pins hochohmig) betrachten.
Aufgabe 8.1 (ungebunden, 10 Punkte)
Nenne die Aufgaben von -G_1 mit -C_1, -C_2, von -C_3 und von -R_6. (3 Punkte)
An PD2 ist kein externer Widerstand angeschlossen. Gib an, wie der Pin im Programm eingestellt werden muss und welchen Wert er bei gedrücktem Taster liefert. (2 Punkte)
Berechne den Strom durch -P_1, wenn PB0 High ist. (2 Punkte)
Erkläre die Aufgaben von -R_2 und -R_3 und begründe, warum -Q_1 ein Logic-Level-MOSFET sein muss. (3 Punkte)
a) Ges.: Aufgaben von -G_1, -C_1, -C_2, -C_3, -R_6
-G_1 mit -C_1, -C_2: \underline{\underline{\text{Takterzeugung}}}; Quarz mit Lastkondensatoren für den genauen Takt von 16 MHz.
-C_3: \underline{\underline{\text{Abblockkondensator}}} an der Versorgung.
-R_6: \underline{\underline{\text{Pull-up am RESET}}}; hält den low-aktiven Reset-Eingang im Betrieb auf High.
b) Ges.: Einstellung von PD2; Wert bei gedrücktem Taster
PD2 muss als Eingang mit eingeschaltetem internen Pull-up (\underline{\underline{\text{Eingang + Pull-up}}}) konfiguriert werden; sonst ist der Pin bei offenem Taster undefiniert. Gedrückt verbindet -S_1 den Pin mit 0 V, das Programm liest \underline{\underline{0}}.
c) Ges.: I_\mathrm{F}
Mit U_\mathrm{OH} \approx 5\ \text{V} (kleine Last):
I_\mathrm{F} = \frac{U_\mathrm{OH} - U_\mathrm{F}}{R_1} = \frac{5\ \text{V} - 2{,}0\ \text{V}}{330\ \Omega} \approx \underline{\underline{9{,}09\ \text{mA}}}
Der Wert liegt unter den zulässigen 20 mA je Pin.
d) Ges.: Aufgaben von -R_2, -R_3; Begründung Logic-Level
-R_2: \underline{\underline{\text{Gate-Vorwiderstand}}}; begrenzt den Umladestrom der Gate-Kapazität beim Schalten (Schutz des Pins) und dämpft Schwingungen.
-R_3: \underline{\underline{\text{Pull-down am Gate}}}; hält das Gate auf 0 V, solange PD6 hochohmig ist (nach dem Einschalten, während des Resets, beim Programmieren); der Lüfter bleibt sicher aus.
Der Mikrocontroller liefert höchstens 5 V am Gate. Ein Standard-MOSFET ist erst bei etwa 10 V voll durchgeschaltet; ein \underline{\underline{\text{Logic-Level-MOSFET}}} hat schon bei 4 … 5 V einen kleinen R_\mathrm{DS(on)}.
Aufgabe 8.2 (ungebunden, 10 Punkte)
Verwende Anlage 1.
-B_1 hat bei 25 °C einen Widerstand von 10 kΩ und bei 60 °C von 2,49 kΩ. Berechne die Umsetzwerte an PC0 für beide Temperaturen. (4 Punkte)
Gib an, ob der Umsetzwert bei steigender Temperatur größer oder kleiner wird. (1 Punkt)
Der Lüfter läuft mit PWM an PD6 und einem Tastgrad von 60 %. Betrachte den Motor näherungsweise als ohmschen Widerstand. Berechne die mittlere Spannung am Motor und den mittleren Strom, den -Q_1 aus der 12-V-Versorgung aufnimmt, und erkläre die Aufgabe von -R_4. (3 Punkte)
Die Firmware hängt sich bei voll laufendem Lüfter auf. Beschreibe, wie der Watchdog den Fehler begrenzt und warum -R_3 dabei wichtig ist. (2 Punkte)
Geg.: -B_1: 10 kΩ bei 25 °C, 2,49 kΩ bei 60 °C; g = 60\ \%
a) Ges.: Umsetzwerte N_{25}, N_{60}
Spannungsteiler mit -B_1 nach 0 V; I in II:
\begin{aligned} &\text{(I)} && U_\mathrm{PC0} = U_\mathrm{DD} \cdot \dfrac{R_\mathrm{NTC}}{R_5 + R_\mathrm{NTC}} \\ &\text{(II)} && N = \dfrac{U_\mathrm{PC0}}{U_\mathrm{ref}} \cdot 1024 \end{aligned}
25 °C:
U_\mathrm{PC0} = 5\ \text{V} \cdot \frac{10\ \text{k}\Omega}{20\ \text{k}\Omega} = 2{,}50\ \text{V} \qquad N_{25} = \frac{2{,}50\ \text{V}}{5\ \text{V}} \cdot 1024 = \underline{\underline{512}}
60 °C:
U_\mathrm{PC0} = 5\ \text{V} \cdot \frac{2{,}49\ \text{k}\Omega}{12{,}49\ \text{k}\Omega} \approx 0{,}997\ \text{V} \qquad N_{60} = \frac{0{,}997\ \text{V}}{5\ \text{V}} \cdot 1024 \approx 204{,}2 \Rightarrow \underline{\underline{204}}
Mit gerundeten Zwischenergebnissen ergibt sich: N_{60} = 204
Ohne gerundete Zwischenergebnisse ergibt sich: U_\mathrm{PC0} = 0{,}9968\ \text{V}, N_{60} = 204
b) Ges.: Richtung
Der NTC-Widerstand sinkt bei Erwärmung, damit sinkt die Spannung an PC0: Der Umsetzwert wird \underline{\underline{\text{kleiner}}}.
c) Ges.: \overline{U}_\mathrm{M}, \overline{I}_\mathrm{Q1} bei 60 %; Aufgabe von -R_4
Modell: Motor als ohmscher Widerstand R_\mathrm{M} = 12\ \text{V} : 0{,}25\ \text{A} = 48{,}0\ \Omega. Während der Einschaltzeit nimmt -Q_1 0,25 A aus der Versorgung auf, während der Ausschaltzeit nichts:
\overline{U}_\mathrm{M} = g \cdot U = 0{,}6 \cdot 12\ \text{V} = \underline{\underline{7{,}20\ \text{V}}} \qquad \overline{I}_\mathrm{Q1} = g \cdot I_\mathrm{N} = 0{,}6 \cdot 0{,}25\ \text{A} = \underline{\underline{0{,}150\ \text{A}}}
Durch den Motor selbst fließt wegen -R_4 auch in der Ausschaltzeit Strom weiter; sein mittlerer Strom ist deshalb größer als \overline{I}_\mathrm{Q1}.
-R_4 ist die Freilaufdiode. Bei jeder Ausschaltflanke der PWM führt sie den Motorstrom weiter und begrenzt die Spannung am Drain auf etwa 12,7 V.
d) Ges.: Wirkung des Watchdogs; Bedeutung von -R_3
Hängt die Firmware, wird der Watchdog nicht mehr zurückgesetzt und löst nach Ablauf einen Reset aus. Während des Resets und bis zur Neukonfiguration sind alle Pins hochohmige Eingänge. -R_3 zieht das Gate dann auf 0 V, -Q_1 sperrt und der Lüfter ist \underline{\underline{\text{definiert aus}}}, bis das Programm neu gestartet ist und ihn wieder ansteuert. Ob „aus“ für einen Kühllüfter der sichere Zustand ist, muss für die Anlage bewertet werden; bei kritischer Kühlung wäre ein Pull-up (Lüfter an) die sicherere Wahl.
Leitfragen
- Welche Speicher hat ein Mikrocontroller, und was wird wo abgelegt?
Im Flash liegt nichtflüchtig das Programm (Firmware), im flüchtigen SRAM liegen Variablen und Stack, und im EEPROM werden Parameter, Kalibrierwerte oder Zählerstände abgelegt, die im Betrieb änderbar sind und nach dem Abschalten erhalten bleiben sollen; siehe Abschnitt „1 Aufbau eines Mikrocontrollers“ und Aufgabe 1.3 (ungebunden, 8 Punkte).
- Wozu dienen Quarz, Lastkondensatoren, Reset-Pull-up und Abblockkondensator?
Der Quarz liefert einen genauen Takt (typisch ±50 ppm), die beiden Lastkondensatoren (12 … 22 pF) sorgen dafür, dass der Oszillator sicher auf der Nennfrequenz schwingt, der Pull-up hält den low-aktiven RESET-Eingang im Betrieb auf High, und der 100-nF-Abblockkondensator liefert Stromspitzen direkt am Chip und hält Störungen von der Versorgung fern; siehe Abschnitt „2 Takterzeugung und Reset“ und Aufgabe 2.1 (gebunden).
- Wie berechnet man den Vorwiderstand einer LED und den Basiswiderstand einer Transistorstufe am Ausgangspin?
Für die LED gilt R_\mathrm{V} = \dfrac{U_\mathrm{OH} - U_\mathrm{F}}{I_\mathrm{F}}, danach wählst Du den nächstgrößeren E-Reihen-Wert. Für die Transistorstufe berechnest Du I_\mathrm{B} = \ddot{u} \cdot \dfrac{I_\mathrm{C}}{B_\mathrm{min}} und dann R_\mathrm{B} = \dfrac{U_\mathrm{OH} - U_\mathrm{BE}}{I_\mathrm{B}}, wobei der nächstkleinere E-Reihen-Wert gewählt wird, damit der Basisstrom nicht sinkt; siehe Abschnitt „3 Digitale Ausgänge“ und Aufgabe 3.2 (ungebunden, 10 Punkte).
- Warum braucht ein Eingang einen Pull-up- oder Pull-down-Widerstand?
Ein offener Eingang hat ein undefiniertes Potenzial und kann zufällig High oder Low lesen. Ein Pull-down legt ihn bei offenem Taster definiert auf Low, ein (oft interner) Pull-up auf High – der Taster schaltet dann gegen 0 V, und gedrückt liest das Programm 0; siehe Abschnitt „4 Digitale Eingänge“ und Aufgabe 4.1 (gebunden).
- Wie schließt man 24-V-Signale sicher an einen Mikrocontroller an?
Ein einfacher Spannungsteiler kann den Bereich von 15 V bis 30 V nicht abdecken: Entweder wird der Eingang bei 30 V überlastet (über U_\mathrm{DD} + 0{,}5\ \text{V}) oder 15 V werden nicht sicher als High erkannt. Besser ist ein Optokoppler mit Vorwiderstand oder Konstantstromeingang auf der 24-V-Seite und Pull-up am Mikrocontroller – er trennt galvanisch und schützt vor Überspannung und Störungen; siehe Aufgabe 4.3 (ungebunden, 10 Punkte).
- Wie hängen Referenzspannung, Auflösung und Messbereich des Analogeingangs zusammen?
Der AD-Umsetzer bildet 0 V bis U_\mathrm{ref} auf 2^n Stufen ab: U_\mathrm{LSB} = \dfrac{U_\mathrm{ref}}{2^n}. Eine kleinere Referenz (z. B. intern 1,1 V statt 5 V) ergibt eine feinere Auflösung, aber einen kleineren Messbereich – bei 10 Bit sind es 1,07 mV statt 4,88 mV je Stufe; siehe Abschnitt „5 Analogeingang“ und Aufgabe 5.2 (ungebunden, 8 Punkte).
- Wie berechnet man PWM-Frequenz, Tastgrad und Timer-Vergleichswerte?
Beim 8-Bit-Fast-PWM gilt f_\mathrm{PWM} = \dfrac{f_\mathrm{CPU}}{N \cdot 256} und g = (\text{Vergleichswert} + 1) : 256, allgemein g = \dfrac{t_\mathrm{ein}}{T} mit dem Mittelwert \overline{U} = g \cdot \hat{U}. Für einen Timer-Interrupt im CTC-Modus rechnest Du f_\mathrm{Timer} = f_\mathrm{CPU} : N, die Zahl der Timertakte n = f_\mathrm{Timer} \cdot t und den Vergleichswert n - 1 (z. B. 2499 für 10 ms bei 16 MHz und N = 64); siehe Abschnitt „6 Interrupt, Timer und PWM“ und Aufgabe 6.3 (ungebunden, 10 Punkte).
- Was leisten Interrupt, Watchdog und Brown-out-Erkennung?
Ein Interrupt unterbricht bei einem Ereignis das Hauptprogramm und führt eine ISR aus, sodass das Ereignis ohne ständiges Abfragen zeitnah bearbeitet wird. Der Watchdog löst einen Reset aus, wenn das Programm ihn nicht rechtzeitig zurücksetzt, etwa bei einer Endlosschleife, und die Brown-out-Erkennung hält den Mikrocontroller bei zu niedriger Versorgungsspannung im Reset; siehe Abschnitt „6 Interrupt, Timer und PWM“ und Abschnitt „7 Watchdog und Betriebssicherheit“.
Links und weitere Informationen
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: “Mikrocontroller: Wiederholung und Übungsaufgaben” von oer-informatik.de (H. Stein), Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/mikrocontroller-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: 13.11.2026.
[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]
