Lektion 5.1

Sensoren, Aktoren und Mikrocontroller

14 min Lesezeit

Du gehst auf einen Supermarkt zu, und die Tür öffnet sich von selbst. Im Treppenhaus geht das Licht an, sobald es dunkel wird. Die Waschmaschine heizt das Wasser auf 40 Grad und hört dann auf. Wer erledigt das? In all diesen Geräten arbeitet ein kleiner Computer, der misst, entscheidet und etwas schaltet.

Du lernst, aus welchen Teilen so ein System besteht, wie der kleine Computer Messwerte versteht und wie du ein solches System planst, programmierst und testest.

Definition

Sensor, Aktor und das EVA-Prinzip

Ein Sensor misst etwas in der Umgebung und gibt dem System ein elektrisches Signal, dessen Größe vom Messwert abhängt. Beispiele: ein Temperatursensor, ein Lichtsensor, ein Abstandssensor (er misst oft mit Ultraschall, wie weit etwas entfernt ist), ein Mikrofon und ein Taster (er meldet: gedrückt oder nicht).

Ein Aktor macht aus einem Signal des Systems eine Wirkung in der Umgebung. Beispiele: eine LED (kleine Leuchte), ein Summer, ein Motor, ein Lautsprecher, ein Display.

Das EVA-Prinzip kennst du schon: Eingabe, Verarbeitung, Ausgabe. Hier gehört der Sensor zur Eingabe, das Programm zur Verarbeitung und der Aktor zur Ausgabe. Bei der Supermarkttür misst ein Bewegungssensor, das Programm entscheidet „Kommt jemand?“, und ein Motor öffnet die Tür.

Definition

Mikrocontroller

Ein Mikrocontroller ist ein kleiner Computer auf einem Chip. Er hat einen Prozessor, einen Speicher und Anschlüsse, an die du Sensoren und Aktoren steckst. Schulplatinen wie der Calliope mini, der micro:bit oder der Arduino tragen so einen Chip. Anders als dein PC erledigt er meist nur eine Aufgabe, sein Programm. Das Programm bleibt im Speicher, auch wenn der Strom weg ist, und läuft wieder an, sobald Strom da ist. Du schreibst es am Computer und überträgst es auf die Platine.

Mikrocontroller stecken in Waschmaschinen, Fahrradcomputern, Spielzeug und Heizungsreglern. Auch ein Roboter ist ein Mikrocontroller mit Sensoren (etwa für eine schwarze Linie auf dem Boden) und Aktoren (Motoren für die Räder).

Ein solches Programm besteht meist aus einer Schleife, die für immer wiederholt wird: Sensorwert lesen, entscheiden, Aktor schalten.

Definition

Analog-Digital-Wandlung

Die Umgebung ist analog: Eine Temperatur kann jeden Wert annehmen, 20 °C, 20,1 °C, 20,01 °C und alles dazwischen. Ein Computer rechnet aber nur mit Zahlen aus Bits. Ein Analog-Digital-Wandler (AD-Wandler) macht aus dem Signal des Sensors eine Zahl. Er teilt den Messbereich in gleich breite Stufen und gibt die Nummer der Stufe aus.

Die Zahl der Stufen hängt von der Zahl der Bits ab. Mit 1 Bit gibt es 2 Stufen, mit 2 Bit 4 Stufen, mit 3 Bit 8 Stufen. Jedes zusätzliche Bit verdoppelt die Zahl der Stufen. Mit 10 Bit gibt es 1024 Stufen, nummeriert von 0 bis 1023. Das liefert zum Beispiel der Arduino Uno. Mehr Stufen heißen eine feinere Messung.

Beispiel

Temperatur in Stufen

Ein Temperatursensor misst von 0 °C bis 40 °C. Ein 3-Bit-Wandler teilt diesen Bereich in 8 gleich breite Stufen, nummeriert von 0 bis 7. Welche Zahl und welche Bitfolge gibt er bei 23 °C aus? Wie genau kennt der Computer die Temperatur dann? Was ändert sich bei einem 10-Bit-Wandler?

Der Bereich ist 40 °C breit, jede der 8 Stufen also 40 : 8 = 5 °C. Stufe 0 gilt für 0 bis 5 °C, Stufe 1 für 5 bis 10 °C, Stufe 2 für 10 bis 15 °C, Stufe 3 für 15 bis 20 °C, Stufe 4 für 20 bis 25 °C und so weiter bis Stufe 7 für 35 bis 40 °C.

23 °C liegt zwischen 20 und 25 °C, also in Stufe 4. Als Bitfolge ist das 100.

Der Computer weiß nur: Die Temperatur liegt zwischen 20 und 25 °C. Auch 21 °C und 24,9 °C ergeben die Zahl 4. Das ist der Preis der Wandlung.

Mit 10 Bit gibt es 1024 Stufen. Jede ist 40 : 1024 breit, das sind etwa 0,04 °C. Das ist viel genauer.

Definition

Problemzerlegung, Spezifikation, Realisierung und Test

Ein System mit Mikrocontroller entwickelst du in vier Schritten:

  • Problemzerlegung: Teile die Aufgabe in kleine Teilaufgaben. Welcher Sensor liefert die Eingabe? Was muss das Programm entscheiden oder rechnen? Welcher Aktor gibt aus?
  • Spezifikation: Lege genau fest, was das System tun soll, bevor du anfängst. Welche Eingaben gibt es, wie soll es reagieren, wo liegen die Grenzwerte? Zum Beispiel: „Ist der Wert kleiner als 200, leuchtet die LED.“
  • Realisierung: Du baust die Schaltung auf und schreibst das Programm.
  • Test: Du prüfst, ob das System die Spezifikation erfüllt. Teste normale Fälle und Grenzfälle, zum Beispiel einen Wert genau auf der Grenze. Findest du einen Fehler, behebst du ihn und testest noch einmal.
Beispiel

Ein Nachtlicht

Ein Nachtlicht soll leuchten, wenn es dunkel ist. Der Lichtsensor liefert Werte von 0 (ganz dunkel) bis 1023 (sehr hell). Zerlege die Aufgabe, lege fest, was das Nachtlicht tun soll, schreibe das Programm in Worten und nenne Testwerte.

Zerlegung: Eingabe ist der Lichtsensor. Verarbeitung ist der Vergleich seines Wertes mit einer Grenze. Ausgabe ist die LED.

Spezifikation: Liegt der Sensorwert unter 200, ist die LED an. Bei 200 und darüber ist sie aus.

Programm in Worten:

ZeileEinrückungAnweisung
10Wiederhole für immer:
21helligkeit = Wert des Lichtsensors lesen
31Wenn helligkeit < 200:
42LED einschalten
51Sonst:
62LED ausschalten

Tests: Bei 800 (hell) muss die LED aus sein, bei 50 (dunkel) an. Wichtig sind die Grenzfälle: Bei 199 muss sie an sein, bei 200 aus, denn 200 ist nicht kleiner als 200.

Definition

Sensorwerte erfassen und auswerten

Ein Sensor liefert immer wieder Messwerte. Das Programm speichert sie in Variablen oder Listen und wertet sie aus: Es bildet den Mittelwert, sucht den größten oder kleinsten Wert oder vergleicht mit einem Grenzwert. Oft rechnet es auch um, zum Beispiel von der Stufennummer zur Temperatur.

Messwerte schwanken. Ein Abstandssensor zeigt bei gleichem Abstand mal 40, mal 41 cm. Manchmal liefert er einen Ausreißer, einen Wert, der weit neben den anderen liegt. Darum misst man mehrmals hintereinander und rechnet mit dem Mittelwert.

Beispiel

Eine Einparkhilfe

Ein Summer soll piepen, wenn der Abstand zur Garagenwand unter 30 cm sinkt. Der Sensor misst fünfmal kurz hintereinander: 41, 5, 43, 40 und 41 cm. Piept der Summer, wenn du jeden Wert einzeln prüfst? Und wenn du den Mittelwert prüfst?

Jeder Wert einzeln: Die 5 ist kleiner als 30, der Summer würde piepen, obwohl das Auto noch etwa 40 cm entfernt ist. Die 5 ist ein Ausreißer.

Mittelwert: 41 + 5 + 43 + 40 + 41 = 170. Es sind 5 Werte, also 170 : 5 = 34 cm. 34 ist nicht kleiner als 30, der Summer bleibt still. Der Mittelwert mildert den Ausreißer, beseitigt ihn aber nicht ganz: Ohne die 5 läge er bei etwa 41 cm.

Häufige Fehler

Ein Taster ist ein Aktor

„Ich drücke den Taster, also tue ich etwas. Er ist ein Aktor.“

Richtig ist

Der Taster meldet dem System etwas: gedrückt oder nicht. Er liefert eine Eingabe und ist deshalb ein Sensor. Ein Aktor ist ein Bauteil, das das System schaltet, etwa eine LED oder ein Motor.

Häufige Fehler

Die Zahl ist der Messwert

„Der Wandler liefert 4, also sind es genau 4 Grad.“

Richtig ist

Die Zahl ist die Nummer einer Stufe, kein Messwert. Erst eine Umrechnung macht daraus eine Temperatur, und sie ist nur so genau wie die Stufe breit ist. Im Beispiel bedeutet Stufe 4: zwischen 20 und 25 °C.

Häufige Fehler

Das Programm läuft einmal

„Das Programm liest den Sensor einmal, schaltet die LED und ist fertig.“

Richtig ist

Dann würde das Nachtlicht nur beim Einschalten prüfen, ob es dunkel ist. Ein Mikrocontroller-Programm wiederholt Lesen, Entscheiden und Schalten für immer, damit das System auf Änderungen reagiert.

Zusammenfassung

  • Ein Sensor misst etwas in der Umgebung und liefert die Eingabe. Ein Aktor wie LED, Summer oder Motor gibt aus.

  • Ein Mikrocontroller ist ein kleiner Computer auf einem Chip. Sein Programm wiederholt meist Lesen, Entscheiden und Schalten für immer. Ein Roboter ist ein Mikrocontroller mit Sensoren und Motoren.

  • Ein AD-Wandler teilt den Messbereich in gleich breite Stufen und gibt die Stufennummer als Zahl aus. Jedes Bit verdoppelt die Zahl der Stufen.

  • Entwickeln heißt: Problem zerlegen, genau festlegen (Spezifikation), bauen und programmieren (Realisierung), testen.

  • Teste auch Grenzfälle, zum Beispiel einen Wert genau auf der Grenze.

  • Messwerte schwanken und haben Ausreißer. Mehrere Messungen und der Mittelwert machen die Auswertung zuverlässiger.

Übungen

Aufgabe 1Multiple Choice

Welches Bauteil ist ein Aktor?

Aufgabe 2Numerisch

Ein AD-Wandler arbeitet mit 4 Bit. Wie viele verschiedene Zahlen kann er ausgeben?

Aufgabe 3Numerisch

Der Messbereich von 0 °C bis 40 °C ist in 8 gleich breite Stufen von je 5 °C geteilt, nummeriert von 0 bis 7. Welche Stufennummer gibt der Wandler bei 33 °C aus?

Aufgabe 4Numerisch

Ein Sensor misst viermal die Raumtemperatur: 22 °C, 24 °C, 21 °C und 25 °C. Wie groß ist der Mittelwert in Grad Celsius?

Aufgabe 5Multiple Choice

Das Nachtlicht schaltet die LED an, wenn der Sensorwert kleiner als 200 ist. Mit welchem Testwert prüfst du den Grenzfall?

Aufgabe 6Freitext

Eine Pflanze soll automatisch gegossen werden, wenn die Erde trocken ist. Beschreibe, welcher Teil Eingabe, Verarbeitung und Ausgabe ist.