const int redPin = 11; // Pin für den roten Teil der RGB-LED
const int greenPin = 10; // Pin für den grünen Teil der RGB-LED
const int bluePin = 9; // Pin für den blauen Teil der RGB-LED
void setup() {
Serial.begin(9600); // Startet die serielle Kommunikation mit einer Baudrate von 9600
pinMode(redPin, OUTPUT); // Setzt den roten Pin als Ausgang
pinMode(greenPin, OUTPUT); // Setzt den grünen Pin als Ausgang
pinMode(bluePin, OUTPUT); // Setzt den blauen Pin als Ausgang
Serial.println("Hello, trage die Werte ein");
}
void loop() {
if (Serial.available() > 0) { // Prüft, ob Daten im Serial Monitor verfügbar sind
String input = Serial.readString(); // Liest die Eingabe als String
processInput(input); // Verarbeitet die Eingabe
}
}
void processInput(String input) {
// Trennt den Eingabestring in seine RGB-Komponenten
int redValue = getValue(input, 'R');
int greenValue = getValue(input, 'G');
int blueValue = getValue(input, 'B');
// Setzt die Werte für die RGB-LED
analogWrite(redPin, redValue);
analogWrite(greenPin, greenValue);
analogWrite(bluePin, blueValue);
// Gibt die eingestellten Werte zurück an den Serial Monitor
Serial.print("Red: ");
Serial.print(redValue);
Serial.print(", Green: ");
Serial.print(greenValue);
Serial.print(", Blue: ");
Serial.println(blueValue);
}
int getValue(String input, char color) {
int colorIndex = input.indexOf(color); // Findet den Index des Farbsymbols
if (colorIndex != -1) {
int endIndex = input.indexOf(' ', colorIndex); // Findet das Ende der Zahl
if (endIndex == -1) {
endIndex = input.length();
}
String valueString = input.substring(colorIndex + 1, endIndex); // Extrahiert die Zahl als String
return valueString.toInt(); // Wandelt den String in eine Ganzzahl um
}
return 0; // Gibt 0 zurück, wenn die Farbe nicht gefunden wurde
}