Elektronička kockica

Zadatak

Na mikrokontroler spojite sedam svjetlećih dioda i jedno tipkalo. Svjetleće diode spojite tako da izgledaju kao točkice na kockici za igre na sreću. Napišite program koji će na svjetlećim diodama prikazivati brojeve od 1 do 6 kako su oni inače prikazani na kockici. Promjena i nasumičnost brojeva postiže se na način da dok korisnik drži tipkalo program odbrojava od 1 do 6 velikom brzinom i prikazuje to na svjetlećim diodama. Kada korisnik otpusti tipkalo brojanje se zaustavlja i posljednji broj ostaje prikazan na svjetlećim diodama. Sljedeća slika prikazuje kombinacije mogućih dobivenih brojeva.

Prikaz spajanja

Arduino kod


int led1 = 6;                      //definiraj led1 = 6
int led2 = 7;                      //definiraj led2 = 7
int led3 = 8;                      //definiraj led3 = 8
int led4 = 9;                      //definiraj led4 = 9
int led5 = 10;                      //definiraj led5 = 10
int led6 = 11;                      //definiraj led6 = 11
int led7 = 12;                      //definiraj led7 = 12
int tipkalo = 13;                   //definiraj tipkalo = 13
int brojac = 0;                    //definiraj brojač = 0

void setup() {
  pinMode(led1, OUTPUT);           //postavi izvod led1 kao izlazni
  pinMode(led2, OUTPUT);           //postavi izvod led2 kao izlazni
  pinMode(led3, OUTPUT);           //postavi izvod led3 kao izlazni
  pinMode(led4, OUTPUT);           //postavi izvod led1 kao izlazni
  pinMode(led5, OUTPUT);           //postavi izvod led2 kao izlazni
  pinMode(led6, OUTPUT);           //postavi izvod led3 kao izlazni
  pinMode(led7, OUTPUT);           //postavi izvod led3 kao izlazni
  pinMode(tipkalo, INPUT_PULLUP);  //postavi izvod tipkalo kao ulazni
}

void iskljucisveled() {
  digitalWrite(led1, LOW);         //isključi LED diodu 1
  digitalWrite(led2, LOW);         //isključi LED diodu 2
  digitalWrite(led3, LOW);         //isključi LED diodu 3
  digitalWrite(led4, LOW);         //isključi LED diodu 4
  digitalWrite(led5, LOW);         //isključi LED diodu 5
  digitalWrite(led6, LOW);         //isključi LED diodu 6
  digitalWrite(led7, LOW);         //isključi LED diodu 7
}

void loop() {
  if (digitalRead(tipkalo) == LOW) { //ukoliko je tipkalo pritisnuto
    brojac = brojac + 1;           //dodaj 1 na brojač
    if (brojac > 6) {              //ako je brojač veći od 6
      brojac = 1;                  //vrati brojač na 1
    }
  }

  if (brojac == 1) {               //ukoliko je brojač = 1
    iskljucisveled();              //isključi sve LED diode
    digitalWrite(led4, HIGH);      //prikaz broja 1
  } else if (brojac == 2) {        //ukoliko je brojač = 2
    iskljucisveled();              //isključi sve LED diode
    digitalWrite(led1, HIGH);      //prikaz broja 2
    digitalWrite(led7, HIGH);      //prikaz broja 2
  } else if (brojac == 3) {        //ukoliko je brojač = 3
    iskljucisveled();              //isključi sve LED diode
    digitalWrite(led3, HIGH);      //prikaz broja 3
    digitalWrite(led4, HIGH);      //prikaz broja 3
    digitalWrite(led5, HIGH);      //prikaz broja 3
  } else if (brojac == 4) {        //ukoliko je brojač = 4
    iskljucisveled();              //isključi sve LED diode
    digitalWrite(led1, HIGH);      //prikaz broja 4
    digitalWrite(led3, HIGH);      //prikaz broja 4
    digitalWrite(led5, HIGH);      //prikaz broja 4
    digitalWrite(led7, HIGH);      //prikaz broja 4
  } else if (brojac == 5) {        //ukoliko je brojač = 5
    iskljucisveled();              //isključi sve LED diode
    digitalWrite(led1, HIGH);      //prikaz broja 5
    digitalWrite(led3, HIGH);      //prikaz broja 5
    digitalWrite(led4, HIGH);      //prikaz broja 5
    digitalWrite(led5, HIGH);      //prikaz broja 5
    digitalWrite(led7, HIGH);      //prikaz broja 5
  } else if (brojac == 6) {        //ukoliko je brojač = 6
    iskljucisveled();              //isključi sve LED diode
    digitalWrite(led1, HIGH);      //prikaz broja 6
    digitalWrite(led2, HIGH);      //prikaz broja 6
    digitalWrite(led3, HIGH);      //prikaz broja 6
    digitalWrite(led5, HIGH);      //prikaz broja 6
    digitalWrite(led6, HIGH);      //prikaz broja 6
    digitalWrite(led7, HIGH);      //prikaz broja 6
  } else {                         //ukoliko je brojač = 0
    iskljucisveled();              //isključi sve LED diode
  }
}