
Programmierung eines Ampelsystems: Wechsel der Lichter

Upgrade für mehr Inhalte
True or false? Yellow light means go.
Das ist eine Ampel. Sie regelt den Verkehr an einer Kreuzung. Rot für Stopp, Grün für Losfahren und ein gelbes Licht, das anzeigt, dass die Ampel von Rot auf Grün oder von Grün auf Rot schaltet. Jetzt bauen wir unsere eigene Ampel. Dafür brauchen wir ein paar Teile: Einen Mikrocontroller, den wir programmieren, um die Ampel zu steuern.
LEDs, die rot, grün und gelb leuchten. Ein paar Kabel, um alle Teile miteinander zu verbinden. Sobald wir alle Teile haben, können wir anfangen. Zuerst nehmen wir eine rote LED. Die sieht so aus.
Sie hat zwei Beine, eins etwas länger und eins kürzer. Biege sie so hier vorsichtig auseinander und verbinde das lange Bein mit einem der positiven Pole des Mikrocontrollers. Wir wählen Anschluss oder Pin Null für die rote LED aus. Verbinde die gelbe LED mit Pin Eins. Und die grüne LED mit Pin Zwei.
Verbinde das kurze Bein jeder LED mit einem Kabel mit dem Minuspol. Bis jetzt leuchtet keine der Dioden. Das liegt daran, dass die Schaltkreise noch offen sind. Jetzt programmieren wir den Mikrocontroller, sodass wir steuern können, wann er den Stromkreis schließt und öffnet. Die Lichter einer Ampel gehen in einer bestimmten Reihenfolge an und aus: Rot, Gelb, Grün, Gelb und so weiter.
Jetzt formulieren wir klare Anweisungen, wie die Ampel funktionieren soll. Die Anweisungen oder der Algorithmus sollten lauten: Schalte Rot an, schalte Gelb an, schalte Grün an schalte ... Oh, jetzt sind alle Ampellichter an. Was ist schiefgegangen? Offensichtlich müssen wir den Algorithmus ein bisschen ausbessern.
Halte das Video an und überlege, was bei den Anweisungen fehlt. Wir haben keine Anweisungen erteilt, wann ein Licht ausgehen soll. Am Ende waren alle drei Lichter gleichzeitig an. Passen wir den Algorithmus an: Schalte Rot an, schalte Rot aus und Gelb an, schalte Gelb aus und Grün an, schalte Grün aus und Gelb an, schalte Gelb aus und wiederhole. Überprüfen wir unseren Algorithmus. Ja!
Die Lichter leuchten nicht alle gleichzeitig. Aber jetzt wechselt die Ampel die Farben sehr schnell. Kein Bus hat Zeit loszufahren, bevor sie wieder Rot wird. Halte das Video an und überlege, wie der Algorithmus verbessert werden kann. Wir sagen nichts darüber aus, wie lang jede Farbe an sein soll.
Neue Version des Algorithmus' mit Pausen zwischen dem Wechsel der Farben. Füge hinzu: Drei Sekunden Pause hier, sodass diejenigen, die die Straße überqueren wollen, das auch schaffen. Eine Sekunde hier, während Gelb ist, damit alle bereit sind. Drei Sekunden hier, damit der Bus Zeit hat, über die Kreuzung zu fahren. Und eine Sekunde hier.
Versuch's noch mal. Ja, das funktioniert wirklich gut. Der Pseudocode ist fast fertig. Wie können diese Anweisungen, unseren Algorithmus, als Grundlage für die Programmierung nutzen. Aber warte mal, endet der Pseudocode hier einfach so?
Nach Grün und Gelb schalten wir wieder auf Rot? Nein, das brauchen wir nicht. Wir haben "wiederhole" geschrieben. Es ist eine Schleife. Eine Schleife in einem Programm lässt einen Teil des Programms ablaufen, solange eine bestimmte Bedingung erfüllt ist.
Wir wollen, dass die Ampel immer an ist, also sollte die Schleife durchlaufen. Deshalb setzen wir eine Bedienung, die immer wahr ist. Nimm "1 = 1". Solange das stimmt, läuft unsere Schleife. Um zu kennzeichnen, welche Reihen zur Schleife gehören, fügen wir wie hier in diesen Zeilen Tabulatoren ein.
Okay, jetzt haben wir den Pseudocode geschrieben, sodass es nun an dir ist, die Ampel zu programmieren.