// Pin-Zuweisung
int redPin = 9; // R-Pin
int greenPin = 10; // G-Pin
int bluePin = 11; // B-Pin
int buttonPin = 2; // Taster-Pin
// Variablen
int ledMode = 0; // LED-Farbmodus (0 = Rot, 1 = Grün, 2 = Blau)
bool buttonState = false; // Zustand des Tasters
bool lastButtonState = false;
void setup() {
// Pin-Modi festlegen
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // Taster mit internem Pull-Up
// Initiale LED-Farbe
setColor(255, 0, 0); // Rot starten
}
void loop() {
// Tasterzustand lesen
buttonState = digitalRead(buttonPin);
// Prüfen, ob der Taster gedrückt wurde (Fallender Flankenwechsel)
if (lastButtonState && !buttonState) {
ledMode = (ledMode + 1) % 3; // Farbmodus wechseln
changeColor(ledMode); // Neue Farbe setzen
delay(200); // Entprellung
}
lastButtonState = buttonState; // Tasterzustand speichern
}
// Funktion, um die LED-Farbe zu ändern
void changeColor(int mode) {
if (mode == 0) {
setColor(255, 0, 0); // Rot
} else if (mode == 1) {
setColor(0, 255, 0); // Grün
} else if (mode == 2) {
setColor(0, 0, 255); // Blau
}
}
// Funktion, um RGB-Werte zu setzen
void setColor(int red, int green, int blue) {
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}