Calliope mini - Spaß durch Programmieren

Entwicklungsumgebungen

Farbenspiele

Ziel: Die RGB-LED wechselt kontinuierlich ihre Farben. Das sieht schön aus!

Die RGB-LED hat in ihrem Innern drei einzeln ansteuerbare LED in den Farben Rot, Grün und Blau. Die Helligkeit jeder Farbe kann unabhängig gesteuert werden, so dass sich eine Unmenge von verschiedenen Farben mischen lassen.

Die Helligkeit jeder LED kann in Zahlen zwischen 0 (aus) bis 255 (ganz hell) angegebebn werden. Sind alle drei LED voll an, erscheint sie uns in der Farbe weiß.

Eine Farbe geht aus.

Als erstes soll die LED in weiß leuchten und die eine der drei Farben soll langsam dunkler werden.

Für die drei Farbwerte werden drei Variablen erzeugt und diese gleich auf volles Licht, also 255, gesetzt. Dann wird die LED mit diesen drei Helligkeitswerten angesteuert, sie leuchtet weiß. Der weiß-Wert in dem Programmblock muss nicht gesetzt werden.

Danach wird der Anteil des roten Lichtes in Einerschritten bis auf Null verkleinert und die neuen Farbwerte jeweils an die LED gegeben. Damit man überhaupt einen Effekt sieht, muss nach jedem Schritt gewartet werden.

Am Ende leuchtet die LED in Cyan, da nur noch Grün und Blau angeschaltet sind.

Aufgabe: Ändere das Programm so, dass die blaue oder die grüne LED ihre Helligkeiten ändern. Welche Farben entstehen jetzt am Ende der Schleife?

Eine Funktion für einen halben Farbwechsel

Will man nun mehrere Farbwechsel hintereinander durchführen, wird das Programm sehr lang und damit unübersichtlich. Deshalb lagert man Programmteile, die mehrmals verwendet werden, aus und nennt diesen Programmteil dann Funktion. Eine Funktion hat einen eindeutigen, frei wählbaren Namen und wird über diesen aufgerufen.

Es soll eine Funktion geschrieben werden, die die rote LED langsam ausgehen lässt. Der Name der Funktion ist rot_aus. Und genau mit diesem Namen wird sie aufgerufen.

Die Funktion enthält den gesamten Block zum Runterfahren der Rothelligkeit und wird im Hauptprogramm über ihren Namen aufgerufen.

Zwei Funktionen für einen ganzen Farbwechsel

Aufgabe: Schreibe eine zweite Funktion mit dem Namen rot_an, die die rote LED wieder angehen läßt. Im Hauptprogramm wird jetzt die rote LED im Wechsel aus- und angeschaltet. Die Wartezeit wird durch eine weitere Variable festgelegt.

Sechs Funktionen für drei Farbwechsel

Um bei großen Programmen den Überblick zu behalten, können fertige Blöcke zusammengefaltet werden. Sie sind dann noch komplett da, nehmen aber nur noch eine Zeile auf dem Bildschirm ein.

Aufgabe: Falte die beiden Funktionen zusammen.

Es soll nun ein komplettes Farbenspiel programmiert werden. Dazu muss jede Farbe an- und ausgeschaltet werden können.

Aufgabe: Schreibe vier weitere Funktionen: gruen_an, gruen_aus, blau_an, blau_aus. Nutze dabei unbedingt die Kopieren-Funktion (Rechte Maustaste!)

Der Hauptteil des Programmes sieht dann so aus:

Eine Funktionen für alle Farbwechsel

Die Funktionen ähneln sich im Aufbau. Deshalb ist es sinnvoll, das Ein- und Ausschalten der LED von einer einzigen Funktion machen zu lassen. Der Funktion muss dann immer nur die jeweilige Farbe und das gewünschte Ereignis zu übergeben.

1. Schritt: Auswahl der Farbe bei Einschalten.

Der neuen Funktion wird als erstes in Form einer Zeichenkette die Farbe ?bergeben, die geschaltet werden soll. Damit werden aus den sechs Funktionen nur noch vier.

2. Schritt: An und Aus werden als Text in ereignis ?bergeben. Zu Beginn der Funktion wird dann eine Variable schritt aus 1 oder -1 gesetzt. Die Anweisung erh?he... nutzt diese Variable.

Eine Farbe geht aus.

Als erstes soll die LED in weiß leuchten und die eine der drei Farben soll langsam dunkler werden.

Für die drei Farbwerte werden drei Variablen erzeugt und diese gleich auf volles Licht, also 255, gesetzt. Dann wird die LED mit diesen drei Helligkeitswerten angesteuert, sie leuchtet weiß. Der weiß-Wert in dem Programmblock muss nicht gesetzt werden.

Danach wird der Anteil des roten Lichtes in Einerschritten bis auf Null verkleinert und die neuen Farbwerte jeweils an die LED gegeben. Damit man überhaupt einen Effekt sieht, muss nach jedem Schritt gewartet werden.

Am Ende leuchtet die LED in Cyan, da nur noch Grün und Blau angeschaltet sind.

Aufgabe: Ändere das Programm so, dass die blaue oder die grüne LED ihre Helligkeiten ändern. Welche Farben entstehen jetzt am Ende der Schleife?

Eine Funktion für einen halben Farbwechsel

Will man nun mehrere Farbwechsel hintereinander durchführen, wird das Programm sehr lang und damit unübersichtlich. Deshalb lagert man Programmteile, die mehrmals verwendet werden, aus und nennt diesen Programmteil dann Funktion. Eine Funktion hat einen eindeutigen, frei wählbaren Namen und wird über diesen aufgerufen.

Es soll eine Funktion geschrieben werden, die die rote LED langsam ausgehen lässt. Der Name der Funktion ist rot_aus. Und genau mit diesem Namen wird sie aufgerufen.

Die Funktion enthält den gesamten Block zum Runterfahren der Rothelligkeit und wird im Hauptprogramm über ihren Namen aufgerufen.

Zwei Funktionen für einen ganzen Farbwechsel

Aufgabe: Schreibe eine zweite Funktion mit dem Namen rot_an, die die rote LED wieder angehen läßt. Im Hauptprogramm wird jetzt die rote LED im Wechsel aus- und angeschaltet. Die Wartezeit wird durch eine weitere Variable festgelegt.

Sechs Funktionen für drei Farbwechsel

Um bei großen Programmen den Überblick zu behalten, können fertige Blöcke zusammengefaltet werden. Sie sind dann noch komplett da, nehmen aber nur noch eine Zeile auf dem Bildschirm ein.

Aufgabe: Falte die beiden Funktionen zusammen.

Es soll nun ein komplettes Farbenspiel programmiert werden. Dazu muss jede Farbe an- und ausgeschaltet werden können.

Aufgabe: Schreibe vier weitere Funktionen: gruen_an, gruen_aus, blau_an, blau_aus. Nutze dabei unbedingt die Kopieren-Funktion (Rechte Maustaste!)

Der Hauptteil des Programmes sieht dann so aus:

Eine Funktionen für alle Farbwechsel

Die Funktionen ähneln sich im Aufbau. Deshalb ist es sinnvoll, das Ein- und Ausschalten der LED von einer einzigen Funktion machen zu lassen. Der Funktion muss dann immer nur die jeweilige Farbe und das gewünschte Ereignis zu übergeben.

1. Schritt: Auswahl der Farbe bei Einschalten.

Der neuen Funktion wird als erstes in Form einer Zeichenkette die Farbe ?bergeben, die geschaltet werden soll. Damit werden aus den sechs Funktionen nur noch vier.

2. Schritt: An und Aus werden als Text in ereignis ?bergeben. Zu Beginn der Funktion wird dann eine Variable schritt aus 1 oder -1 gesetzt. Die Anweisung erh?he... nutzt diese Variable.

zurück