#define button 5 // RO-variable, die den Taster den Wert zuweist
int wurfel = 0; // Variable für den Würfel
void setup() { // Setup loop
Serial.begin(9600); // UART init mit Baud 9600
pinMode(button, INPUT_PULLUP); // Taster-Pin als Input
pinMode(11, OUTPUT); // LED-Pins als Output setzen
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
}
void one() {
digitalWrite(9, HIGH); // 1 ausgeben
}
void two() {
digitalWrite(10, HIGH); // 2 ausgeben
}
void three() {
digitalWrite(10, HIGH); // 3 ausgeben
digitalWrite(9, HIGH);
}
void four() {
digitalWrite(10, HIGH); // 4 ausgeben
digitalWrite(8, HIGH);
}
void five() {
digitalWrite(10, HIGH); // 5 ausgeben
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
}
void six() {
digitalWrite(11, HIGH); // 6 ausgeben
digitalWrite(10, HIGH);
digitalWrite(8, HIGH);
}
void loop() { // Main loop
int btnst = !digitalRead(button); // Neue Variable für Zustand des Tasters
if (btnst == 1) { // Wenn Taster-Zustand 1 ist...
digitalWrite(8, LOW); // Alle Outputs auf 0
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
wurfel = wurfel + 1; // Würfelwert um 1 erhöhen
delay(100); // 100ms Geduld
if (wurfel > 6) { // Würfel auf 6 Werte begrenzen
wurfel = 1;
}
} else { // Wenn Taster-Zustand nicht auf 1 ist...
if (wurfel == 1) { // Wenn Würfel-Wert 1 ist...
one(); // 1 ausgeben
} else if (wurfel == 2) { // Wenn Würfel-Wert 2 ist...
two(); // 2 ausgeben
} else if (wurfel == 3) { // Wenn Würfel-Wert 3 ist...
three(); // 3 ausgeben
} else if (wurfel == 4) {
four(); // 4 ausgeben
} else if (wurfel == 5) {
five(); // 5 ausgeben
} else if (wurfel == 6) {
six(); // 6 ausgeben
} else {
Serial.println("drück den fucking button");
}
// Debugging-Ausgabe
Serial.print("w: ");
Serial.print(wurfel);
Serial.print(" b: ");
Serial.print(btnst);
Serial.print(" db: ");
Serial.println(digitalRead(button));
}
}