Sat

Zadatak

Neka micro:bit postane digitalni sat koji će pokazati vrijeme svaki put kad ga se protrese. Sate postavite pritiskom na tipkalo A, a minute tipkalom B.

Uputa za izradu programa

1. korak

Kao i u primjerima sa štopericom i mjeračem vremena, na početku programa kreirajte varijable potrebne za rad sata. To su Minute, Sati, Vrijeme, Kontrola i Start. Sve ih smjestite u on start blok kako bi se inicijalizirale na početku programa. Dodajte i sličicu sata nacrtanu u show leds naredbi. U varijablu Minute pohranit će se minute, a u varijablu Sati sati. Varijabla Vrijeme će spojiti sate i minute u obliku teksta, stoga joj na početku kao vrijednost dodijelite prazan tekst. Naredba za prazan tekst se nalazi u dijelu Advanced, u kategoriji Text (prva naredba – otvoreni navodni znakovi). Postavite je kao argument varijable Vrijeme. Varijabla Kontrola na početku neka ima vrijednost nula i njome će se regulirati praćenje prolaska vremena i povećanje minuta i sata. Varijabla Start poslužit će za mjerenje stvarnog prolaska vremena.

2. korak

Tipkalom A postavljate sate. Pritiskom na tipkalo neka se vrijednost varijable Sati povećava za 1 dok ne dođe do 23, a onda neka ponovno postane 0. If then else blokom pratite stanje varijable Sati i određujete njezinu vrijednost.

3. korak

Isto je potrebno napraviti za minute pritiskom na tipkalo B. Neka se vrijednost varijable Minute povećava za 1 sve dok ne dođe na vrijednost 59, a onda opet neka postane nula.

4. korak

Kad ste namjestili trenutno vrijeme, pritiskom na oba tipkala istovremeno neka ga micro:bit zapamti i pokrene mjerenje prolaska vremena. To možete regulirati varijablom Kontrola, koja će sada poprimiti vrijednost 1, i varijablom Start koja će pohraniti vrijeme koje je do sad proteklo naredbom running time (ms). Slijedi izrada glavnog dijela programa koji se izvršava u petlji forever, a to je mjerenje prolaska vremena.

5. korak

Najprije if then blokom petlja provjerava je li namješteno vrijeme, odnosno ima li varijabla Kontrola vrijednost jedan. Ako je taj uvjet zadovoljen, slijedi nova provjera kojom se bilježi prolazak vremena u trajanju od jedne minute. U novom if then bloku zato vrijednosti varijable Start dodajte 60000 (vrijeme od 1 minute u milisekundama) i usporedbom pratite kad će to vrijeme proći (biti manje od trenutnog vremena). Kad se to dogodi mijenjaju se vrijednosti varijablama Minute i Sati. Najprije se provjeravaju minute. Dok su one manje od 59, povećavaju se za jedan, inače postaju nula. U tom trenutku je potrebno povećati i vrijednost satima. Stoga se u tom dijelu provjeravaju sati. Ako su manji od 23 povećavaju se za 1, inače postaju nula.

Na kraju izmjene minuta i sati, potrebno je ponovno dodijeliti varijabli Start trenutno vrijeme kako bi se ono moglo nastaviti pravilno mjeriti.

6. korak

Na kraju je ostao dio kôda za prikaz vremena. Dodajte blok on shake u prostor za programiranje. U njega je potrebno dodati naredbe kojima će se spojiti Sati i Minute i prikazati na zaslonu micro:bita. Da bi taj prikaz bio pregledniji neka se minute uvijek ispisuju kao dvoznamenkasti broj tako da se doda nula u slučaju ako je vrijednost varijable Minute manja od 10. Postavite stoga if then else blok za provjeru vrijednosti Minute.

U then dio postavite vrijednost varijable Vrijeme tako što ćete spojiti vrijednosti varijabla Sati i Minute. Spajanje Sati i Minute ćete postići naredbom join iz kategorije Text. Ta naredba spaja različite stringove (tekst) u jedan duži. Izbrišite tekst koji je upisan u nju („Hello“ i „World“) i plusom dodajte još dva mjesta za tekst. Trenutno u join naredbi imate četiri pozicije za tekst. Na prvu postavite varijablu Sati, u drugu upišite dvotočku, na treću broj nula i na posljednju dodajte varijablu Minute. Cijelu join naredbu postavite kao vrijednost varijable Vrijeme. Isto treba postaviti i u else dio, samo bez nule jer su sada minute dvoznamenkaste. Na kraju neka se izbriše prikaz na zaslonu, ispiše vrijednost varijable Vrijeme naredbom show string i nakon toga ponovno pokaže sličica sata.

Program