» » X1 – 04.0 RGB LED

X1 – 04.0 RGB LED

eingetragen in: X1 | 0

 

RGBLED

In dieser Lektion werden wir die RGB-LED programmieren. Mit einer RGB-LED kann man theoretisch alle Farben mischen, wir werden für den X1 jedoch nur die einzelnen LEDs ein und aus schalten, also haben wir 3 Farben und 3 Mischfarben. Dieser Lernkurs ist auch eine gute Wiederholung für die LED und wie wir digitale Pins ansprechen.

Video-Beispiel:

 

Code-Beispiel:

void ledTest(){
//alle Farben nacheinander Ein/Aus
digitalWrite(frontRLedPin, HIGH);
delay(300);
digitalWrite(frontRLedPin, LOW);
delay(300);

digitalWrite(frontGLedPin, HIGH);
delay(300);
digitalWrite(frontGLedPin, LOW);
delay(300);

digitalWrite(frontBLedPin, HIGH);
delay(300);
digitalWrite(frontBLedPin, LOW);
delay(300);

digitalWrite(systemLedPin, HIGH);
delay(300);
digitalWrite(systemLedPin, LOW);
delay(300);
}

 
 
 

Step 1

Zuerst definierst du die Pins, an denen die LED angeschlossen ist. Für jede der 3 Farben RGB (Rot, Grün, Blau) brauchst du einen Pin des Arduino. Wie schon für die Servos machst du das über den #define Befehl. Achte darauf, sie vor dem Servo zu definieren. Das machst du damit du die Pins in der richtigen Reihenfolge von 0-13 hast.

 

 

 

#define frontRLedPin 0
#define frontGLedPin 1
#define frontBLedPin 2

#define systemLedPin 13

 

 

 

 
 
 

Step 2

Im void setup() musst du nun mit den pinMode Befehl die 3 RGB-LED Pins als Ausgänge definieren. Hier kannst du anstatt OUTPUT auch 1 nutzen. Probier es einfach mal aus. Zur besseren Übersicht wirst du jedoch alles mit OUTPUT und INPUT beschreiben.

 

 

 

void setup() {
   pinMode(frontRLedPin, OUTPUT);
   pinMode(frontGLedPin, OUTPUT);
   pinMode(frontBLedPin, OUTPUT);

   pinMode(systemLedPin, OUTPUT);
}

 

 

 

 
 
 

Step 3

Nun erstellst du wieder eine Funktion mit void ledTest(). In die geschweiften Klammern kommt jetzt wieder der Code um die LEDs ein und aus zu schalten. digitalWrite() schickt 5V auf den LED Pin. Das delay lässt die LED 300ms an. Danach schaltest du die LED wieder aus. Darauf schreibst du wieder ein delay, damit die nächste LED nicht sofort an geht. Jetzt wiederholst du das ganze für alle anderen LEDs.

 

 

 

void ledTest(){
   digitalWrite(frontRLedPin, HIGH);
   delay(300);
   digitalWrite(frontRLedPin, LOW);
   delay(300);

  ...
}

 

 

 

 
 
 

Step 4

Jetzt kannst du im void loop(), falls noch vorhanden, die laufVor() Funktion entfernen und die ledTest() Funktion einfügen. Hier zeigt sich der Vorteil von Funktionen, da du keinen Code aus kommentieren oder löschen musst. Wenn du jetzt möchtest, dass dein X1 diesen ledTest() nur einmal beim Start macht kannst du die Funktion auch an das Ende von void setup() schreiben. Probiere einfach ein wenig herum.

 

 

 

void loop() {
   ledTest();
}

 

 

 

 

Fazit

Du hast in dieser Lektion deine RGB LED und systemLED getestet. Außerdem hast du einen großen Vorteil von Funktionen kennengelernt. In der nächsten Lektion wirst du eine ganz neue Möglichkeit lernen, wie du mit dem Arduino kommunizieren kannst.
 
 
 

Bitte hinterlasse eine Antwort