//• Ob vklopu mikrokrmilnika se generira naključna številka med 1 in 9. Naključno število
// se generira samo enkrat.
//• Na mikrokrmilnik priključi dve tipki. Z eno tipko povečujemo vrednost za 1, z drugo tipko
// pa jo zmanjšujemo za 1. Najmanjša vrednost je nič in največja 9.
//• Če je vrednost enaka generirani naključni številki, se na led prikazovalniku izpiše črka a.
//• Vrednost naj se izpiše na LED prikazovalniku, ki je priključen na pine PORTA D (PD0 do PD6).
//• Nalogo reši s pomočjo funkcij pinMode(), digitalWrite() in digitalRead().
int RandomNumber;
int number;
const int MaxNum = 9;
const int MinNum = 1;
const int BtnPin1 = 2;
const int BtnPin2 = 3;
bool BtnState1;
bool BtnState2;
const int segA = 4;
const int segB = 5;
const int segC = 6;
const int segD = 7;
const int segE = 8;
const int segF = 9;
const int segG = 10;
// Definicija prikaza številk od 0 do 9
int numbers[10][7] = {
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 1, 1, 1, 0, 0, 1}, // 3
{0, 1, 1, 0, 0, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 0, 1, 1, 1, 1, 1}, // 6
{1, 1, 1, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1}, // 8
{1, 1, 1, 1, 0, 1, 1} // 9
};
void setup() {
pinMode(BtnPin1, INPUT_PULLUP);
pinMode(BtnPin2, INPUT_PULLUP);
randomSeed(analogRead(0));
RandomNumber = random(MinNum, MaxNum+1);
Serial.begin(115200);
}
void loop() {
BtnState1 = digitalRead(BtnPin1);
BtnState2 = digitalRead(BtnPin2);
if(BtnState1 == LOW){
if(number > MinNum){
number--;
}
delay(200);
} else if(BtnState2 == LOW){
if(number < MaxNum){
number++;
}
delay(200);
}
if(RandomNumber == number){
displayNumber(RandomNumber);
} else {
shutDown();
}
}
void displayNumber(int number) {
// Prižgemo ustrezne segmente za prikaz številke
digitalWrite(segA, numbers[number][0]);
digitalWrite(segB, numbers[number][1]);
digitalWrite(segC, numbers[number][2]);
digitalWrite(segD, numbers[number][3]);
digitalWrite(segE, numbers[number][4]);
digitalWrite(segF, numbers[number][5]);
digitalWrite(segG, numbers[number][6]);
}
void shutDown() {
// Prižgemo ustrezne segmente za prikaz številke
digitalWrite(segA, LOW);
digitalWrite(segB, LOW);
digitalWrite(segC, LOW);
digitalWrite(segD, LOW);
digitalWrite(segE, LOW);
digitalWrite(segF, LOW);
digitalWrite(segG, LOW);
}