Facebook
From ja, 6 Months ago, written in Plain Text.
This paste is a reply to stoperica from Lukac - go back
Embed
Viewing differences between stoperica and brojac
// DIGITALNA STOPERICA (max 60 sekundi)
int milisekund = 0;
int stotinke = 0;
int desetinke = 0;
int sekunde = 0;
stotine=0;
int sekunde10 = 0;
desetice=0;
int minute = 0;
int minute10 = 0;
jedinice=0;
unsigned long ispisTime = 0; //pomocna promenljiva za periodu odabiranja ispisa cifre na dipleju
int brojDispleja = 4; //broj displeja koji se trenutno osvezava (ispis krece od DIS4)
const int matricaCifara[10][7] = { { 1,1,1,1,1,1,0 }, // cifra 0
 { 0,1,1,0,0,0,0 }, // cifra 1
 { 1,1,0,1,1,0,1 }, // cifra 2
 { 1,1,1,1,0,0,1 }, // cifra 3
 { 0,1,1,0,0,1,1 }, // cifra 4
 { 1,0,1,1,0,1,1 }, // cifra 5
 { 1,0,1,1,1,1,1 }, // cifra 6
 { 1,1,1,0,0,0,0 }, // cifra 7
 { 1,1,1,1,1,1,1 }, // cifra 8
 { 1,1,1,0,0,1,1 }}; // cifra 9
const int matricaDispleja[4][4] = { { 0,1,1,1 }, // prozivka DIS4
 { 1,0,1, 1}, // prozivka DIS3
 { 1,1,0,1 }, // prozivka DIS2
 { 1,1,1,0 }}; // prozivka DIS1
void setup()
{
pinMode(2, OUTPUT); //a segment
pinMode(3, OUTPUT); //b segment
pinMode(4, OUTPUT); //c segment
pinMode(5, OUTPUT); //d segment
pinMode(6, OUTPUT); //e segment
pinMode(7, OUTPUT); //f segment
pinMode(8, OUTPUT); //g segment
pinMode(9, OUTPUT); //dp segment
pinMode(10, OUTPUT); //DIS4
pinMode(11, OUTPUT); //DIS3
pinMode(12, OUTPUT); //DIS2
pinMode(13, OUTPUT); //DIS1
}
void loop()
{
if ((abs(micros()-ispisTime)) >= 1000) //da li je istekla perioda osvezavanja od 1ms (1 kHz)
{
ispisTime = micros();
milisekund++;
if(milisekund == 10)
{
 stotinke++;
 milisekund = 0;
}
if (stotinke == 10)
{
desetinke++;
 desetinke++;
 
stotinke = 0;
}
if(desetinke == 10)
237)
{
sekunde++;
desetinke = 0;
  desetinke--;
  delay(3000);
}
if(sekunde == 10)
{
sekunde10++;
sekunde = 0;
}
if(sekunde10 == 6)
{
  minute++;
  sekunde10 = 0;
}
if(minute == 10)
{
  minute10++;
  minute = 0;
}
if(minute10 == 6)
{
  minute10 = 0;
}
stotine=desetinke/100;
desetice=(desetine-(stotine*100))/10;
jedinice=desetine-stotine*100-desetice*10;
switch(brojDispleja) //koji displej je na redu za osvezavanje
{
case 1: //DIS1
prozoviDisplej(3);
ispisiCifru(sekunde); ispisiCifru(jedinice); //ispis sekundi jedinica na DIS1
break;
case 2: //DIS2
prozoviDisplej(2);
ispisiCifru(sekunde10); ispisiCifru(desetice); //ispis 10*sekundi desetica na DIS2
break;
case 3: //DIS3
prozoviDisplej(1);
ispisiCifru(minute); ispisiCifru(stotine); //ispis minuta stotina na DIS3
break;
case 4: //DIS4
prozoviDisplej(0);
ispisiCifru(minute10); ispisiCifru(0); //ispis 10*minuta na DIS4
break;
default:
;
}
brojDispleja--; //priprema redni broj sledeceg displeja za osvezavanje
if (brojDispleja == 0) brojDispleja = 4;
}
}
void ispisiCifru(int number) //funkcija za ispis cifre (vrste matrice cifara)
{
int pin= 2;
for (int j=0; j < 7; j++)
{
digitalWrite(pin, matricaCifara[number][j]); //ispis jednog segmenta (kolona matrice cifara)
pin++;
}
}
void prozoviDisplej(int redniBroj) //funkcija za prozivku jednog displeja
//(tri iskljucuje, jednog ukljucuje)
{
int pin= 10;
for (int j=0; j < 4; j++)
{
digitalWrite(pin, matricaDispleja[redniBroj][j]); //kontrola prozivke jednog displeja
//(kolona matrice displeja)
pin++;
}
}

Replies to brojac rss

Title Name Language When
vezba 3 Lukac text 5 Months ago.
vezba 3 Lukac text 5 Months ago.
Re: brojac danilo text 5 Months ago.