#define ledB 9
#define ledG 10
#define ledR 11
float Zeit = 0;
String test; // muss Global sein, damit der Text gespeichert bleibt (länger als ein Durchlauf von loop)
void setup() {
Serial.begin(9600);
pinMode(ledB, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(ledR, OUTPUT);
Serial.println("Eingabe:");
}
void Regenbogen()
{
Serial.println("ON");
analogWrite(ledR, 255);
analogWrite(ledG, 0);
analogWrite(ledB, 0);
Serial.print("Farbe=Rot ");
Serial.print("Zeit:");
Serial.print(Zeit += 0.4);
Serial.println("s");
delay(400);
analogWrite(ledR, 255);
analogWrite(ledG, 165);
analogWrite(ledB, 0);
Serial.print("Farbe=Orange ");
Serial.print("Zeit:");
Serial.print(Zeit += 0.4);
Serial.println("s");
delay(400);
analogWrite(ledR, 255);
analogWrite(ledG, 255);
analogWrite(ledB, 0);
Serial.print("Farbe=Gelb ");
Serial.print("Zeit:");
Serial.print(Zeit += 0.4);
Serial.println("s");
delay(400);
analogWrite(ledR, 0);
analogWrite(ledG, 255);
analogWrite(ledB, 0);
Serial.print("Farbe=Grün ");
Serial.print("Zeit:");
Serial.print(Zeit += 0.4);
Serial.println("s");
delay(400);
analogWrite(ledR, 0);
analogWrite(ledG, 255);
analogWrite(ledB, 255);
Serial.print("Farbe=Cyan ");
Serial.print("Zeit:");
Serial.print(Zeit += 0.4);
Serial.println("s");
delay(400);
analogWrite(ledR, 0);
analogWrite(ledG, 0);
analogWrite(ledB, 255);
Serial.print("Farbe=Blau ");
Serial.print("Zeit:");
Serial.print(Zeit += 0.4);
Serial.println("s");
delay(400);
analogWrite(ledR, 160);
analogWrite(ledG, 32);
analogWrite(ledB, 240);
Serial.print("Farbe=Violett ");
Serial.print("Zeit:");
Serial.print(Zeit += 0.4);
Serial.println("s");
delay(400);
}
void loop()
{
if (Serial.available() > 0) // wenn ein Zeichen empfangen wird geht das Programm in die Schleife
{
test = Serial.readString(); // liest die eingehenden Information gespeichert im string test
test.trim(); // entfernt escape sequenzen
if (test == "ON") // Wenn eingabe ON erfolgt, Regenbogen Programm wird durchlaufen
{
Regenbogen();
}
else if (test == "OFF") // andernfalls bei OFF wird die Zeit zurückgesetzt und alle leds auf 0 gesetzt
{
Zeit = 0;
analogWrite(ledR, 0);
analogWrite(ledG, 0);
analogWrite(ledB, 0);
Serial.println("OFF");
}
}
}