
Programmierung eines Ampelsystems: Einführung

Upgrade für mehr Inhalte
True or false? A LED can be programmed.
Mist, wie lange muss Lina denn noch an der Ampel stehen? Die Ampel scheint ewig rot zu sein! Lina fragt sich: Wie funktioniert so eine Ampel eigentlich genau? Vielleicht so? Grün ...
gelb ... rot ... gelb ... grün ... gelb ...
rot ... Ein Bus kommt: Geh auf Grün! Wohl eher nicht. Dennoch kommt das der Wirklichkeit schon sehr nahe: Etwas entscheidet, wann die Lichter angehen oder ausgehen, und erkennt außerdem ankommende Busse. Das tun natürlich keine kleinen Wesen, sondern etwas, das man programmieren kann.
Nutzen wir zum Programmieren einen Mikrocontroller. LEDs sind dann die Ampellichter. Um alle diese Elemente zu verbinden, brauchst du Drähte – und Strom, damit eine LED leuchten kann. Für den Strom benötigst du einen geschlossenen Stromkreis mit einem positiven Pluspol und einem negativen Minuspol, damit sich die Elektronen bewegen wollen. Mit dem Mikrocontroller kannst du den Strom zur LED leiten.
Schau dir den Mikrocontroller nun mal genauer an. Er hat zwei Tasten: A und B. Es gibt Pins mit Namen wie: 0, 1, 2, 3V und GND. Jeder Pin hat ein Loch. Damit lassen sich Drähte mit Hilfe von Krokodilklemmen oder Bananensteckern verbinden.
Um Strom zu erzeugen, braucht man Spannung. Und Spannung misst man in Volt. Aha, 3 V steht also für 3 Volt. Das ist der Pluspol des Mikrocontrollers. Und was bedeutet GND?
Es ist die Abkürzung des englischen Worts "Ground" für Boden. Das ist der Minuspol des Mikrocontrollers. Eine LED hat zwei Stifte: einer länger, der andere kürzer. Verbinde diesen Stift mit dem Pluspol. Jetzt fließt Strom und die LED leuchtet auf.
Biege nun die Stifte der LED vorsichtig auseinander, so dass nicht beide Stifte mit dem Pluspol verbunden sind. Sonst geht der Strom den kürzesten Weg, und es kommt zu einem Kurzschluss – von einem Stift zum anderen. Verbinde einen Draht vom kurzen Stift der LED mit dem Minuspol des Mikrocontrollers. So, nun ist der Stromkreis geschlossen. Die LED leuchtet auf.
Wie stark sie leuchtet, hängt von der Spannung ab. Hier sind es jetzt 3 Volt. Eine zu hohe Spannung macht die LED kaputt, da der Strom, der durch die LED fließt, dann zu stark ist. Um den Strom zu reduzieren, schaltet man einen Widerstand in Reihe mit der LED. Da es sich hier um eine 3 Volt LED handelt und dieser Mikrocontroller mit 3 Volt arbeitet, besteht keine Gefahr.
Die LED leuchtet nun, solange der Stromkreis geschlossen ist. Für eine Ampel reicht das aber nicht aus: Ein Licht, das immer leuchtet? Dann würde die Ampel ja nur auf Rot stehen! Es ist wichtig, dass du steuern kannst, wann die LED leuchtet oder nicht. Programmiere den Mikrocontroller so, dass er den Stromkreis öffnet und schließt.
Verbinde das Kabel am langen Stift der LED mit einem der nummerierten Pins. Man kann diese Pins so programmieren, dass sie den Stromkreis schließen oder öffnen. Nutze z. B. den Pin Null.
Führe das Pluskabel also von 3 V zu Null. Zuerst erklärst du dem Mikrocontroller in kleinen Schritten, was er tun soll. Das nennt man einen Pseudocode, der später in einen Programmiercode übersetzt wird. Der Mikrocontroller soll dann Folgendes tun: "LED anschalten" "Pause" "LED ausschalten" "Pause" "LED anschalten" und so weiter... Willst du beim Programmieren etwas wiederholen, verwende eine Schleife.
Eine Schleife wird so lange ausgeführt, wie eine bestimmte Bedingung erfüllt ist. Wenn eine Schleife nie enden soll, muss die Bedingung immer wahr sein. Zum Beispiel: "Solange zwei größer ist als eins." Du fügst also eine "While"-Zeile "Solange die Bedingung erfüllt ist" über den vorher geschriebenen Pseudocode ein. Damit klar ist, welche Zeilen zur Schleife gehören, tabelliere die Zeilen unter der While-Zeile wie folgt: Nun kannst du diesen Pseudocode in einen Programmiercode umschreiben. Los geht's!