Digitale Elektronik und Mikrocontroller – Mikrocontrollerprogramme systematisch testen
Digitale Elektronik und Mikrocontroller – Mikrocontrollerprogramme systematisch testen
QR-Code
Digitale Elektronik und Mikrocontroller – Mikrocontrollerprogramme systematisch testen
Einleitung
Zielgruppe: Berufliche Ausbildung in Elektronik, Mechatronik, Automatisierungstechnik und Informationstechnik.
Lernzeit: Sechs kurze Lerneinheiten à 10–15 Minuten sowie praktische Testaufgaben.
Ausbildungsfall: Du entwickelst und testest eine simulierte Füllstandswarnung mit einem Arduino Uno, einem virtuellen Sensor und zwei Status-LEDs.
Lernziele: Du kannst Anforderungen in Testfälle übersetzen, Randfälle erkennen, Sensorfehler simulieren, Signalverläufe auswerten und Programmcode nachvollziehbar dokumentieren.
Sicherheit: Alle Schaltungsversuche finden ausschließlich in einer Software-Simulation oder an einem dafür geeigneten berührungssicheren Schulungsmodell unter fachgerechter Aufsicht statt. Reale Elektroarbeiten dürfen nur entsprechend qualifizierte und beauftragte Personen durchführen. Der Kurs vermittelt keine Berechtigung für Elektroarbeiten. Weder Quizresultate noch erfolgreiche Simulationstests ersetzen eine fachliche Prüfung oder Freigabe.

Arduino Uno R3 als Beispiel eines Mikrocontrollerboards. Bild: MakeMagazinDE, CC BY-SA 4.0, Wikimedia Commons.
Lerneinheit 1: Testen beginnt mit Anforderungen
Lernzeit: 10 Minuten
Ein Mikrocontroller verarbeitet Eingangssignale und steuert Ausgänge. Ein Programm muss nicht nur im Normalfall funktionieren, sondern auch bei ungewöhnlichen Eingaben nachvollziehbar reagieren.
Ein systematischer Softwaretest vergleicht ein vorher festgelegtes Sollverhalten mit einem tatsächlich beobachteten Istverhalten.
Unser Ausbildungsfall: Virtuelle Füllstandswarnung
Ein Potentiometer simuliert einen Füllstandssensor. Sein Messwert wird vom 10-Bit-Analog-Digital-Wandler des Arduino Uno als Zahl von 0 bis 1023 verarbeitet.
Für diesen Lernfall gelten ausdrücklich vereinbarte Modellgrenzen:
| ADC-Wert | Erwartetes Verhalten |
|---|---|
| Unter 100 | Sensorfehler, rote LED ein |
| 100 bis 650 | Normalzustand, beide LEDs aus |
| 651 bis 699 | Vorherigen Normal- oder Alarmzustand beibehalten |
| 700 bis 900 | Alarm, gelbe LED ein |
| Über 900 | Sensorfehler, rote LED ein |
Hysterese: Der Alarm wird bei mindestens 700 eingeschaltet und erst bei höchstens 650 ausgeschaltet. Die Mitte zwischen diesen Grenzen ist ein Haltebereich.
Fehlerpriorität: Ein ungültiger Sensorwert hat Vorrang vor dem Alarm. Im Fehlerzustand bleibt die gelbe LED aus. Nach Rückkehr eines gültigen Wertes wird der Zustand neu beurteilt.
Die Grenzen sind didaktisch festgelegt. Sie entsprechen keiner allgemein gültigen Füllstandsnorm und stellen keine industrielle Sicherheitsfunktion dar.
Mini-Aufgabe: Prüfen statt ausprobieren
Beantworte vor jeder Simulation:
- Testfall: Welchen Eingangswert verwendest Du?
- Soll-Ist-Vergleich: Welches LED-Verhalten erwartest Du?
- Testprotokoll: Wie hältst Du Deine Beobachtung fest?
Feedback: Ein Test ist aussagekräftig, wenn sein erwartetes Ergebnis schon vor der Ausführung feststeht. Andernfalls kann ein zufälliges Verhalten leicht als richtig interpretiert werden.
Lerneinheit 2: Stromlaufbild verstehen
Lernzeit: 15 Minuten

Prinzip eines Potentiometers. Bild: Maxmath12, CC0, Wikimedia Commons.

Grundprinzip einer LED mit Vorwiderstand. Bild: Dmccreary, StevenBell, CC BY-SA 2.5, Wikimedia Commons.
Vereinfachtes Stromlaufbild des Ausbildungsfalls
VIRTUELLES ARDUINO-UNO-MODELL
5 V o----[ Potentiometer 10 kOhm ]----o GND
|
Schleifer
|
o A0
D9 o----[330 Ohm]----|>|----o GND
Gelb
ALARM
D10 o----[330 Ohm]----|>|----o GND
Rot
FEHLER
Die Widerstände sind mit den LEDs in Reihe angeordnet. Das Potentiometer liefert den simulierten Analogwert an A0.
Prüffragen: Welche Verbindung führt zum Eingang? Welche beiden Verbindungen steuern Ausgänge? Warum dürfen Anode und Kathode einer LED nicht verwechselt werden?

Vergleichsbild eines einfachen Arduino-LED-Aufbaus, nicht der vollständige Ausbildungsfall. Bild: Edwiyanto, CC BY-SA 4.0, Wikimedia Commons.
Berührungssichere Simulation
Nutze Wokwi – neues Arduino-Uno-Simulationsprojekt. Die Schaltung läuft virtuell im Browser.
Erstelle im Simulator einen Arduino Uno, ein Potentiometer, zwei LEDs und zwei virtuelle Widerstände.
| Virtueller Anschluss | Verbindung |
|---|---|
| Potentiometer SIG | Arduino A0 |
| Potentiometer VCC | Arduino 5V |
| Potentiometer GND | Arduino GND |
| Arduino D9 | Widerstand 330 Ohm, gelbe LED, GND |
| Arduino D10 | Widerstand 330 Ohm, rote LED, GND |
Reproduzierbare Schaltung: Du kannst alternativ diesen Inhalt in die Datei diagram.json des Wokwi-Projekts übernehmen.
{
"version": 1,
"author": "aiMOOC Ausbildungsfall",
"editor": "wokwi",
"parts": [
{"type":"wokwi-arduino-uno","id":"uno","top":0,"left":0,"attrs":{}},
{"type":"wokwi-potentiometer","id":"pot","top":-120,"left":260,"attrs":{"value":"500"}},
{"type":"wokwi-led","id":"gelb","top":90,"left":260,"attrs":{"color":"yellow","label":"ALARM"}},
{"type":"wokwi-led","id":"rot","top":190,"left":260,"attrs":{"color":"red","label":"FEHLER"}},
{"type":"wokwi-resistor","id":"r1","top":90,"left":350,"attrs":{"value":"330"}},
{"type":"wokwi-resistor","id":"r2","top":190,"left":350,"attrs":{"value":"330"}}
],
"connections": [
["uno:A0","pot:SIG","green",["v0"]],
["uno:5V","pot:VCC","red",["v0"]],
["uno:GND.1","pot:GND","black",["v0"]],
["uno:9","r1:1","green",["v0"]],
["r1:2","gelb:A","green",["v0"]],
["gelb:C","uno:GND.1","black",["v0"]],
["uno:10","r2:1","green",["v0"]],
["r2:2","rot:A","green",["v0"]],
["rot:C","uno:GND.1","black",["v0"]]
]
}
Die Bauteil- und Pinbezeichnungen entsprechen der Wokwi-Dokumentation. Das JSON beschreibt den vorgesehenen Simulatoraufbau; ein ausgeführter Funktionstest dieses konkreten Projekts ist damit noch nicht nachgewiesen.
Simulationsgrenze: Wokwi besitzt nur eine begrenzte Analogsimulation. Ein virtueller Widerstand und ein virtueller Sensor ersetzen keine Prüfung von Strombelastbarkeit, Kontaktfehlern oder realem Sensorverhalten.
Video: WOKWI Tutorial – LED und Analogwerte. Quelle: Alfian Learning Center. Die Beispiele dienen zum Erlernen der Simulation, nicht als elektrische Freigabe.
Lerneinheit 3: Randfälle und Hysterese
Lernzeit: 10 Minuten
Ein häufiger Programmfehler entsteht an einem Grenzwert. Deshalb testest Du nicht nur einen typischen Wert, sondern auch Werte unmittelbar unterhalb, auf und oberhalb der Grenze.

Schaltzeichen eines Analog-Digital-Wandlers. Bild: Tjwikcom, gemeinfrei, Wikimedia Commons.
Video: Tutorial 08 – analogRead und serielle Ausgabe, Programming Electronics Academy.
Grenzwertanalyse
| Prüfwert | Erwartung bei vorherigem Normalzustand |
|---|---|
| 99 | Fehler |
| 100 | Normal |
| 699 | Normal |
| 700 | Alarm |
| 900 | Alarm |
| 901 | Fehler |
Merke: Der Wert 700 gehört zum Alarmbereich, 900 ebenfalls. Der Wert 901 liegt bereits außerhalb des festgelegten gültigen Sensorbereichs.
Die Hysterese

Allgemeine Hysteresekennlinie eines Schaltvorgangs. Bild: Alessio Damato, CC BY-SA 3.0, Wikimedia Commons.
Für unseren Ausbildungsfall:
- Beim Anstieg auf 700 wird die gelbe LED eingeschaltet.
- Bei einem anschließenden Rückgang auf 699 bleibt sie eingeschaltet.
- Erst bei 650 wird sie ausgeschaltet.
Das verhindert ständiges Umschalten, wenn ein Messwert geringfügig um die obere Schaltschwelle schwankt.
Selbsttest: Die Messwerte 690, 705, 680, 655, 650 treffen in dieser Reihenfolge ein. Die Zustände lauten: Normal, Alarm, Alarm, Alarm, Normal.
Begründetes Feedback: Ein Programm, das bei 699 sofort wieder ausschaltet, erfüllt die vereinbarte Hysterese nicht. Die Ausschaltschwelle liegt bei 650.
Lerneinheit 4: Dokumentierter Mikrocontrollercode
Lernzeit: 15 Minuten
Ein verständliches Programm trennt Eingabe, Zustandsentscheidung und Ausgabe. So lässt sich seine Logik unabhängig von der Schaltung testen.
Referenz-Sketch für den Arduino Uno:
// aiMOOC: Simulierte Fuellstandswarnung
// A0 = virtueller Sensor
// D9 = gelbe Alarm-LED
// D10 = rote Fehler-LED
// Gueltiger ADC-Bereich: 100 bis 900
// Alarm EIN ab 700, AUS bis 650
// Abtastintervall: 100 ms
// Nur fuer den Ausbildungsfall und die Simulation.
enum Zustand { NORMAL, ALARM, FEHLER };
Zustand zustand = NORMAL;
const byte LED_ALARM = 9;
const byte LED_FEHLER = 10;
const unsigned long INTERVALL = 100UL;
unsigned long letzteProbe = 0;
bool ersteProbe = true;
// Testbare Entscheidungsfunktion.
// Sie liest selbst keine Hardware.
Zustand pruefe(int adc, Zustand vorher) {
if (adc < 100 || adc > 900) return FEHLER;
// Nach einem Fehler neu im Normalzustand starten.
if (vorher == FEHLER) vorher = NORMAL;
if (adc >= 700) return ALARM;
if (adc <= 650) return NORMAL;
// Hysteresebereich: Zustand beibehalten.
return vorher;
}
// Kleiner Funktionstest mit festem Sollwert.
// PASS ist keine Freigabe der Gesamtanlage.
void selbsttest() {
struct Fall {
int wert;
Zustand vorher;
Zustand soll;
};
const Fall faelle[] = {
{ 99, NORMAL, FEHLER },
{ 100, FEHLER, NORMAL },
{ 699, NORMAL, NORMAL },
{ 700, NORMAL, ALARM },
{ 699, ALARM, ALARM },
{ 651, ALARM, ALARM },
{ 650, ALARM, NORMAL },
{ 900, NORMAL, ALARM },
{ 901, ALARM, FEHLER },
{ 680, FEHLER, NORMAL }
};
for (unsigned int i = 0;
i < sizeof(faelle) / sizeof(faelle[0]);
i++) {
bool ok = pruefe(faelle[i].wert,
faelle[i].vorher) == faelle[i].soll;
Serial.print(F("Funktionstest "));
Serial.print(i + 1);
Serial.println(ok ? F(": PASS") : F(": FAIL"));
}
}
void setup() {
pinMode(LED_ALARM, OUTPUT);
pinMode(LED_FEHLER, OUTPUT);
digitalWrite(LED_ALARM, LOW);
digitalWrite(LED_FEHLER, LOW);
Serial.begin(115200);
selbsttest();
}
void loop() {
unsigned long jetzt = millis();
// Unsigned-Differenz: auch beim millis-Ueberlauf.
if (!ersteProbe &&
jetzt - letzteProbe < INTERVALL) return;
ersteProbe = false;
letzteProbe = jetzt;
int adc = analogRead(A0);
zustand = pruefe(adc, zustand);
digitalWrite(LED_ALARM,
zustand == ALARM ? HIGH : LOW);
digitalWrite(LED_FEHLER,
zustand == FEHLER ? HIGH : LOW);
Serial.print(F("ADC="));
Serial.print(adc);
Serial.print(F(" Zustand="));
Serial.println((int)zustand);
}
Zustandskodierung: 0 = NORMAL, 1 = ALARM, 2 = FEHLER.
Testen im Simulator: Übernimm den Sketch als sketch.ino, starte die Simulation, verstelle das virtuelle Potentiometer und beobachte LEDs sowie seriellen Monitor.
Die Selbsttests prüfen isoliert die Entscheidungsfunktion. Sie prüfen weder die tatsächliche Verdrahtung noch eine reale Sensorfunktion.
Wichtig: Die 100 Millisekunden bezeichnen den vorgesehenen Abstand zwischen Messungen, nicht eine garantierte Reaktionszeit einer industriellen Sicherheitssteuerung.
Video: Arduino Sketch with millis instead of delay, Programming Electronics Academy.
Warum dokumentierter Code?
| Gute Praxis | Nutzen |
|---|---|
| Aussagekräftige Variablennamen | Geringere Verwechslungsgefahr |
| Benannte Grenzwerte | Leichtere Pflege |
| Reine Entscheidungsfunktion | Tests mit definierten Eingaben |
| Kommentare zu Annahmen | Nachvollziehbarkeit |
| Versionsstand und Testprotokoll | Änderungen bleiben überprüfbar |
Code-Review: Überlege, an welchen Stellen Du die festen Zahlen durch benannte Konstanten ersetzen würdest. Erkläre, weshalb dies spätere Änderungen sicherer und übersichtlicher macht.
Lerneinheit 5: Sensorfehler und Signaldiagramme
Lernzeit: 15 Minuten
Ein Sensor kann fehlerhafte Daten liefern. Die Software erkennt jedoch nur Fehler, die ihre Prüfkriterien tatsächlich erfassen.
Fehlerszenarien unterscheiden
| Szenario | Simulationsmethode | Aussage |
|---|---|---|
| Wert 0 | Virtuelles Potentiometer auf Minimum | Als ungültig erkannt |
| Wert 1023 | Virtuelles Potentiometer auf Maximum | Als ungültig erkannt |
| Wert 901 | Testfunktion direkt aufrufen | Grenzprüfung |
| Konstanter Wert 500 | Eingang unverändert halten | Kein Fehler erkennbar durch einfache Bereichsprüfung |
| Schwankung 699 bis 700 | Wertefolge testen | Hysterese kontrollieren |
Fachliche Grenze: Ein abgezogener realer Sensor führt nicht zwangsläufig zu 0 oder 1023. Ein offener Analogeingang kann unbestimmte Werte liefern. Das Verstellen eines virtuellen Potentiometers simuliert hier definierte ADC-Fehlerwerte, nicht zuverlässig einen echten Kabelbruch.
Auch ein dauerhaft plausibler, aber falscher Sensorwert kann mit der vorhandenen Logik unerkannt bleiben. Für dessen Erkennung wären zusätzliche Diagnoseannahmen und weitere Informationen nötig.
Signaldiagramm eines Testablaufs

Allgemeines Beispiel digitaler Signalpegel und Signalflanken. Bild: Aeroid und Grabert, CC BY-SA 4.0, Wikimedia Commons.
Das folgende Signaldiagramm zeigt die erwarteten Zustände bei aufeinanderfolgenden Abtastungen.
Abtastung A B C D E F ------------------------------------------------ ADC-Wert 640 700 699 651 650 901 Alarm D9 0 1 1 1 0 0 Fehler D10 0 0 0 0 0 1 0 = LOW / LED aus 1 = HIGH / LED ein
Analyse: Zwischen B und D bleibt der Alarm trotz sinkendem Eingangswert aktiv. Bei E erlischt er. Bei F erscheint die rote Fehleranzeige.
Mit dem virtuellen Wokwi-Logikanalysator kannst Du digitale Ausgangssignale aufzeichnen und als VCD-Datei auswerten.
Mini-Aufgabe: Fehler sichtbar machen
Verbinde im virtuellen Simulator einen Logikanalysator mit D9 und D10. Erzeuge die Wertefolge des Signaldiagramms, notiere die Schaltfolge und vergleiche mit Deiner Aufzeichnung.
Hilfe 1: Beobachte zuerst nur D9.
Hilfe 2: D10 wird erst beim ungültigen Wert 901 aktiv.
Feedback: Eine übereinstimmende Signalfolge belegt das beobachtete Verhalten für genau diese Wertefolge. Sie beweist nicht, dass sämtliche denkbaren Eingaben fehlerfrei behandelt werden.
Lerneinheit 6: Testprotokoll und Regressionstest
Lernzeit: 10 Minuten
Ein Regressionstest wird nach einer Programmänderung erneut ausgeführt. Dadurch kannst Du prüfen, ob bisher funktionierende Eigenschaften weiterhin erfüllt sind.
Dokumentierter Testplan
| ID | Eingabe | Vorzustand | Sollzustand | Istzustand | Ergebnis |
|---|---|---|---|---|---|
| T01 | 99 | Normal | Fehler | Eintragen | Offen |
| T02 | 100 | Fehler | Normal | Eintragen | Offen |
| T03 | 699 | Normal | Normal | Eintragen | Offen |
| T04 | 700 | Normal | Alarm | Eintragen | Offen |
| T05 | 699 | Alarm | Alarm | Eintragen | Offen |
| T06 | 651 | Alarm | Alarm | Eintragen | Offen |
| T07 | 650 | Alarm | Normal | Eintragen | Offen |
| T08 | 900 | Normal | Alarm | Eintragen | Offen |
| T09 | 901 | Alarm | Fehler | Eintragen | Offen |
| T10 | 680 | Fehler | Normal | Eintragen | Offen |
Dokumentationspflicht: Ergänze Programmversion, Datum, Testumgebung, eingesetzte Prüfmethode, tatsächliche Beobachtung und gegebenenfalls Abweichungsbeschreibung.
Der Testplan enthält erwartete Ergebnisse. Die Ist-Ergebnisse bleiben bis zur wirklichen Testdurchführung ausdrücklich offen.
Weiterführender Test: Zeitüberlauf
Bei einem klassischen Arduino Uno läuft der 32-Bit-Zähler von millis() nach ungefähr 49,7 Tagen über. Die Berechnung mit einer Differenz zweier vorzeichenloser Zeitwerte ist für kurze Intervalle auch über den Überlauf hinweg geeignet.
Transferfrage: Wie könntest Du die Zeitberechnung mit einer künstlich vorgegebenen Zeit nahe dem Überlauf prüfen, ohne viele Wochen zu warten?
Hilfe 1: Trenne die Zeitentscheidung gedanklich von der echten Systemuhr.
Hilfe 2: Teste eine Startzeit kurz vor und eine Endzeit kurz nach dem Zählerüberlauf.
Feedback: Kontrollierbare Testeingaben erlauben reproduzierbare Randfallprüfungen. Ein solcher Test ersetzt dennoch keine Messung des gesamten Programmlaufzeitverhaltens.
Interaktive Aufgaben
Quiz: Teste Dein Wissen
Weshalb werden Mikrocontrollerprogramme systematisch getestet? (Um vorgegebenes Verhalten auch bei Randfällen und Fehlern zu überprüfen) (!Um das Lesen von Programmen vollständig zu vermeiden) (!Um jede elektrische Sicherheitsprüfung zu ersetzen) (!Um möglichst viele LEDs gleichzeitig einzuschalten)
Welcher Eingangswert gehört im Ausbildungsfall zum Alarmbereich? (700) (!650) (!99) (!901)
Was geschieht beim Wert 699, wenn zuvor der Alarm aktiv war? (Die gelbe LED bleibt eingeschaltet) (!Die rote LED wird eingeschaltet) (!Beide LEDs blinken) (!Das Programm beendet sich)
Welches Bauteil simuliert den analogen Füllstandssensor? (Potentiometer) (!Gleichrichter) (!Transformator) (!Sicherung)
Welche Funktion liest beim Arduino Uno einen analogen Messwert ein? (analogRead) (!digitalWrite) (!pinMode) (!Serial.begin)
Was bedeutet im Ausbildungsfall ein Messwert von 901? (Der Messwert liegt außerhalb des gültigen Sensorbereichs) (!Der Normalbetrieb ist eindeutig bestätigt) (!Die gelbe LED muss eingeschaltet bleiben) (!Der Mikrocontroller ist automatisch freigegeben)
Was beschreibt ein Testorakel? (Das vorab bestimmte erwartete Testergebnis) (!Die verwendete Farbe einer Testleitung) (!Die Geschwindigkeit des Computers) (!Die äußere Bauform des Sensors)
Weshalb ist eine Hysterese nützlich? (Sie verringert häufiges Umschalten nahe einem Grenzwert) (!Sie erhöht automatisch die ADC-Auflösung) (!Sie beseitigt sämtliche Sensorfehler) (!Sie macht ein Testprotokoll überflüssig)
Was ist ein Regressionstest? (Ein erneuter Test nach Änderungen auf unbeabsichtigte Auswirkungen) (!Ein ausschließlich mechanischer Belastungstest) (!Ein Test ohne erwartetes Ergebnis) (!Ein Ersatz für die Dokumentation)
Welche Aussage zur Freigabe einer realen elektrischen Anlage ist richtig? (Quiz und Simulation ersetzen keine fachlich erforderliche Prüfung und Freigabe) (!Eine hohe Quizpunktzahl genügt für die Freigabe) (!Eine virtuelle LED bestätigt die elektrische Sicherheit) (!Ein einzelner Funktionstest ersetzt alle weiteren Prüfungen)
Memory
Ordne Fachbegriffe und Bedeutungen einander zu.
| Analog-Digital-Wandler | Wandelt ein analoges Eingangssignal in einen digitalen Zahlenwert |
| Hysterese | Getrennte Schwellen für Ein- und Ausschalten |
| Testorakel | Vorab definierte erwartete Reaktion |
| Fehlerpriorität | Bevorzugte Verarbeitung eines erkannten ungültigen Zustands |
| Regressionstest | Wiederholung von Prüfungen nach einer Änderung |
| Stromlaufbild | Darstellung elektrischer Verbindungen mit Schaltzeichen |
| Signaldiagramm | Darstellung von Signalzuständen im zeitlichen Verlauf |
Drag and Drop
Ordne jedem Prüfbegriff die passende Bedeutung zu.
| Ordne die richtigen Begriffe zu. | Thema |
|---|---|
| Analogeingang | Einlesen des virtuellen Sensorwertes |
| Fehlerbereich | Eingang außerhalb der erlaubten Messwertgrenzen |
| Alarmbereich | Einschalten der gelben Warnanzeige |
| Haltebereich | Beibehalten des vorherigen Schaltzustands |
| Sollwert | Vor der Testdurchführung erwartetes Ergebnis |
| Istwert | Während der Testdurchführung beobachtetes Ergebnis |
| Codekommentar | Schriftliche Erläuterung von Zweck und Annahmen |
Kreuzworträtsel
| SENSOR | Welche Komponente liefert dem Mikrocontroller Eingangsdaten? |
| HYSTERESE | Wie heißt das Prinzip mit verschiedenen Ein- und Ausschaltschwellen? |
| SIMULATION | Wie heißt die Nachbildung eines technischen Ablaufs durch ein Modell? |
| GRENZWERT | Wie heißt eine festgelegte Schwelle für eine Entscheidung? |
| PROTOKOLL | Welches Dokument hält Testdurchführung und Ergebnisse fest? |
| REGRESSIONSTEST | Wie heißt die erneute Überprüfung nach Programmänderungen? |
LearningApps
Dies ist eine thematische Suche nach Lernaktivitäten, keine Behauptung über eine bereits vorhandene konkrete LearningApp.
Lückentext
Offene Aufgaben
Bearbeite die Aufgaben in aufsteigender Schwierigkeit. Nutze jeweils erst Hilfe 1 und bei Bedarf Hilfe 2. Vergleiche anschließend mit dem begründeten Feedback.
Leicht – Basisaufgaben
- Basis 1 – Funktionsskizze: Zeichne den Signalweg vom virtuellen Potentiometer über den Arduino zu beiden LEDs.
- Basis 2 – Prüfwerte: Erstelle eine Tabelle mit den Werten 99, 100, 699, 700, 900 und 901 sowie dem erwarteten Zustand bei vorherigem Normalzustand.
- Basis 3 – Codekommentare: Ergänze den Beispielcode um drei verständliche Kommentare, die eine Auszubildende oder ein Auszubildender ohne Vorwissen nachvollziehen kann.
- Basis 4 – Zustandsfolge: Zeichne die LED-Pegel für die Wertefolge 640, 700, 699, 650.
Gestufte Hilfen:
- Hilfe 1: Nutze die Verbindungstabelle und die festgelegten Zustandsgrenzen.
- Hilfe 2: Bei 700 wird der Alarm aktiv und bleibt bis einschließlich 651 erhalten.
Begründetes Feedback:
- Basis 1: Richtig ist ein durchgehender Signalweg von A0 über die Programmlogik zu D9 und D10, denn ohne Zuordnung von Ein- und Ausgängen lassen sich die Beobachtungen nicht erklären.
- Basis 2: Die Randwerte müssen den vereinbarten Bereichen eindeutig zugeordnet werden, weil gerade Vergleiche mit kleiner und größer typische Fehlerquellen sind.
- Basis 3: Gute Kommentare erläutern Zweck, Annahmen und Folgen statt bloß die nächste Codezeile zu wiederholen.
- Basis 4: Die gelbe LED hat die Folge aus, ein, ein, aus. Dies folgt unmittelbar aus der Einschalt- und Ausschaltschwelle.
Standard – Anwendungsaufgaben
- Anwendung 1 – Simulatorprojekt: Baue den virtuellen Ausbildungsfall in Wokwi nach und dokumentiere Schaltung, verwendeten Code und sichtbare Reaktionen.
- Anwendung 2 – Testprotokoll: Führe mindestens acht verschiedene Testfälle aus und ergänze die tatsächlichen Ergebnisse samt Abweichungen.
- Anwendung 3 – Fehlersuche: Verändere in einer Kopie des Sketches die Alarmbedingung von größer oder gleich zu ausschließlich größer und identifiziere den dadurch entstandenen Fehler durch passende Tests.
- Anwendung 4 – Signalanalyse: Zeichne D9 und D10 mit dem virtuellen Logikanalysator auf und vergleiche die Signale mit einem selbst erstellten Soll-Signaldiagramm.
Gestufte Hilfen:
- Hilfe 1: Beginne mit einem Normalwert und ändere jeweils nur eine Testbedingung.
- Hilfe 2: Prüfe bei der absichtlich veränderten Bedingung unmittelbar den Wert 700 und vergleiche Soll und Ist.
Begründetes Feedback:
- Anwendung 1: Ein reproduzierbares Simulatorprojekt enthält eine eindeutige Pinbelegung und den verwendeten Programmstand; reine Fotos ohne Programmbezug genügen nicht.
- Anwendung 2: Erst dokumentierte Istwerte und ein Vergleich zum Soll machen erkennbar, ob ein Test bestanden wurde.
- Anwendung 3: Die fehlerhafte Vergleichsbedingung verhindert den Alarm bei genau 700. Der Test an der Einschaltgrenze deckt dies gezielt auf.
- Anwendung 4: Entscheidend sind die richtigen Signalwechsel nach der nächsten Abtastung. Ein abweichender Signalverlauf verlangt eine Ursachenanalyse.
Schwer – Transferaufgaben
- Transfer 1 – Plausible Sensorfehler: Entwickle ein zusätzliches Diagnosekonzept für einen Sensor, der dauerhaft den plausiblen Wert 500 liefert. Formuliere die nötigen Annahmen.
- Transfer 2 – Neue Grenzwerte: Entwirf eine angepasste Steuerung mit einer anderen Hysteresebreite und untersuche die Folgen für die Schalthäufigkeit.
- Transfer 3 – Zeitverhalten: Entwickle einen Test für die Abtastintervall-Berechnung bei einem Überlauf von millis und dokumentiere die erwarteten Ergebnisse.
- Transfer 4 – Technische Bewertung: Verfasse eine kurze Prüfnotiz, die zwischen erfolgreichem Softwaretest, begrenzter Simulation und erforderlicher realer Sicherheitsprüfung unterscheidet.
Gestufte Hilfen:
- Hilfe 1: Trenne erkannte Fehler, nicht erkennbare Fehler und Folgen falscher Meldungen.
- Hilfe 2: Prüfe zusätzliche unabhängige Informationen, definierte Zustandsübergänge und reproduzierbare Zeiteingaben.
Begründetes Feedback:
- Transfer 1: Ein konstanter gültiger Messwert kann nicht allein durch Bereichsgrenzen als Fehler identifiziert werden. Eine sichere Diagnose benötigt weitere verlässliche Informationen.
- Transfer 2: Ein größerer Abstand zwischen Schaltschwellen kann häufiges Umschalten reduzieren, verändert aber gleichzeitig das Rückschaltverhalten.
- Transfer 3: Ein künstlich kontrollierter Zeitgeber erlaubt eine gezielte Prüfung über den Überlauf hinweg, ohne auf den realen Überlauf warten zu müssen.
- Transfer 4: Eine bestandene Simulation belegt nur getestete Modellfunktionen. Sie ist weder eine vollständige Verifikation realer Hardware noch eine Berechtigung zur Inbetriebnahme.


Lernkontrolle
Die folgenden Aufgaben prüfen Zusammenhänge und Transferleistungen statt ausschließlich Faktenwissen.
- Zustandsautomat: Erkläre anhand einer selbst gewählten Messwertfolge, weshalb die Hysterese einen vorherigen Zustand benötigt.
- Fehleranalyse: Vergleiche einen Messwert außerhalb des erlaubten Bereichs mit einem falsch festhängenden, aber gültigen Messwert. Begründe, welcher Fehler mit der vorhandenen Logik erkannt werden kann.
- Teststrategie: Entwickle einen möglichst kleinen Testfallsatz, der beide Fehlerbereichsgrenzen und beide Schaltschwellen untersucht. Begründe jeden gewählten Wert.
- Softwarequalität: Überarbeite einen kurzen Programmabschnitt so, dass die Schaltschwellen über benannte Konstanten konfigurierbar und die Zustandsentscheidungen unabhängig testbar sind.
- Messdatenauswertung: Interpretiere ein selbst erzeugtes Signaldiagramm und erkläre Abweichungen zwischen erwarteten und beobachteten Ausgangssignalen.
- Risikobewertung: Begründe, weshalb eine erfolgreiche Simulation nicht den Nachweis ersetzt, dass ein echter Sensor und eine reale elektrische Anlage sicher funktionieren.
- Technische Dokumentation: Erstelle einen begründeten Fehlerbericht für einen absichtlich eingebauten Programmfehler und beschreibe den notwendigen Regressionstest.
Lernnachweis
Deine Lernleistung dokumentierst Du in einer Projektmappe oder einem digitalen Portfolio.
| Bestandteil | Nachweiskriterium |
|---|---|
| Anforderungen | Gültige Bereiche, Schaltgrenzen und Fehlerreaktion eindeutig beschrieben |
| Stromlaufbild | Ein- und Ausgänge eindeutig gekennzeichnet |
| Programm | Vollständiger Code mit Kommentaren und Versionsstand |
| Testplan | Normalwerte, Grenzwerte, Zustandsfolgen und Fehlerfälle |
| Testprotokoll | Soll, tatsächliches Ist, Datum, Testumgebung und Abweichungen |
| Signaldiagramm | Zeitliche Zustände der beiden LED-Ausgänge nachvollziehbar |
| Fehlerbericht | Fehler, Reproduktionsschritte, Ursache und Regressionstest |
| Reflexion | Erkannte Grenzen der Simulation und der Diagnose |
Bewertung: Entscheidend sind korrekte Begründungen, Reproduzierbarkeit, vollständige Dokumentation und die Fähigkeit, Grenzen der eigenen Testergebnisse zu erkennen.
Keine Freigabe durch Quizresultate: Das Bestehen von Quiz, Lernkontrolle oder Simulation bestätigt keine elektrische Sicherheit und berechtigt nicht zu realen Elektroarbeiten. Erforderliche fachliche Prüfungen und Freigabeprozesse bleiben eigenständig bestehen.
OERs zum Thema
Weitere Fachinformationen:
- Arduino – analogRead: Offizielle Sprachreferenz zum Einlesen analoger Werte.
- Arduino – millis: Offizielle Sprachreferenz zur Zeitfunktion.
- ISTQB – Standardglossar: Fachbegriffe der Softwaretestmethodik.
- Wokwi – Arduino Uno: Simulierte Boardfunktionen und Einschränkungen.
- Wokwi – Potentiometer: Simulierter Analogwert und Bedienung.
- Wokwi – Schaltungsformat: Dokumentation der virtuellen Schaltungsdatei.
- Wokwi – Logikanalysator: Digitale Signalaufzeichnung und VCD-Auswertung.
Hinweis: Nicht jede externe Fachquelle ist automatisch eine Open Educational Resource mit freier Nachnutzungslizenz. Beachte die jeweiligen Lizenz- und Nutzungsbedingungen.
Mediennachweise und Nutzungsrechte
Die folgenden Wikimedia-Commons-Dateien wurden anhand ihrer Dateibeschreibungsseiten ausgewählt. Urheber und Lizenzen sind für die Nachnutzung zu beachten.
| Medium | Urheber / Lizenz | Verwendung |
|---|---|---|
| Arduino uno r3.jpg | MakeMagazinDE, CC BY-SA 4.0 | Mikrocontrollerboard |
| Potentiometerdiagram.svg | Maxmath12, CC0 | Analoges Sensormodell |
| LED circuit.svg | Dmccreary, Bearbeitung StevenBell, CC BY-SA 2.5 | LED-Grundschaltung |
| Arduino uno led bb.svg | Edwiyanto, CC BY-SA 4.0 | Arduino-Verdrahtungsbeispiel |
| ADC Symbol.svg | Tjwikcom, gemeinfrei | ADC-Schaltzeichen |
| Hysteresis sharp curve.svg | Alessio Damato, CC BY-SA 3.0 | Hysteresedarstellung |
| Digital Signal Square Wave.svg | Aeroid und Grabert, CC BY-SA 4.0 | Digitales Signaldiagramm |
Die eingebundenen YouTube-Videos dienen ausschließlich der Wiedergabe und Vertiefung. Aus der öffentlichen Abrufbarkeit folgt keine Erlaubnis zum Herunterladen, Bearbeiten oder erneuten Veröffentlichen. Die Rechte verbleiben bei den jeweiligen Berechtigten; die aktuellen YouTube-Nutzungsbedingungen sind zu beachten.
Die Wokwi-Simulationen sind externe Werkzeuge. Die hier dargestellten eigenen Ausbildungsbeispiele dürfen nicht mit einer offiziell geprüften Hardware-Schulung oder zertifizierten Sicherheitsprüfung verwechselt werden.
Verknüpfte Lernbereiche
aiMOOC-Projekte
Schulfach+


aiMOOCs


aiMOOC Projekte


NEWSLernweltNOAH fragen