//definiramo niz pinova na koje ćemo spojiti ledice int ledice[6]={2,3,4,5,6,7} // pin na koji povezujemo dugme (internal pullup) int dugme = 0; //indikator int aktivno = 0; void setup() { // argument OUTPUT stavljamo na sve ledice for (int i=ledice[0]; i<=ledice[5]; i++) { pinMode(i, OUTPUT); } // argument za dugme stavljamo na INPUT_PULLUP (koristimo otpornik pločice) pinMode(dugme, INPUT_PULLUP); Serial.begin(9600); } void sekvencija() { //dok čekamo pritisak dugmeta palimo ledice u nizu s jedne strane na drugu for (int i=ledice[0]; i<=ledice[5]; i++) { if (i!=ledice[0]) { digitalWrite(i-1, LOW); } digitalWrite(i, HIGH); delay(100); } for (int i=ledice[5]; i>=ledice[0]; i--) { if (i!=ledice[5]) { digitalWrite(i+1, LOW); } digitalWrite(i, HIGH); delay(100); } } void prikaziBroj(int broj) { digitalWrite(ledice[0], HIGH); if (broj >= 2) { digitalWrite(ledice[1], HIGH); } if (broj >= 3) { digitalWrite(ledice[2], HIGH); } if (broj >= 4) { digitalWrite(ledice[3], HIGH); } if (broj >= 5) { digitalWrite(ledice[4], HIGH); } if (broj == 6) { digitalWrite(ledice[5], HIGH); } } int generirajBroj() { // dohvati slučajni broj u rasponu [1,6] int randbroj = random(1,7); return randbroj; } void postaviLedice(int A) { for (int i=ledice[0]; i<=ledice[5]; i++) { digitalWrite(i, A); } } void loop() { // ako je dugme pritisnuto "baci kocku" aktivno = digitalRead(dugme); if (aktivno == HIGH) { postaviLedice(LOW); sekvencija(); int generiraniBroj = generirajBroj(); prikaziBroj(generiraniBroj); } }