int r = 11; //pins für die rgb led
int g = 10;
int b = 9;
int red, green, blue; //variable für die farben
String eingabe; // variable für die KonsoleneingabeString
void setup() {
pinMode(r,OUTPUT); //die pins als output gesetzt
pinMode(g, OUTPUT);
pinMode(b, OUTPUT);
Serial.begin(9600); //Baudrate
Serial.print("Eingabe: "); //Beim Start wird direkt "Eingabe: " geprinted
}
void farbe(int red, int green, int blue) { //eigene Methode für das Wechseln der Farbe, die die RGB Werte bekommt
analogWrite(r, red); //wechselt den wert der einzelnen pins, um die farbe zu ändern
analogWrite(g, green);
analogWrite(b, blue);
}
void brightness (int helligkeit, int r, int g, int b) {
analogWrite(r, helligkeit);
analogWrite(g, helligkeit);
analogWrite(b, helligkeit);
}
void loop() {
if (Serial.available() > 0) { //wartet bis Zeichen vorhanden sind
if(Serial.read() == '!') { //liest ab dem Startzeichen "!"
String modus = Serial.readStringUntil(';');
if (modus == "color") {
String rot = Serial.readStringUntil(';'); //die einzelnen RGB Werte werden bis zum ; gelesen und in eine separate Variable gespeichert
String gruen = Serial.readStringUntil(';');
String blau = Serial.readStringUntil(';');
red = rot.toInt(); //die eingelesenen Werte werden von Strings zu int umgewandelt
green = gruen.toInt();
blue = blau.toInt();
farbe(red, green, blue); //die farbe Methode wird aufgerufen und die RGB Werte werden übergebens
}
else if (modus == "weiss") {
String helligkeit = Serial.readStringUntil(';');
brightness(helligkeit.toInt(), 11, 10, 9);
}
}
}
}