Digitale Elektronik und Mikrocontroller – Zeitabläufe ohne blockierende Wartezeiten gestalten
Digitale Elektronik und Mikrocontroller – Zeitabläufe ohne blockierende Wartezeiten gestalten
QR-Code
Digitale Elektronik und Mikrocontroller – Zeitabläufe ohne blockierende Wartezeiten gestalten
Einleitung
Kurzbeschreibung: Zustände und zeitgesteuerte Aufgaben mit Mikrocontrollern programmieren – ohne blockierende Wartezeiten.
Zielgruppe: Ausbildung in Elektronik, Mechatronik, Automatisierungstechnik und verwandten Berufen.
Lernzeit: Fünf Lerneinheiten mit jeweils etwa 8 bis 12 Minuten, anschließend Übungen und Lernnachweis.
Ausbildungsfall: Du programmierst die Statusanzeige einer virtuellen Montage-Prüfstation. Eine LED blinkt im Bereitschaftszustand. Ein Tastendruck startet eine zweisekündige Testanzeige. Währenddessen soll der Mikrocontroller nicht durch Wartebefehle blockiert werden.
Lernziele: Du kannst digitale Signale lesen, ein einfaches Stromlaufbild interpretieren, Zeitintervalle mit millis() auswerten, Zustände modellieren und das Verhalten in einer Simulation überprüfen.
Sicherheitsregel: Alle Schaltungs- und Programmierübungen finden in einer berührungssicheren Simulation statt. Alternativ dürfen nur geeignete, für die Ausbildung freigegebene berührungssichere Schulungsmodelle unter den festgelegten Sicherheitsbedingungen verwendet werden. Reale Elektroarbeiten dürfen ausschließlich entsprechend qualifizierte und beauftragte Personen im zulässigen Verantwortungsrahmen durchführen. Bei Arbeiten an elektrischen Anlagen gelten die einschlägigen Sicherheitsvorschriften, insbesondere die DGUV Vorschrift 3. Ein Quiz, eine Simulation oder ein Lernnachweis ist niemals eine Freigabe für reale Elektroarbeiten.
Lerneinheit 1: Den Ausbildungsauftrag verstehen
Dauer: circa 8 Minuten
Ein Mikrocontroller verarbeitet Eingaben und steuert Ausgänge. Bei unserer simulierten Prüfstation gibt es zwei Zustände:
| Zustand | LED-Anzeige | Übergang |
|---|---|---|
| BEREIT | Wechsel zwischen AUS und EIN alle 500 ms | Tastendruck startet TEST |
| TEST | Dauerhaft EIN | Nach 2000 ms zurück zu BEREIT |
Ein neuer Tastendruck wird als Wechsel von nicht gedrückt zu gedrückt erkannt. Beim Rückwechsel zu BEREIT beginnt der Blinkzeitgeber neu.

Arduino-Uno-Aufbau mit LED als Anschauungsbild. Quelle: Wikimedia Commons, Edwiyanto, CC BY-SA 4.0.
Beobachtungsauftrag: Überlege, welche Eingabe und welcher Ausgang für die Prüfstation benötigt werden.
Lerneinheit 2: Stromlaufbilder und sichere Simulation
Dauer: circa 8 Minuten
Ein Stromlaufplan beschreibt elektrische Verbindungen. Ein Aufbauplan zeigt dagegen die räumliche Anordnung.

Beispiel für ein Stromlaufbild mit Arduino und Taster. Die konkrete Pinbelegung unseres Ausbildungsfalls ist im folgenden Prinzipschaltbild festgelegt.

Aufbauansicht einer Arduino-Taster-Schaltung. Beide Bilder: Edwiyanto, Wikimedia Commons, CC BY-SA 4.0.
Prinzipschaltbild des simulierten Ausbildungsfalls:
Virtueller Arduino Uno
D2 o------[ Taster ]------o GND
interner Pull-up aktiv
D13 / LED_BUILTIN
bereits integrierte
Board-LED als Ausgang
Die Board-LED wird im Simulator über LED_BUILTIN angesteuert. Am Taster nutzt der Eingang D2 die Einstellung INPUT_PULLUP:
| Taster | Digitaler Eingang |
|---|---|
| Nicht gedrückt | HIGH |
| Gedrückt | LOW |
Deine sichere Arbeitsumgebung:
Wokwi – Arduino Blink without Delay
Öffne diese vorhandene Simulation als Ausgangspunkt. Ergänze ausschließlich im Simulator einen virtuellen Taster zwischen D2 und GND. Verbinde dabei unterschiedliche Kontaktseiten des Tasters entsprechend der Wokwi-Tasterdokumentation.
Merke: Die Commons-Abbildungen sind Anschauungsmaterial und keine verbindliche Verdrahtungsanweisung für reale Geräte.
Lerneinheit 3: Zeitabläufe ohne delay()
Dauer: circa 10 Minuten
Der Befehl delay() hält die normale Programmausführung für eine bestimmte Zeit an. Dadurch können kurze Eingabeereignisse übersehen werden.
millis() liefert dagegen die seit Programmstart vergangene Zeit in Millisekunden. Das Programm kann wiederholt nachsehen, ob ein Intervall abgelaufen ist, und dazwischen andere Aufgaben bearbeiten.

Digitales Signal mit steigenden und fallenden Flanken. Aeroid und Grabert, Wikimedia Commons, CC BY-SA 4.0.

Rechtecksignal als allgemeines Beispiel für periodische Schaltvorgänge. Omegatron, Wikimedia Commons, CC BY-SA 3.0.
Das entscheidende Prinzip:
unsigned long jetzt = millis();
if (jetzt - startzeit >= intervall) {
// Zeitabhängige Aktion ausführen
}
Verwende für Zeitwerte den Datentyp unsigned long. Auf dem Arduino Uno erfolgt nach ungefähr 49,7 Tagen ein Überlauf von millis(). Für kurze Intervalle bleibt die Differenzbildung mit vorzeichenloser Arithmetik korrekt, auch über diesen Überlauf hinweg.
Signaldiagramm unseres Ausbildungsfalls:
| Zeitraum in ms | 0–499 | 500–749 | 750–2749 | 2750–3249 | Ab 3250 |
|---|---|---|---|---|---|
| Zustand | BEREIT | BEREIT | TEST | BEREIT | BEREIT |
| LED | LOW | HIGH | HIGH | LOW | HIGH |
| Ereignis | Start | Blinkwechsel | Tastendruck bei 750 ms | Testzeit abgelaufen | Nächster Blinkwechsel |
Idealisiertes Signaldiagramm mit einem einzelnen Tastendruck bei 750 ms. Die Schaltzeitpunkte können in der Simulation geringfügig später liegen.
Videolernen: Zeitgesteuerte Arduino-Programme.
Der einfache Einstieg in Arduino & Co.: Das richtige Timing – Der Hobbyelektroniker.
Lerneinheit 4: Mit Zuständen programmieren
Dauer: circa 12 Minuten
Ein Zustandsautomat trennt das Verhalten einer Steuerung in klar beschriebene Zustände und Übergänge.

Beispiel einer Zustandsmaschine. Macguy314, Perhelion und Babakus, Wikimedia Commons, gemeinfrei.
Unser Zustandsdiagramm:
Tastendruck
[BEREIT] ----------> [TEST]
^ |
| |
+-------------------+
2000 ms vorbei
Kopiere das folgende Programm in die Datei sketch.ino der Wokwi-Simulation. Die Board-LED und der virtuelle Taster bilden die vollständige simulierte Prüfstation.
const byte tasterPin = 2;
const unsigned long blinkIntervall = 500UL;
const unsigned long testDauer = 2000UL;
enum Zustand { BEREIT, TEST };
Zustand zustand = BEREIT;
unsigned long letzteBlinkzeit = 0;
unsigned long testStart = 0;
bool ledAn = false;
bool tasteVorher = HIGH;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
pinMode(tasterPin, INPUT_PULLUP);
digitalWrite(LED_BUILTIN, LOW);
}
void loop() {
unsigned long jetzt = millis();
bool tasteJetzt = digitalRead(tasterPin);
bool druckFlanke =
(tasteVorher == HIGH && tasteJetzt == LOW);
tasteVorher = tasteJetzt;
if (zustand == BEREIT) {
if (druckFlanke) {
zustand = TEST;
testStart = jetzt;
ledAn = true;
digitalWrite(LED_BUILTIN, HIGH);
}
else if (jetzt - letzteBlinkzeit
>= blinkIntervall) {
letzteBlinkzeit = jetzt;
ledAn = !ledAn;
digitalWrite(LED_BUILTIN,
ledAn ? HIGH : LOW);
}
}
else if (zustand == TEST) {
if (jetzt - testStart >= testDauer) {
zustand = BEREIT;
letzteBlinkzeit = jetzt;
ledAn = false;
digitalWrite(LED_BUILTIN, LOW);
}
}
}
Probiere aus: Starte die Simulation, beobachte die Board-LED, drücke den virtuellen Taster kurz und prüfe die zweisekündige Testanzeige.
Der Code erkennt eine Tastendruckflanke, enthält aber noch keine vollständige zeitbasierte Entprellung. Dies wird in den Transferaufgaben untersucht.
Videovertiefung: Zustandsmaschinen und unabhängige Zeitabläufe.
Clipboard Electronics: Arduino State Machines & BlinkWithoutDelay – jasmine2501. Englischsprachige Vertiefung.
Lerneinheit 5: Signaldiagramme messen und Fehler finden
Dauer: circa 10 Minuten
Eine Simulation lässt Dich Programmabläufe gefahrlos beobachten. Mit einem virtuellen Logikanalysator kannst Du digitale Zustände auch zeitlich aufzeichnen.
Wokwi – Anleitung für den virtuellen Logikanalysator
Verbinde in der Simulation den Eingang D0 des Logikanalysators mit D13 und seinen GND-Anschluss mit GND. Nach dem Simulationslauf kannst Du die aufgezeichneten Signale als VCD-Datei betrachten, beispielsweise mit PulseView.
Prüfprotokoll:
| Beobachtung | Erwartung | Dein Ergebnis |
|---|---|---|
| BEREIT | LED wechselt ungefähr alle 500 ms | ... |
| Tastendruck | TEST beginnt zeitnah | ... |
| TEST | LED bleibt ungefähr 2000 ms EIN | ... |
| Rückkehr | BEREIT beginnt mit LED AUS | ... |
| Erneuter Tastendruck | Neue Testanzeige wird ausgelöst | ... |
Videovertiefung: millis() statt delay().
Arduino Sketch with millis() instead of delay() – Programming Electronics Academy; als Lernvideo auch von der Hochschule Luzern verlinkt.
Gestufte Hilfen
Verwende nur so viel Hilfe, wie Du benötigst.
| Stufe | Hilfe zum Ausbildungsfall |
|---|---|
| Hilfe A – Denkimpuls | Wann muss das Programm den Taster erneut lesen können? Welche Information braucht es, um eine Zeitspanne zu erkennen? |
| Hilfe B – Struktur | Trenne Eingabeabfrage, Zustandsentscheidung und Zeitauswertung. Speichere beim Übergang nach TEST die aktuelle Zeit. |
| Hilfe C – Teillösung | Für das Ende von TEST prüfst Du jetzt - testStart >= testDauer. Setze danach den Zustand auf BEREIT und starte den Blinkzeitgeber neu. |
Interaktive Aufgaben
Quiz: Teste Dein Wissen
Warum eignet sich millis() für nicht blockierende Zeitsteuerungen? (Weil das Programm zwischen Zeitprüfungen weitere Aufgaben bearbeiten kann) (!Weil dadurch alle Befehle gleichzeitig ausgeführt werden) (!Weil der Mikrocontroller keinen Takt mehr benötigt) (!Weil Zeitintervalle automatisch genau null Millisekunden dauern)
Welchen Eingangswert liefert ein gedrückter Taster bei INPUT_PULLUP? (LOW) (!HIGH) (!OUTPUT) (!PWM)
Was ist ein Zustand in einer Zustandsmaschine? (Eine eindeutig beschriebene Betriebsphase) (!Eine elektrische Spannungseinheit) (!Ein fester Widerstandswert) (!Ein zusätzlicher Prozessorkern)
Welche Aufgabe erfüllt der Befehl delay() in einem einfachen Arduino-Programm? (Er unterbricht den normalen Programmablauf für die angegebene Zeit) (!Er liest dauerhaft alle Eingänge ohne Unterbrechung) (!Er erzeugt automatisch einen Zustandsautomaten) (!Er entprellt jeden angeschlossenen Taster)
Welche Datenart ist für millis-Zeitwerte auf dem Arduino Uno geeignet? (unsigned long) (!char) (!bool) (!float als notwendiger Standard)
Welche Bedingung prüft ein abgelaufenes Zeitintervall richtig? (jetzt minus startzeit ist mindestens so groß wie das Intervall) (!jetzt muss stets kleiner als startzeit sein) (!startzeit muss in jedem Schleifendurchlauf gelöscht werden) (!die LED muss dauerhaft ausgeschaltet sein)
Was bedeutet im Ausbildungsfall der Zustand TEST? (Die LED leuchtet während der Testdauer dauerhaft) (!Die Simulation muss beendet werden) (!Der Taster wird elektrisch vom Stromnetz versorgt) (!Die LED bleibt für immer ausgeschaltet)
Was löst im Programm einen neuen TEST aus? (Eine Tastendruckflanke von HIGH nach LOW im Zustand BEREIT) (!Jeder einzelne Schleifendurchlauf) (!Der automatische Neustart des Mikrocontrollers) (!Ein Wechsel von OUTPUT zu INPUT)
Wozu dient die Entprellung eines mechanischen Tasters? (Sie verhindert unerwünschte Mehrfacherkennungen durch Kontaktprellen) (!Sie erhöht die Versorgungsspannung) (!Sie ersetzt alle Zeitvariablen) (!Sie schaltet den Mikrocontroller dauerhaft ab)
Welche Aussage zur Sicherheit ist richtig? (Ein erfolgreiches Quiz berechtigt nicht zu realen Elektroarbeiten) (!Eine Simulation ersetzt die vorgeschriebene Fachqualifikation) (!Eine bestandene Lernkontrolle gibt Netzspannungsarbeiten frei) (!Ein digitaler Ausgang ist automatisch eine geprüfte Schutzeinrichtung)
Memory
| millis() | Vergangene Millisekunden |
| delay() | Blockierende Programmpause |
| unsigned long | Vorzeichenloser Zeitdatentyp |
| INPUT_PULLUP | Interner Hochziehwiderstand |
| Flanke | Wechsel eines Signalpegels |
| Zustandsautomat | Zustandsabhängige Ablaufsteuerung |
| Entprellung | Filterung mechanischer Kontaktwechsel |
Drag and Drop
| Ordne die richtigen Begriffe zu. | Beschreibung |
|---|---|
| BEREIT | Die Statusanzeige blinkt zyklisch |
| TEST | Die Statusanzeige leuchtet für eine begrenzte Prüfphase |
| Tasterflanke | Ein neuer Tastendruck wird erkannt |
| Zeitdifferenz | Eine vergangene Dauer wird berechnet |
| Entprellung | Kontaktprellen wird bei der Eingabeauswertung berücksichtigt |
Kreuzworträtsel
| Millis | Welche Arduino-Funktion liefert die vergangene Zeit seit Programmstart? |
| Zustand | Wie nennt man eine eindeutig beschriebene Betriebsphase? |
| Taster | Welches Eingabeelement startet unsere virtuelle Testanzeige? |
| Flanke | Wie heißt der Wechsel zwischen zwei digitalen Signalpegeln? |
| Simulation | Wie heißt die virtuelle Nachbildung unserer Schaltung? |
| Entprellung | Welches Verfahren unterdrückt unerwünschte Mehrfacherkennungen mechanischer Kontakte? |
LearningApps
Die LearningApps-Seite ist eine thematische Suche und keine geprüfte Freigabe einzelner externer Lernaktivitäten.
Lückentext
Offene Aufgaben
Bearbeite die Aufgaben ausschließlich in einer geeigneten Simulation. Die Schwierigkeitsgrade entsprechen Basis, Anwendung und Transfer.
Leicht
- Basis – Digitale Pegel: Erstelle eine Skizze, in der Du HIGH, LOW sowie eine steigende und eine fallende Flanke beschriftest.
- Basis – Schaltung lesen: Markiere im virtuellen Stromlaufbild den Eingang D2, den Taster, GND und die integrierte LED.
- Basis – Zeitablauf: Zeichne ein LED-Signal für drei Blinkwechsel mit einem Abstand von jeweils 500 ms.
- Basis – Zustände erkennen: Beschreibe die Zustände BEREIT und TEST mit jeweils einer Bedingung für den Übergang.
Standard
- Anwendung – Programm ausführen: Übertrage den Beispielcode in Wokwi und dokumentiere den beobachteten Programmablauf mit einem Screenshot.
- Anwendung – Zeitparameter ändern: Verändere das Blinkintervall auf 300 ms und die Testdauer auf 1500 ms. Erkläre den Unterschied zwischen beiden Zeiten.
- Anwendung – Tastendruck untersuchen: Prüfe kurze und lange Tastendrücke. Beschreibe, warum ein gedrückt gehaltener Taster nicht ständig neue Testphasen auslösen soll.
- Anwendung – Signale messen: Zeichne in Wokwi den LED-Ausgang auf und vergleiche die gemessenen Schaltzeitpunkte mit Deinem Signaldiagramm.
Schwer
- Transfer – Unabhängige Aufgaben: Entwirf im Simulator eine zweite blinkende Anzeige mit einem eigenen Zeitintervall. Begründe, weshalb beide Anzeigen voneinander unabhängige Zeitmarken benötigen.
- Transfer – Fehlerrobustheit: Entwickle eine nicht blockierende Tasterentprellung und untersuche im Simulator, wie sich aktiviertes Kontaktprellen auf die Erkennung auswirkt.
- Transfer – Zeitüberlauf: Erkläre mit einem Zahlenbeispiel, warum die Differenz zweier unsigned-long-Zeitwerte einen Zählerüberlauf für kurze Intervalle korrekt behandeln kann.
- Transfer – Anderen Ausbildungsfall entwickeln: Entwirf eine rein virtuelle Statusanzeige für einen anderen technischen Ablauf mit mindestens drei Zuständen und zwei unabhängigen Zeitbedingungen. Begründe, welche Grenzen Dein Modell besitzt.
Begründetes Feedback zu den Aufgaben
| Niveau | Daran erkennst Du eine tragfähige Lösung | Feedback bei typischen Fehlern |
|---|---|---|
| Basis | Signalpegel, Zustände und Übergänge sind eindeutig zugeordnet. | Wenn gedrückt mit HIGH gleichgesetzt wird, prüfe die INPUT_PULLUP-Beschaltung. Durch den internen Hochziehwiderstand liegt der unbetätigte Eingang HIGH und der betätigte Eingang LOW. |
| Anwendung | Die LED schaltet im richtigen Intervall, und ein Tastendruck kann auch während der Blinkphase erkannt werden. | Reagiert die Taste erst verspätet, suche nach blockierenden Befehlen oder langen Schleifen. Die regelmäßige Eingabeabfrage ist Voraussetzung für eine zeitnahe Reaktion. |
| Transfer | Mehrere Zeitaufgaben besitzen getrennte Zeitmarken und definierte Zustände. Störungen und Grenzfälle sind untersucht. | Beeinflussen sich die Zeitaufgaben, prüfe gemeinsam benutzte Zeitvariablen. Unabhängige Abläufe benötigen eine nachvollziehbare, getrennte Zeitverwaltung. |
Selbstkorrektur: Dokumentiere einen Fehler, seine Ursache, Deine Veränderung und das Ergebnis eines erneuten Simulationstests. Ein korrektes Quizresultat ersetzt weder die technische Prüfung noch die Sicherheitsbewertung.
Lernkontrolle
Bearbeite mindestens fünf Aufgaben. Begründe Deine Entscheidungen mit Signaldiagrammen, Zuständen oder Simulationsergebnissen.
- Reaktionsverhalten: Ein Taster wird nur sehr kurz gedrückt, während eine LED blinkt. Vergleiche, wie eine blockierende und eine nicht blockierende Steuerung darauf reagieren können.
- Ablaufmodell: Entwickle für eine virtuelle Prüfstation einen zusätzlichen Zustand FEHLER und lege sinnvolle Übergänge fest. Begründe die Reihenfolge der Reaktionen.
- Diagnose: Ein simuliertes Ausgangssignal weist unregelmäßige Blinkintervalle auf. Entwickle zwei überprüfbare Vermutungen über mögliche Programmursachen.
- Softwarequalität: Erläutere, warum getrennte Variablen für mehrere Zeitabläufe die Verständlichkeit und Wartbarkeit verbessern.
- Eingabefehler: Ein Taster löst versehentlich mehrfach aus. Vergleiche reine Flankenerkennung mit einer zusätzlichen zeitbasierten Entprellung.
- Sicherheitstransfer: Erkläre, weshalb eine fehlerfrei laufende Simulation keine Freigabe für eine reale elektrische Anlage und insbesondere keine Eignung als Sicherheitssteuerung nachweist.
Lernnachweis
Für Deinen Lernnachweis sind folgende Ergebnisse wichtig:
- Stromlaufbild: Ein eindeutig beschriftetes Prinzipschaltbild der virtuellen Schaltung.
- Zustandsmodell: Eine Darstellung aller Zustände, Ausgaben und Übergangsbedingungen.
- Programm: Ein lauffähiger, nachvollziehbar kommentierter Code ohne blockierende Wartebefehle.
- Signalnachweis: Ein selbst erstelltes oder simuliert aufgezeichnetes Zeitdiagramm.
- Testprotokoll: Nachweis der überprüften Blinkintervalle, Tasteneingaben und Zustandswechsel.
- Fehleranalyse: Dokumentation einer Abweichung und ihrer begründeten Korrektur.
- Transfer: Entwurf einer zusätzlichen unabhängigen Zeitaufgabe.
- Sicherheitsreflexion: Klare Abgrenzung zwischen Lernsimulation, geeignetem Schulungsmodell und realer Elektroarbeit.
Bewertung: Fachliche Richtigkeit, nachvollziehbare Messungen, Fehlerbegründung und sichere Arbeitsweise. Der Lernnachweis erteilt keine elektrotechnische Arbeitsberechtigung oder Freigabe.
OERs zum Thema
Offene Fachinformationen und geprüfte Quellen:
- Arduino: Blink Without Delay – offizielles Programmierbeispiel.
- Arduino-Beispielcode auf GitHub – im Quelltext als Public Domain bezeichnet.
- Wokwi-Dokumentation – Funktionen und Grenzen des Simulators.
- Wokwi Pushbutton – Kontaktzuordnung, Pull-up und Kontaktprellen.
- Wokwi Logic Analyzer – virtuelle Messung digitaler Signale.
- Hochschule Luzern: Delay vs. Millis – ergänzende fachliche Erklärung.
- DGUV Vorschrift 3 – Arbeitsschutz und Verantwortlichkeiten.
Wikipedia – ergänzende Grundlagen:
Medienrechte und Nachnutzung
Die verwendeten Wikimedia-Commons-Dateien wurden anhand ihrer Dateibeschreibungen geprüft.
| Datei | Urheber | Lizenz |
|---|---|---|
| Arduino uno led bb.svg | Edwiyanto | CC BY-SA 4.0 |
| Arduino uno led button schema.svg | Edwiyanto | CC BY-SA 4.0 |
| Arduino uno led button bb.svg | Edwiyanto | CC BY-SA 4.0 |
| Digital Signal Square Wave.svg | Aeroid und Grabert | CC BY-SA 4.0 |
| Square wave.svg | Omegatron | CC BY-SA 3.0 |
| Finite state machine example with comments.svg | Macguy314, Perhelion und Babakus | Gemeinfrei |
Bei Creative-Commons-Medien sind Namensnennung, Lizenzverweis und gegebenenfalls die Kennzeichnung von Bearbeitungen zu beachten. Die verwendeten Grafiken werden hier unverändert eingebunden.
Die YouTube-Videos sind externe Einbettungen. Es wird keine freie Nachnutzungslizenz für die Videos behauptet; die Rechte verbleiben bei den jeweiligen Rechteinhabern. Die Einbettungen ersetzen keine Erlaubnis zum Herunterladen, Bearbeiten oder erneuten Veröffentlichen.
Wokwi ist ein externer Simulationsdienst. Die Nutzung im Ausbildungsbetrieb ist anhand der jeweils geltenden Nutzungsbedingungen zu prüfen.
Verknüpfte Lernbereiche
aiMOOC-Projekte


Schulfach+


aiMOOCs


aiMOOC Projekte


MOOCwiki · Deutsch
Nach dem Lernen ist vor dem Lernen
Entdecke direkt den nächsten Lernkurs. Weitere Inhalte erscheinen, wenn Du weiter nach unten scrollst.
Zur MOOCwiki-HauptseiteMediathek
Mediathek wird aus dem Wiki geladen ...
Keine passenden Inhalte gefunden. Bitte ändere Suche oder Filter.
NEWSLernweltNOAH fragen