Preuzmi .fzz Preuzmi .ino
Preuzmi shemu spajanja u Fritzingu    Preuzmi programski kod za Arduino

 

 

POGLAVLJE 5 - Zadatak 23:

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 LED 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.

SLIKA 1:

Prazni kružići prikazuju isključenu svjetleću diodu, dok crveni kružići prikazuju uključenu svjetleću diodu.

Nazivi dioda u programu i na shemi prikazani su na sljedećoj slici.

SLIKA 2:

SHEMA:

EKSPERIMENTALNA PLOČICA:

RJEŠENJE:

int led1 = 2;                      //definiraj led1 = 2
int led2 = 3;                      //definiraj led2 = 3
int led3 = 4;                      //definiraj led3 = 4
int led4 = 5;                      //definiraj led4 = 5
int led5 = 6;                      //definiraj led5 = 6
int led6 = 7;                      //definiraj led6 = 7
int led7 = 8;                      //definiraj led7 = 8
int tipkalo = 9;                   //definiraj tipkalo = 9
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
    }
}

Autor: Paolo Zenzerović