Stundas uzdevums: Izveidot Arduino reakcijas spēli, apvienojot iepriekš apgūto LED izvadi, pogas ievadi, if/else, mainīgos un Serial Monitor rezultātu izvadi.
Priekšzināšanu robeža: uzdevumos izmanto tikai iepriekš apgūto un šīs lapas teorijas/koda piemēros parādīto. Ja parādās jauna komanda vai rīks, vispirms atrod tās paraugu teorijas blokā.
Spēle sākas, kad spēlētājs ar pirmo pogas piespiedienu signalizē "esmu gatavs". LED diode pēc nejauša laika (1–4 sekundes) iedegas zaļa. Spēlētājam jānospiež otra poga pēc iespējas ātrāk. Mikrokontrolieris izmēra reakcijas laiku milisekundēs un pārraida to caur sērijas portu (Serial Monitor). Pēc 3 raundiem tiek aprēķināts vidējais reakcijas laiks. Ja spēlētājs nospiež pogu pirms LED iedegas - fiksēts false start.
unsigned long sakums = millis();
if (digitalRead(POGA_REAGE) == LOW) {
unsigned long reakcija = millis() - sakums;
Serial.println(reakcija);
}
millis() atgriež laiku kopš programmas palaišanas.70 min plāns: shēma un mainīgie ~20 min, spēles loģika ~30 min, rezultātu aprēķins un tests ~20 min.
INPUT_PULLUP).setup() daļā nodefinē mainīgos: const int LED = 9;, const int POGA_START = 2;, const int POGA_REAGE = 3;.Serial.begin(9600);, lai varētu redzēt rezultātus datorā.iededz_led() un nodzes_led() - abas tiek izsauktas no loop().loop() gaidi, līdz tiek nospiesta START poga (LOW signāls).delay(random(1000, 4001)); - Arduino gaidīs no 1 līdz 4 sekundēm.unsigned long sakums = millis();.laiks = millis() - sakums;.Serial.print("Reakcija: "); Serial.print(laiks); Serial.println(" ms");.for ciklu, kas izpilda 3 raundus.int laiki[3];.summa / 3 un izvadi to.Pievieno buzzer elementu, kas īsi nopīkst pie starta vai false start. Šis uzdevums nav nepieciešams pamata vērtējumam.
INPUT_PULLUP nospiesta poga nozīmē LOW.sakums tieši LED iedegšanās brīdī.| Kritērijs | Sācis (1-3) | Turpina (4-6) | Apguvis (7-8) | Padziļināti (9-10) |
|---|---|---|---|---|
| Shēma | Pieslēgumi nestabili vai īssavienojumā. | Shēma darbojas, bet vadi haotiski. | Stabila shēma, loģisks vadu izkārtojums. | Izcils kabeļu menedžments, krāsu kodējums (sarkans/melns). |
| Programmēšana un mainīgie | Sintakses kļūdas, kods nekompilējas. | Kods strādā, bet bez mainīgajiem (cietkodēti skaitļi). | Lieto mainīgos un funkcijas, kods bez kļūdām. | Patstāvīgi izveidotas papildu funkcijas, kods optimizēts. |
| Spēles loģika | Reakcija netiek mērīta. | Mēra laiku, bet rezultāti neuzkrājas. | 3 raundi un vidējais aprēķins darbojas. | Pievienota false-start pārbaude un papildu uzlabojumi. |
| Izpratne | Nespēj paskaidrot koda darbību. | Pamatkomandas paskaidrojamas, bet loģika apjucīga. | Pilnībā izprot savu kodu un shēmu. | Brīvi modificē kodu pēc lūguma, palīdz citiem. |
INPUT_PULLUP un kods pārbauda LOW signālu.Serial Monitor.