Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int DelayConst = 500;
- int DelayDown=0;
- int Bounce = 3;
- long brojR = 0;
- int ledCounter[10];
- int State[4];
- int buttonState = 0;
- int led[4] = {2, 3, 4, 5 };
- int buttonNumber[4] = {0, 1, 2, 3};
- int AlarmLed [2] = {14,15};
- int button[4] ={6 ,7 , 8 , 9 };
- int flagUp = 1;
- int flagPush = 1;
- void setup() // ovo se izvodi SAMO jedanput
- {
- for (int i = 0; i < 4; i++){
- pinMode (led[i], OUTPUT);
- }
- for (int j = 0; j < 2; j++){
- pinMode ( AlarmLed[j], OUTPUT);
- }
- for (int z = 0; z < 4; z++){
- pinMode( button[z], INPUT);
- }
- /* ovdje su postavljeni nasumiÄŤni brojevi(PINOVI) za led, alarmled i button
- oni se moraju postavljati kako je određeno na micro pro ili miniju , ovisno na kojem će se raditi*/
- }
- void loop() // ovo se izvodi beskonaÄŤno puta
- {
- if (flagUp ==0 && Bounce < 10 && DelayDown < 200) { // povećava se broj "skokova" ledica, brže se izmjenjuju i diže se zastavica
- Bounce++;
- DelayDown += 20;
- flagUp = 1;
- }
- for ( int t = 0; t < Bounce ; t++) {
- brojR = random(0,4); //random broj između 0 i 3
- ledCounter[t] = brojR; // pospremanje random broja
- digitalWrite ( led[brojR], HIGH); // postavljanje da svijetla ledica za taj broj
- delay (DelayConst - DelayDown); // delay koji počne od 0.5sec, pa se spušta po 0.02
- digitalWrite ( led[brojR], LOW); //gašenje
- delay (100);
- if ( t == (Bounce - 1)){ // postavljanje zastavice
- flagUp = 0;
- }
- }
- // tri puta blicanje zelene ledice da obilježava da možemo početi igrati
- for (int v = 0; v < 3; v ++) {
- digitalWrite ( AlarmLed [0], HIGH);
- delay(100);
- digitalWrite ( AlarmLed[0], LOW);
- delay (100);
- }
- // ovaj dio je za igru
- for ( int c = 0; c < Bounce; c++) { // koliko puta su ledice blicale, toliko puta možemo pogađati
- while ( flagPush == 1 ){ // beskonačna petlja, postavljena zastavica. Čeka nas da pritisnemo gumb
- for (int k = 0; k < 4; k++){ //vrti se petlja za svaki gumb, provjera njihova stanja
- State[k] = digitalRead (button[k]); // 4 gumba, 4 stanja
- buttonNumber[k]; // "redni" broj gumba
- if ((State[k] == HIGH) &&( buttonNumber[k] == ledCounter[c])){ // ako je neki gumb pritisnut i ako je gumb za određenu ledicu pritisnut, izvodi se:
- digitalWrite (AlarmLed[0], HIGH); //zelena ledica svijetli
- delay(100);
- digitalWrite(AlarmLed[0], LOW); //gasi
- delay(125);
- flagPush = 0; // postavljanje zastavice u nulu tako da se izađe iz while petlje i ide u novu iteracije prve for petlje
- }
- if ((State[k] == HIGH) && (buttonNumber[k] != ledCounter[c])){
- digitalWrite (AlarmLed[1], HIGH);
- delay(1200);
- digitalWrite (AlarmLed[1], LOW);
- flagPush = 0;
- }
- }
- }
- flagPush = 1; // vraćanje zastavice u 1 da opet može poceti while petlja
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement