// Piny pre LED diódy (D1 až D9)
const int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};
// Pin pre tlačidlo
const int buttonPin = 11;
// Premenné
bool rolling = false;
unsigned long lastRollTime = 0;
const int rollInterval = 100;
void setup() {
// Nastavenie LED pinov ako výstupy
for (int i = 0; i < 9; i++) {
pinMode(ledPins[i], OUTPUT);
}
// Nastavenie tlačidla ako vstup s pull-up rezistorom
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
static int lastButtonState = HIGH;
static int currentFace = 1;
// Čítanie tlačidla
int buttonState = digitalRead(buttonPin);
if (buttonState == LOW && lastButtonState == HIGH) {
rolling = !rolling;
delay(200);
}
lastButtonState = buttonState;
// Ak sa má kocka "točiť"
if (rolling && millis() - lastRollTime > rollInterval) {
lastRollTime = millis();
currentFace = random(1, 7); // Náhodné číslo od 1 do 6
showNumber(currentFace);
}
}
void showNumber(int number) {
// Vypnutie všetkých LED
for (int i = 0; i < 9; i++) {
digitalWrite(ledPins[i], LOW);
}
// Zapnutie LED podľa čísla
switch (number) {
case 1: digitalWrite(ledPins[4], HIGH); break; // Stredná LED (D5)
case 2: digitalWrite(ledPins[0], HIGH); digitalWrite(ledPins[8], HIGH); break; // D1, D9
case 3: digitalWrite(ledPins[0], HIGH); digitalWrite(ledPins[4], HIGH); digitalWrite(ledPins[8], HIGH); break; // D1, D5, D9
case 4: digitalWrite(ledPins[0], HIGH); digitalWrite(ledPins[2], HIGH); digitalWrite(ledPins[6], HIGH); digitalWrite(ledPins[8], HIGH); break; // D1, D3, D7, D9
case 5: digitalWrite(ledPins[0], HIGH); digitalWrite(ledPins[2], HIGH); digitalWrite(ledPins[4], HIGH); digitalWrite(ledPins[6], HIGH); digitalWrite(ledPins[8], HIGH); break; // D1, D3, D5, D7, D9
case 6: digitalWrite(ledPins[0], HIGH); digitalWrite(ledPins[2], HIGH); digitalWrite(ledPins[3], HIGH); digitalWrite(ledPins[5], HIGH); digitalWrite(ledPins[6], HIGH); digitalWrite(ledPins[8], HIGH); break; // D1, D3, D4, D6, D7, D9
}
}