Menu
CoddyTech

Regenbogen-Farbzyklus

Teil des Abschnitts Ausgaben der Arduino-Journey von Coddy. Lektion 8 von 24.

Für jede Farbe sind drei digitalWrite()-Zeilen nötig. Eine Folge aus sechs Farben würde 18 davon benötigen, und man verwechselt leicht, welche Zeile zu welcher gehört.

Mit einer Funktion geht es kürzer. setColor() nimmt für jede Farbe einen Wert entgegen und schreibt alle drei Pins:

void setColor(int red, int green, int blue) {
  digitalWrite(redPin, red);
  digitalWrite(greenPin, green);
  digitalWrite(bluePin, blue);
}

Jetzt ist jede Farbe eine Zeile, und ihre drei Werte lesen sich wie ein Rezept:

setColor(HIGH, HIGH, LOW);  // gelb
delay(500);

HIGH und LOW sind die Zahlen 1 und 0 und passen daher in einen int-Parameter. Behalte die Parameter in derselben Reihenfolge bei, in der du sie übergibst: red, green, blue.

challenge icon

Aufgabe

Einfach

Schreibe setColor() und verwende es, um einen Regenbogen zu zeigen, eine halbe Sekunde pro Farbe, immer wieder:

  1. rot
  2. gelb
  3. grün
  4. cyan
  5. blau
  6. magenta

Drücke Run und dann Check.

Probier es selbst

const int redPin = 11;
const int greenPin = 10;
const int bluePin = 9;

void setup() {
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

void setColor(int red, int green, int blue) {
  // Schreibe jeden Wert an den zugehörigen Pin
}

void loop() {
  setColor(HIGH, LOW, LOW);  // Rot
  delay(500);
  // dann Gelb, Grün, Cyan, Blau und Magenta
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Ausgaben

Übe selbstständig: Arduino-Playground