Zum Inhalt springen

Digitale Elektronik und Mikrocontroller – Mikrocontrollerprogramme systematisch testen

Aus MOOCsWiki Staging
aiMOOC-Siegel aiMOOC

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:

  1. Testfall: Welchen Eingangswert verwendest Du?
  2. Soll-Ist-Vergleich: Welches LED-Verhalten erwartest Du?
  3. 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:

  1. Beim Anstieg auf 700 wird die gelbe LED eingeschaltet.
  2. Bei einem anschließenden Rückgang auf 699 bleibt sie eingeschaltet.
  3. 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

Vervollständige den Text.
Ein Mikrocontroller verarbeitet die Signale eines

nach festgelegten Regeln.
Der Arduino Uno besitzt einen

zur Verarbeitung analoger Messsignale.
Ein systematischer Test beginnt mit einer eindeutigen

an das erwartete Verhalten.
Der Vergleich eines Messwerts mit einer festgelegten

ermöglicht eine Schaltentscheidung.
Beim Ein- und Ausschalten an unterschiedlichen Schwellen wird eine

verwendet.
Ein ungültiger Messwert versetzt den Ausbildungsfall in den

mit roter Anzeige.
Die Hysterese verhindert unnötiges

bei kleineren Wertschwankungen.
Das vereinbarte erwartete Ergebnis wird im Testplan als

festgehalten.
Die während der Ausführung beobachtete Reaktion heißt

und muss dokumentiert werden.
Ein wiederholter Test nach einer Programmänderung heißt

und hilft bei der Fehlererkennung.
Ein

stellt elektrische Verbindungen mit Symbolen dar.
Ein

zeigt Signalzustände über die Zeit.
Die virtuelle

ermöglicht das gefahrlose Experimentieren mit Modellwerten.
Eine reale elektrische Anlage benötigt eine fachgerechte

vor der erforderlichen Freigabe.




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

  1. Basis 1 – Funktionsskizze: Zeichne den Signalweg vom virtuellen Potentiometer über den Arduino zu beiden LEDs.
  2. Basis 2 – Prüfwerte: Erstelle eine Tabelle mit den Werten 99, 100, 699, 700, 900 und 901 sowie dem erwarteten Zustand bei vorherigem Normalzustand.
  3. Basis 3 – Codekommentare: Ergänze den Beispielcode um drei verständliche Kommentare, die eine Auszubildende oder ein Auszubildender ohne Vorwissen nachvollziehen kann.
  4. Basis 4 – Zustandsfolge: Zeichne die LED-Pegel für die Wertefolge 640, 700, 699, 650.

Gestufte Hilfen:

  1. Hilfe 1: Nutze die Verbindungstabelle und die festgelegten Zustandsgrenzen.
  2. Hilfe 2: Bei 700 wird der Alarm aktiv und bleibt bis einschließlich 651 erhalten.

Begründetes Feedback:

  1. 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.
  2. Basis 2: Die Randwerte müssen den vereinbarten Bereichen eindeutig zugeordnet werden, weil gerade Vergleiche mit kleiner und größer typische Fehlerquellen sind.
  3. Basis 3: Gute Kommentare erläutern Zweck, Annahmen und Folgen statt bloß die nächste Codezeile zu wiederholen.
  4. Basis 4: Die gelbe LED hat die Folge aus, ein, ein, aus. Dies folgt unmittelbar aus der Einschalt- und Ausschaltschwelle.


Standard – Anwendungsaufgaben

  1. Anwendung 1 – Simulatorprojekt: Baue den virtuellen Ausbildungsfall in Wokwi nach und dokumentiere Schaltung, verwendeten Code und sichtbare Reaktionen.
  2. Anwendung 2 – Testprotokoll: Führe mindestens acht verschiedene Testfälle aus und ergänze die tatsächlichen Ergebnisse samt Abweichungen.
  3. 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.
  4. Anwendung 4 – Signalanalyse: Zeichne D9 und D10 mit dem virtuellen Logikanalysator auf und vergleiche die Signale mit einem selbst erstellten Soll-Signaldiagramm.

Gestufte Hilfen:

  1. Hilfe 1: Beginne mit einem Normalwert und ändere jeweils nur eine Testbedingung.
  2. Hilfe 2: Prüfe bei der absichtlich veränderten Bedingung unmittelbar den Wert 700 und vergleiche Soll und Ist.

Begründetes Feedback:

  1. Anwendung 1: Ein reproduzierbares Simulatorprojekt enthält eine eindeutige Pinbelegung und den verwendeten Programmstand; reine Fotos ohne Programmbezug genügen nicht.
  2. Anwendung 2: Erst dokumentierte Istwerte und ein Vergleich zum Soll machen erkennbar, ob ein Test bestanden wurde.
  3. Anwendung 3: Die fehlerhafte Vergleichsbedingung verhindert den Alarm bei genau 700. Der Test an der Einschaltgrenze deckt dies gezielt auf.
  4. Anwendung 4: Entscheidend sind die richtigen Signalwechsel nach der nächsten Abtastung. Ein abweichender Signalverlauf verlangt eine Ursachenanalyse.


Schwer – Transferaufgaben

  1. 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.
  2. Transfer 2 – Neue Grenzwerte: Entwirf eine angepasste Steuerung mit einer anderen Hysteresebreite und untersuche die Folgen für die Schalthäufigkeit.
  3. Transfer 3 – Zeitverhalten: Entwickle einen Test für die Abtastintervall-Berechnung bei einem Überlauf von millis und dokumentiere die erwarteten Ergebnisse.
  4. Transfer 4 – Technische Bewertung: Verfasse eine kurze Prüfnotiz, die zwischen erfolgreichem Softwaretest, begrenzter Simulation und erforderlicher realer Sicherheitsprüfung unterscheidet.

Gestufte Hilfen:

  1. Hilfe 1: Trenne erkannte Fehler, nicht erkennbare Fehler und Folgen falscher Meldungen.
  2. Hilfe 2: Prüfe zusätzliche unabhängige Informationen, definierte Zustandsübergänge und reproduzierbare Zeiteingaben.

Begründetes Feedback:

  1. 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.
  2. Transfer 2: Ein größerer Abstand zwischen Schaltschwellen kann häufiges Umschalten reduzieren, verändert aber gleichzeitig das Rückschaltverhalten.
  3. 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.
  4. Transfer 4: Eine bestandene Simulation belegt nur getestete Modellfunktionen. Sie ist weder eine vollständige Verifikation realer Hardware noch eine Berechtigung zur Inbetriebnahme.




Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen



Lernkontrolle

Die folgenden Aufgaben prüfen Zusammenhänge und Transferleistungen statt ausschließlich Faktenwissen.

  1. Zustandsautomat: Erkläre anhand einer selbst gewählten Messwertfolge, weshalb die Hysterese einen vorherigen Zustand benötigt.
  2. 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.
  3. Teststrategie: Entwickle einen möglichst kleinen Testfallsatz, der beide Fehlerbereichsgrenzen und beide Schaltschwellen untersucht. Begründe jeden gewählten Wert.
  4. Softwarequalität: Überarbeite einen kurzen Programmabschnitt so, dass die Schaltschwellen über benannte Konstanten konfigurierbar und die Zustandsentscheidungen unabhängig testbar sind.
  5. Messdatenauswertung: Interpretiere ein selbst erzeugtes Signaldiagramm und erkläre Abweichungen zwischen erwarteten und beobachteten Ausgangssignalen.
  6. Risikobewertung: Begründe, weshalb eine erfolgreiche Simulation nicht den Nachweis ersetzt, dass ein echter Sensor und eine reale elektrische Anlage sicher funktionieren.
  7. 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:

  1. Arduino – analogRead: Offizielle Sprachreferenz zum Einlesen analoger Werte.
  2. Arduino – millis: Offizielle Sprachreferenz zur Zeitfunktion.
  3. ISTQB – Standardglossar: Fachbegriffe der Softwaretestmethodik.
  4. Wokwi – Arduino Uno: Simulierte Boardfunktionen und Einschränkungen.
  5. Wokwi – Potentiometer: Simulierter Analogwert und Bedienung.
  6. Wokwi – Schaltungsformat: Dokumentation der virtuellen Schaltungsdatei.
  7. 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









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-Hauptseite

Mediathek

Inhalte werden geladen ...

Mediathek wird aus dem Wiki geladen ...