» » X1 – 04.0 RGB LED

X1 – 04.0 RGB LED

eingetragen in: X1-lernkurs | 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);
}

 
 
 

Schritt 1

Zuerst definieren wir die Pins, an denen die LED angeschlossen sind. Für jede der 3 Farben RGB (Rot, Grün, Blau) wird ein Pin des Arduino benötigt. Wie schon in Lektion X1 - 02.1 gelernt nutzen wir dafür den #define Befehl. Hierbei achten wir darauf die LED vor den Servo zu definieren, damit die Pins in korrekter Reihenfolge 0-13 im Code stehen.

 

 

 

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

#define systemLedPin 13

 

 

 

 
 
 

Schritt 2

Im void setup() definieren wir den Modus fest in dem der Pin arbeiten soll. Mit pinMode legen wir die Pins an denen eine LED angeschlossen ist als Ausgang(OUTPUT) fest. Hier könntest du anstatt OUTPUT auch 1 verwenden um den Modus einzustellen. Probier es einfach mal aus. Der Übersicht halber werden wir jedoch alles mit OUTPUT und INPUT beschreiben.

 

 

 

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

   pinMode(systemLedPin, OUTPUT);
}

 

 

 

 
 
 

Schritt 3

In diesem Schritt wenden wir die aus der vorherigen Lektion bekannte Funktion an. Wir erstellen eine Funktion mit dem Namen ledTest(). In die geschweiften Klammern gehört der Code um die LED ein- und auszuschalten. Der Befehl digitalWrite() schickt eine Spannung in höhe von 5V auf den genannten Pin. Das ist in unserem Beispiel der Pin für die rote LED.

Der Code im Beispiel bewirkt, dass die rote LED angeschaltet und nach 300ms Verzögerung ausgeschaltet wird. Nach dem Befehl die LED auszuschalten ist ein weiterer delay der dafür sorgt, dass die LED nicht direkt wieder an geht. Dieser Prozess wird für alle anderen LED wiederholt.

 

 

 

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

  ...
}

 

 

 

 
 
 

Schritt 4

Spätestens in diesem Schritt macht sich der Vorteil einer Funktion bemerkbar. Wir nehmen die aus der vorherigen Lektion vorhandene laufVor() Funktion aus der void loop() raus und fügen an ihrer Stelle die ledTest() Funktion ein. Wenn dieser ledTest() nur einmal beim Start ausgeführt werden soll setzen wir die Funktion an das Ende von void setup().

Unser Vorschlag: Probier es einfach aus.

 

 

 

void loop() {
   ledTest();
}

 

 

 

 

Fazit

Du hast in dieser Lektion die RGB LED und systemLED deines X1-Roboter aktiviert und getestet. Du hast außerdem gelernt wie nützlich Funktionen sind und wie du sie beim Experimentieren und Testen zu deinem Vorteil verwenden kannst. In der nächsten Lektion wirst du eine neue Möglichkeit entdecken mit dem Arduino zu kommunizieren. 
 
 
 

Bitte hinterlasse eine Antwort