Digitale Elektronik und Mikrocontroller – Digitale Eingänge und Ausgänge programmieren
Digitale Elektronik und Mikrocontroller – Digitale Eingänge und Ausgänge programmieren
QR-Code
Digitale Elektronik und Mikrocontroller – Digitale Eingänge und Ausgänge programmieren
Einleitung
In diesem Lernkurs programmierst Du digitale Eingänge und Ausgänge eines Mikrocontrollers. Im Mittelpunkt stehen Signale, definierte Startzustände und ein sicherer Ausbildungsaufbau. Du arbeitest bevorzugt mit einer berührungssicheren Simulation oder einem geeigneten Schulungsmodell mit Schutzkleinspannung.
Sicherheitsregel: Reale Elektroarbeiten dürfen nur von entsprechend qualifizierten und beauftragten Personen im Rahmen der geltenden betrieblichen Regeln durchgeführt werden. Dieser Kurs erteilt keine Arbeitsfreigabe. Quizresultate sind niemals eine Freigabe für reale Elektroarbeiten.

Ausbildungsfall
Du arbeitest in einer Ausbildungswerkstatt an einem Modell einer Förderanlage. Ein Taster meldet eine Bedienanforderung an den Mikrocontroller. Eine LED zeigt den Betriebszustand an. Die LED ist nur eine Anzeige und keine sicherheitsgerichtete Schutzeinrichtung.
Auftrag: Beim Einschalten soll die Anzeige sicher AUS sein. Wird der Taster gedrückt, soll die LED EIN sein. Wird der Taster losgelassen, soll die LED AUS sein.
Lernziele
Nach dem Kurs kannst Du digitale Pegel unterscheiden, einen Eingang mit definiertem Ruhepegel beschalten, einen Ausgang mit definiertem Startzustand initialisieren, `pinMode()`, `digitalRead()` und `digitalWrite()` anwenden, einfache Signaldiagramme lesen und Dein Programm in einer sicheren Simulation prüfen.
Kurze Lerneinheiten
Lerneinheit 1: Digital bedeutet zwei Zustände
Ein digitaler Eingang unterscheidet zwei logische Zustände: LOW und HIGH. Welche Spannungsbereiche tatsächlich als LOW oder HIGH erkannt werden, hängt vom verwendeten Mikrocontroller ab. Deshalb darfst Du logische Zustände nicht mit beliebigen Spannungen gleichsetzen.

Merksatz: HIGH und LOW sind logische Zustände. Die zugehörigen elektrischen Grenzwerte stehen im Datenblatt des Bausteins.
Lerneinheit 2: Der Mikrocontroller und seine digitalen Pins
Beim Arduino Uno mit ATmega328P werden mehrere Pins als digitale Ein- oder Ausgänge verwendet. Die Richtung legst Du im Programm fest.

Wichtig: Ein Pin ist nicht automatisch ein belastbarer Leistungsausgang. Aktoren mit höherem Strombedarf benötigen geeignete Treiberstufen. In diesem Kurs verwendest Du nur die simulierte beziehungsweise schulungsgeeignete LED-Schaltung.
Lerneinheit 3: Ausgang programmieren
Ein digitaler Ausgang wird mit `pinMode(pin, OUTPUT)` als Ausgang konfiguriert. Danach setzt `digitalWrite(pin, HIGH)` oder `digitalWrite(pin, LOW)` den logischen Ausgangszustand.

Beispiel für einen definierten AUS-Startzustand:
const byte LED_PIN = 8;
void setup() {
digitalWrite(LED_PIN, LOW);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
}Beim ATmega328P werden die I/O-Register beim Reset auf definierte Anfangswerte gesetzt. Trotzdem soll die Anwendung den gewünschten Betriebszustand explizit initialisieren. So wird die Absicht des Programms eindeutig und besser überprüfbar.
Lerneinheit 4: Eingang programmieren
Ein digitaler Eingang liest mit `digitalRead(pin)` den logischen Zustand eines Pins ein.
Ein unbeschalteter Eingang kann einen undefinierten Pegel annehmen. Deshalb brauchst Du einen definierten Ruhepegel. Eine verbreitete Lösung ist ein Pull-up-Widerstand.

Mit Arduino kannst Du den internen Pull-up verwenden:
const byte TASTER_PIN = 2;
void setup() {
pinMode(TASTER_PIN, INPUT_PULLUP);
}Bei dieser Schaltung gilt häufig: Taster offen → HIGH, Taster gedrückt → LOW. Das Signal ist also aktiv LOW.

Lerneinheit 5: Eingang und Ausgang verbinden
Jetzt wird der Ausbildungsfall programmiert.
const byte TASTER_PIN = 2;
const byte LED_PIN = 8;
void setup() {
digitalWrite(LED_PIN, LOW);
pinMode(LED_PIN, OUTPUT);
pinMode(TASTER_PIN, INPUT_PULLUP);
}
void loop() {
bool gedrueckt = digitalRead(TASTER_PIN) == LOW;
digitalWrite(LED_PIN, gedrueckt ? HIGH : LOW);
}
Begründung: Der Ausgang wird auf AUS vorbereitet. Der Eingang erhält mit `INPUT_PULLUP` einen definierten Ruhepegel. Erst danach wird der Zustand zyklisch gelesen und die Anzeige entsprechend gesetzt.
Lerneinheit 6: Signaldiagramm lesen
Das folgende vereinfachte Signaldiagramm zeigt die Logik des Ausbildungsfalls:
| Zeitabschnitt | Eingang Taster | Bedeutung | Ausgang LED |
|---|---|---|---|
| Start | HIGH | nicht gedrückt | LOW |
| Betätigung | LOW | gedrückt | HIGH |
| Loslassen | HIGH | nicht gedrückt | LOW |
Prüffrage: Warum wird die LED bei LOW am Eingang eingeschaltet? Weil der Eingang mit Pull-up beschaltet ist und der Taster beim Drücken den Eingang auf LOW zieht.
Lerneinheit 7: Berührungssicher simulieren
Nutze für die Übungen bevorzugt eine Simulation. Wokwi stellt einen Arduino-Uno-Simulator mit GPIO, Tastern, LEDs und weiteren Bauteilen bereit.
Wokwi Arduino-Simulator öffnen
Übe dort zuerst nur mit virtueller Hardware. Ändere anschließend gezielt Startzustände und Eingangsbeschaltung und beobachte das Verhalten.
Keine Freigabe durch Simulation oder Quiz: Eine richtige Simulation, ein bestandener Test oder ein Quizresultat berechtigt nicht zu Arbeiten an realen elektrischen Anlagen.
Lerneinheit 8: Video zur Wiederholung
Das folgende Video zeigt die Grundfunktionen `digitalRead()` und `digitalWrite()` an einem Arduino. Verwende es zur Wiederholung und gleiche Details mit der offiziellen Arduino-Dokumentation ab.
Gestufte Hilfen
Hilfe 1: Orientierung
Frage Dich zuerst: Welcher Pin ist Eingang, welcher Pin ist Ausgang? Welcher Zustand soll unmittelbar nach dem Start gelten?
Hilfe 2: Eingang
Bei `INPUT_PULLUP` ist der Eingang im Ruhezustand HIGH. Ein Taster gegen GND erzeugt beim Drücken LOW.
Hilfe 3: Ausgang
Wenn die LED beim Start AUS sein soll, definiere den Ausgangszustand LOW, bevor der reguläre Programmablauf beginnt.
Hilfe 4: Fehlersuche
Prüfe nacheinander Pin-Nummern, Pin-Richtungen, Pull-up-Konfiguration, aktive LOW-Logik und den tatsächlichen Zustand im Simulator. Ändere immer nur eine Sache gleichzeitig.
Aufgaben mit begründetem Feedback
Basisaufgabe
Aufgabe: Markiere im Programm, wo Eingang, Ausgang und Startzustand festgelegt werden.
Feedback: Richtig ist, dass `pinMode(TASTER_PIN, INPUT_PULLUP)` den Eingang festlegt, `pinMode(LED_PIN, OUTPUT)` den Ausgang festlegt und `digitalWrite(LED_PIN, LOW)` den gewünschten AUS-Startzustand vorbereitet. Die Zuordnung ist wichtig, weil Richtung und Startzustand getrennte Eigenschaften sind.
Anwendungsaufgabe
Aufgabe: Ändere die Simulation so, dass die LED im Ruhezustand EIN und beim Tastendruck AUS ist.
Feedback: Eine mögliche Lösung ist, die Ausgangslogik umzudrehen. Der Eingang bleibt aktiv LOW. Entscheidend ist, dass Du Eingangsbedeutung und Ausgangswirkung getrennt analysierst.
Transferaufgabe
Aufgabe: Eine Maschine besitzt zwei nicht sicherheitsgerichtete Meldetaster. Die Anzeige soll EIN sein, wenn mindestens einer der beiden Taster gedrückt wird. Entwirf die Programmlogik zuerst als Wahrheitstabelle und programmiere sie danach in der Simulation.
Feedback: Du brauchst eine ODER-Verknüpfung der beiden logischen Bedienanforderungen. Bei `INPUT_PULLUP` musst Du zunächst aus LOW jeweils die Bedeutung „gedrückt“ bilden. Die Transferleistung besteht darin, elektrische Pegel, Signalbedeutung und boolesche Logik sauber zu trennen.
Interaktive Aufgaben
Quiz: Teste Dein Wissen
Welche Funktion legt einen Arduino-Pin als Ausgang fest? (pinMode mit OUTPUT) (!digitalRead mit HIGH) (!delay mit OUTPUT) (!analogRead mit LOW)
Welche Funktion liest einen digitalen Eingang? (digitalRead) (!digitalWrite) (!pinMode) (!delay)
Was bewirkt INPUT_PULLUP typischerweise? (Einen definierten HIGH Ruhepegel am Eingang) (!Einen analogen Ausgang) (!Eine höhere Prozessortaktfrequenz) (!Eine galvanische Trennung)
Welcher Pegel bedeutet bei einem Taster gegen GND mit INPUT_PULLUP häufig gedrückt? (LOW) (!HIGH) (!PWM) (!FLOAT)
Warum ist ein definierter Startzustand wichtig? (Damit das Ausgangsverhalten nach dem Start eindeutig ist) (!Damit der Mikrocontroller mehr Speicher erhält) (!Damit jeder Eingang analog wird) (!Damit keine Programmschleife nötig ist)
Was ist bei einem unbeschalteten Eingang problematisch? (Der Pegel kann undefiniert sein) (!Der Pin wird automatisch zum Leistungsausgang) (!Der Prozessor stoppt immer) (!Der Flash Speicher wird gelöscht)
Welche Aussage zu HIGH und LOW ist fachlich richtig? (Die elektrischen Grenzwerte hängen vom Baustein ab) (!HIGH ist bei jedem Mikrocontroller exakt 24 Volt) (!LOW ist immer ein offener Stromkreis) (!HIGH und LOW sind analoge Messbereiche)
Wozu dient digitalWrite an einem als OUTPUT konfigurierten Pin? (Zum Setzen eines digitalen Ausgangszustands) (!Zum Messen eines Widerstands) (!Zum Ändern der CPU Architektur) (!Zum Speichern eines Programms im EEPROM)
Welche Umgebung eignet sich für die ersten Übungen dieses Kurses besonders? (Eine berührungssichere Simulation) (!Eine offene Netzspannungsanlage) (!Ein Schaltschrank ohne Ausbildungsfreigabe) (!Eine unbekannte Industrieanlage im Betrieb)
Was bedeutet ein bestandenes Quiz in diesem Kurs für reale Elektroarbeiten? (Es erteilt keine Arbeitsfreigabe) (!Es ersetzt die Beauftragung) (!Es ersetzt die Fachqualifikation) (!Es hebt betriebliche Sicherheitsregeln auf)
Memory
| digitalRead | digitalen Eingang lesen |
| digitalWrite | digitalen Ausgang setzen |
| INPUT_PULLUP | definierter HIGH Ruhepegel |
| OUTPUT | Pin als Ausgang konfigurieren |
| LOW | logischer niedriger Zustand |
| Startzustand | Verhalten nach Initialisierung |
Drag and Drop
| Ordne die richtigen Begriffe zu. | Thema |
|---|---|
| Eingang einrichten | INPUT_PULLUP |
| Ausgang einrichten | OUTPUT |
| Signal einlesen | digitalRead |
| Signal ausgeben | digitalWrite |
| Sicher üben | Simulation |
...
Kreuzworträtsel
| Eingang | Welcher Pin-Typ nimmt digitale Signale auf? |
| Ausgang | Welcher Pin-Typ gibt digitale Signale aus? |
| Pullup | Welcher Widerstand sorgt häufig für einen definierten HIGH Ruhepegel? |
| Simulation | Wie heißt eine sichere virtuelle Übungsumgebung allgemein? |
| Taster | Welches Bedienelement wird im Ausbildungsfall eingelesen? |
| Signal | Was wird als HIGH oder LOW verarbeitet? |
LearningApps
Lückentext
Offene Aufgaben
Leicht
- Digitale Signale: Erstelle eine Skizze mit HIGH und LOW und beschrifte beide Zustände.
- Mikrocontroller: Markiere auf dem Pinout drei digitale Pins und erkläre ihre mögliche Verwendung.
- Pull-up-Widerstand: Erkläre in eigenen Worten, warum ein Eingang einen definierten Ruhepegel benötigt.
- Programmablauf: Kommentiere das Beispielprogramm so, dass jede Zeile für eine andere Auszubildende verständlich wird.
Standard
- Signaldiagramm: Zeichne für fünf aufeinanderfolgende Tasterzustände ein Signaldiagramm für Eingang und LED-Ausgang.
- Fehlersuche: Erzeuge in der Simulation absichtlich einen falschen Pin und dokumentiere Fehlerbild, Ursache und Korrektur.
- Aktiv LOW: Programmiere zwei Varianten derselben Aufgabe und erkläre den Unterschied zwischen elektrischem Pegel und logischer Bedeutung.
- Wahrheitstabelle: Entwickle eine Wahrheitstabelle für zwei Taster und eine gemeinsame Anzeige.
Schwer
- Entprellung: Recherchiere das Prellen mechanischer Taster und entwirf eine softwarebasierte Entprellstrategie in der Simulation.
- Fehlersicherer Startzustand: Vergleiche zwei Initialisierungsreihenfolgen und begründe, welche für einen definierten AUS-Zustand geeigneter ist.
- Testplan: Erstelle einen systematischen Testplan für Start, Tastendruck, Loslassen, Reset und fehlerhafte Eingangskonfiguration.
- Transferprojekt: Entwickle in der Simulation eine kleine Bedienanzeige mit zwei Eingängen und zwei Ausgängen, dokumentiere Stromlaufbild, Signaldiagramm, Programm und Prüffälle.


Lernkontrolle
- Startverhalten analysieren: Ein Ausgang ist nach dem Reset kurzzeitig Eingang. Erkläre, warum die angeschlossene Schaltung trotzdem so entworfen werden sollte, dass kein unerwünschter Zustand entsteht.
- Aktiv-LOW-Logik übertragen: Ein Sensor liefert im Ruhezustand HIGH und bei Aktivierung LOW. Entwickle eine verständliche Programmlogik und begründe Deine Variablennamen.
- Fehlerdiagnose: In einer Simulation wechselt die LED scheinbar zufällig. Entwickle eine Prüfreihenfolge, mit der Du einen undefinierten Eingang als mögliche Ursache nachweist.
- Schaltung und Software abstimmen: Vergleiche externen Pull-down und internen Pull-up. Erkläre, wie sich die Eingangsbedeutung im Programm verändert.
- Sicherheitsgrenze beurteilen: Begründe, warum eine funktionierende Mikrocontroller-LED-Anzeige keine sicherheitsgerichtete Maschinenfunktion ersetzt und warum ein Quiz keine Arbeitsfreigabe darstellt.
- Transfer: Entwirf für einen berührungssicheren Schulungsaufbau eine Startsequenz mit zwei Ausgängen, bei der beide zunächst AUS bleiben und erst nach erfolgreicher Eingangskontrolle freigegeben werden.
Lernnachweis
Für einen Lernnachweis zu diesem Thema sollst Du zeigen, dass Du digitale Pegel fachlich korrekt interpretierst, Ein- und Ausgänge unterscheiden kannst, definierte Eingangszustände mit Pull-up oder Pull-down erklärst, einen definierten Ausgangs-Startzustand programmierst, Signaldiagramme liest und erstellst, einen Fehler systematisch in der Simulation untersuchst und die Grenzen zwischen Lernsimulation und realer Elektroarbeit begründet darstellen kannst.
Der Lernnachweis erfolgt ohne externe Medien, ohne eingebettete Simulation und ohne automatische Freigabe. Eine erfolgreiche Bearbeitung bestätigt Lernfortschritt, aber keine Berechtigung zu realen Elektroarbeiten.
Quellen und Medienrechte
- Arduino Documentation: digitalWrite – offizielle Funktionsdokumentation zu digitalen Ausgängen und Pull-up-Verhalten.
- Microchip ATmega328P – Herstellerinformationen und Datenblattzugang zum Mikrocontroller.
- DGUV Bildungsbereich Elektrowerkstatt – Hinweise zu elektrischen Gefährdungen in der beruflichen Bildung.
- DGUV Praxisfeld Elektrotechnik – Beispiele für Ausbildungs- und Schutzmaßnahmen im elektrotechnischen Praxisfeld.
- Wokwi Dokumentation – Dokumentation der berührungssicheren Online-Simulation.
– Wikimedia Commons, CC BY-SA 4.0.
– Wikimedia Commons, CC BY-SA 4.0.
– Wikimedia Commons, freie Lizenz laut Dateibeschreibungsseite.
– Wikimedia Commons, CC BY-SA 2.5.
– Wikimedia Commons, CC BY-SA 4.0.
– Wikimedia Commons, Public Domain.
– Wikimedia Commons, CC BY-SA 4.0.
OERs zum Thema
Verknüpfte Lernbereiche
aiMOOC-Projekte
Schulfach+


aiMOOCs


aiMOOC Projekte


NEWSLernweltNOAH fragen