1. ro
  2. en
28 iulie 2025

Testul de viteză

Introducere

 

Într-o lume în care reflexul și concentrarea sunt mereu puse la încercare, Testul de viteză oferă o experiență captivantă, cu patru LED-uri viu colorate – roșu, galben, verde și albastru – fiecare însoțit de un buton dedicat, pregătit să-ți măsoare răspunsul instantaneu.

 

Jocul este controlat de un microcontroller Arduino, inima electronică a sistemului, care orchestrează totul cu ajutorul unui afișaj TM1637 cu 7 segmente ce redă cu precizie milisecundele reacției tale.

 

La start, ești întâmpinat de cuvântul „ROSU” pe ecran, în timp ce LED-ul roșu pulsează ritmic, semnalând că ești pe cale să începi o provocare intensă a simțurilor. După o numărătoare inversă sonoră, unul dintre LED-uri se aprinde aleatoriu, iar tu trebuie să identifici rapid culoarea și să apeși butonul corespunzător, înainte ca timpul să treacă.

 

Dacă reușești, ești recompensat cu un sunet scurt și afișarea timpului tău în milisecunde, care va palpăi elegant pe display, marcând performanța ta; dacă greșești, un „0000” îți reamintește ratarea, iar difuzorul emite o secvență sonoră dramatică și te provoacă să încerci din nou. La fiecare rundă, jocul revine la starea de așteptare, cu „ROSU” afișat și LED-ul roșu pulsând calm, pregătit să testeze încă o dată reflexele jucătorului.

 

Testul de viteză este mai mult decât un joc: este o invitație la precizie, un exercițiu de atenție și o bucurie pentru pasionații de electronică și provocări interactive.

 

Cum se desfășoară efectiv jocul?

 

Jocul debutează cu afișarea cuvântului „ROSU” pe display-ul TM1637 și cu pulsarea ritmică a LED-ului roșu, marcând momentul de așteptare înaintea provocării. O simplă apăsare pe butonul roșu activează jocul și lansează numărătoarea inversă – trei, doi, unu – însoțită de o serie de tonuri sonore în crescendo, care creează anticipație și concentrare.

 

Imediat după, ecranul se golește, iar sistemul intră în stare de observație. În fiecare rundă, jucătorul este expus unui LED aleatoriu – roșu, galben, verde sau albastru – care se aprinde pe neașteptate, în urma unui scurt delay aleator între una și trei secunde. Din acel moment, se cronometrează reacția jucătorului: cât timp îi ia să apese butonul corespunzător LED-ului aprins. Timpul este măsurat cu precizie în milisecunde și este afișat pe display imediat după apăsare, oferind un feedback clar și direct.

 

Dacă jucătorul reacționează corect, un sunet scurt și energizant îi validează succesul, iar timpul obținut este afișat pe display pentru câteva secunde, înainte ca sistemul să revină automat la ecranul inițial „ROSU”. Dacă jucătorul apasă greșit – adică alt buton decât cel corespunzător LED-ului aprins – pe display apare „0000”, iar difuzorul emite o secvență sonoră dramatică, semnalând eșecul.

 

Fiecare rundă este un test imprevizibil de reflexe și precizie, fără scor acumulat sau niveluri, ci cu accent pe performanța individuală din momentul respectiv. Testul de viteză nu urmărește progresia clasică, ci oferă runde rapide, intense și variate, provocând jucătorul să-și îmbunătățească timpul de reacție cu fiecare încercare. 

 

 

REGULAMENT – TESTUL DE VITEZĂ

 

1. Inițializarea jocului

Jocul începe cu afișarea cuvântului "ROȘU" pe display-ul TM1637 și cu LED-ul roșu care pulsează ritmic. Acesta semnalează că sistemul este pregătit pentru următoarea provocare. O apăsare pe butonul roșu lansează o numărătoare inversă: 3, 2, 1, însoțită de o serie de tonuri sonore crescătoare, care creează suspans și concentrare.

 

2. Provocarea reflexelor

Imediat după numărătoare, ecranul se golește și sistemul trece în stare de observație. După un scurt delay aleator între 1 și 3 secunde, un LED se aprinde brusc (roșu, galben, verde sau albastru). Din acel moment, se cronometrează reacția jucătorului — cât de repede apasă butonul corespunzător LED-ului aprins.

 

3. Afișarea performanței

  • Apăsare corectă: se activează un sunet plin de energie, iar timpul de reacție în milisecunde apare pe display pentru câteva secunde.

  • Apăsare greșită: se afișează „0000” pe display, iar difuzorul emite o secvență sonoră dramatică, semnalând eșecul.

 

4. Reset automat

După fiecare rundă, indiferent de rezultat, sistemul revine automat la ecranul de așteptare cu mesajul „ROȘU” și LED-ul roșu pulsând, pregătit pentru o nouă încercare.

 

5. Obiectivul jocului

Testul de Viteză nu are niveluri sau scor acumulat — fiecare rundă este un exercițiu individual de precizie și reflex, ideal pentru antrenarea atenției și îmbunătățirea timpului de reacție. Jucătorul este încurajat să se autodepășească cu fiecare rundă.

 

 

 

 

Schema electrică

 

La prima vedere, schema electrică poate părea complexă, iar liniile sale par că se încurcă într-o poveste tehnică fără sfârșit. Dar nu lăsa aparențele să te descurajeze. Vom parcurge împreună fiecare etapă — pas cu pas — interpretând schema, descoperind logica din spatele fiecărui simbol și așezând componentele pe breadboard într-un mod clar și intuitiv. Vei vedea cât de repede se transformă confuzia în curiozitate și încredere.

 

 

După cum puteți observa, avem următoarele conexiuni electrice între componentele circuitului nostru:

 

  • Terminalul 1 al butonului roșu → Pin D12 Arduino

  • Terminalul 2 al butonului roșu → GND Arduino

  • Pinul D7 Arduino → Terminalul 1 al rezistorului R1 (asociat LED-ului roșu)

  • Terminalul 2 al rezistorului R1 → Terminalul pozitiv (+) al LED-ului roșu

  • Terminalul negativ (−) al LED-ului roșu → GND Arduino

  • Terminalul 1 al butonului galben → Pin D6 Arduino

  • Terminalul 2 al butonului galben → GND Arduino

  • Pinul D10 Arduino → Terminalul 1 al rezistorului R2 (asociat LED-ului galben)

  • Terminalul 2 al rezistorului R2 → Terminalul pozitiv (+) al LED-ului galben

  • Terminalul negativ (−) al LED-ului galben → GND Arduino

  • Terminalul 1 al butonului verde → Pin D8 Arduino

  • Terminalul 2 al butonului verde → GND Arduino

  • Pinul D4 Arduino → Terminalul 1 al rezistorului R3 (asociat LED-ului verde)

  • Terminalul 2 al rezistorului R3 → Terminalul pozitiv (+) al LED-ului verde

  • Terminalul negativ (−) al LED-ului verde → GND Arduino

  • Terminalul 1 al butonului albastru → Pin D9 Arduino

  • Terminalul 2 al butonului albastru → GND Arduino

  • Pinul D5 Arduino → Terminalul 1 al rezistorului R4 (asociat LED-ului albastru)

  • Terminalul 2 al rezistorului R4 → Terminalul pozitiv (+) al LED-ului albastru

  • Terminalul negativ (−) al LED-ului albastru → GND Arduino

  • Terminalul pozitiv (+) al difuzorului → Pin D12 Arduino

  • Terminalul negativ (−) al difuzorului → GND Arduino

  • Terminalul 1 al afișajului (CLK) → Pin D3 Arduino

  • Terminalul 2 al afișajului (DIO) → Pin D2 Arduino

  • Terminalul 3 al afișajului (GND) → GND Arduino

  • Terminalul 4 al afișajului (5V) → Pin 5V Arduino

 

 

 

Materiale necesare:

 

  • Arduino Uno sau un model echivalent al acestuia

  • 4 LED-uri, de preferat de 5mm, care să emită lumină de culori diferite – roșu, galben, verde și albastru

  • 4 întrerupătoare cu revenire, normal deschise, care pot fi instalate pe breadboard  

  • un afișaj cu șapte segmente, cu 4 digiți, controlat de circuit integrat TM1637

  • un difuzor 

  • un breadboard de dimensiune mare, 830 puncte 

  • fire de legătură

 

 

 

Instalarea componentelor pe breadboard 

 

 

După cum observați, nu avem foarte multe conexiuni electrice de realizat. Trebuie doar să fiți atenți la câteva detalii esențiale pentru montajul corect:

 

  • LED-urile au polaritate și trebuie conectate în direcția corectă. Am notat cu A – anod (plus) și K – catod (minus) pentru a vă ghida mai ușor. Dacă sunt montate invers, nu vor lumina.

 

  • Întrerupătoarele au patru pini dispuși într-un dreptunghi, nu într-un pătrat perfect. Acest lucru înseamnă că, fără a forța, ele se vor potrivi natural într-o singură direcție pe breadboard.

  • Rezistoarele nu au polaritate, deci pot fi instalate în orice sens, fără restricții. Rolul lor este să limiteze curentul și să protejeze componentele, în special LED-urile.
  • Difuzorul poate avea fire colorate. Dacă nu este marcat, rețineți că firul roșu indică polul pozitiv și trebuie conectat la pinul D12, iar firul negru la GND (masa).
  • În zona de alimentare a breadboardului, pinii laterali sunt conectați grupat câte 25. Pentru a asigura continuitatea tensiunii, este necesară interconectarea între cele două sectoare — adică alimentarea trebuie să fie comună pe toată lungimea plăcii.
  • Dacă utilizați pentru prima dată placa Arduino, atunci puteți realiza conexiunile fără griji. În acest caz, placa este liberă de orice program anterior, astfel că nu există riscul unor execuții necontrolate.

 

 

 

Codul sursă

 

Dacă nu ați făcut acest lucru deja, înainte de a compila codul sursă, trebuie să instalați o bibliotecă — aceea care ne permite să interacționăm cu afișajul cu 7 segmente controlat de circuitul integrat TM1637. Această bibliotecă poartă denumirea „TM1637”, creată de Avishay Orpaz, și aceasta înseamnă că, în căsuța care permite căutarea bibliotecilor, veți căuta termenul „TM1637”, veți selecta biblioteca „TM1637 by Avishay Orpaz” și apoi veți apăsa butonul „INSTALL”.

 

Puteți descărca de aici codul sursă. Acesta conține explicații pentru aproape fiecare linie de cod.
 

(Link-ul va deschide un fișier de tip .ino într-o pagină nouă, însă browser-ul îl va interpreta ca pe un fișier text, ceea ce înseamnă că atunci când îl veți salva, apăsând eventual combinat Ctrl+S, selectați la “Save as type” – “All files”, și apoi introduceți după denumirea fișierului textul: .ino, astfel va fi salvat un fișier care poate fi accesat direct de către Arduino IDE. Altfel, selectați tot textul (Ctrl + A), îl copiați (Ctrl + C), deschideți o fereastră nouă în Arduino IDE, unde îl veți lipi (Ctrl + V) și îl puteți rula.)

 

 

Dacă ați realizat montarea componentelor pe breadboard, descărcați codul sursă din link-ul de mai sus și încărcați-l în memoria dispozitivului Arduino, apoi bucurați-vă de joc! 🎮

 

 

Proiectul poate fi dus la următorul nivel prin integrarea componentelor într-o carcasă personalizată. Dacă aveți acces la o imprimantă 3D, puteți crea o cutie atractivă și ergonomică, perfect adaptată designului dorit. În lipsa unei imprimante 3D, se poate opta pentru o cutie din ABS, specifică instalațiilor electrice, care oferă rezistență, siguranță și un aspect profesional. Astfel, proiectul capătă nu doar funcționalitate, ci și o prezentare demnă de admirat. Accesează resursele de aici.

 

 

 

O primă modificare. V1.1. 

 

Am reconfigurat jocul aducând o mică îmbunătățire față de varianta originală. Ce este nou în versiunea 1.1: 

 

  • Jucătorul are la dispoziție cinci încercări și fiecare dintre acestea este cronometrată.

  • La final va fi prezentat timpul mediu obținut pentru apăsarea butoanelor.

  • Dacă jucătorul apasă din greșeală alt buton față de cel care i-a fost indicat, atunci va fi contorizată o valoare de 3 secunde (3000ms). 

     

 

Puteți descărca de aici codul sursă. Acesta conține explicații pentru aproape fiecare linie de cod.

 

(Link-ul va deschide un fișier de tip .ino într-o pagină nouă, însă browser-ul îl va interpreta ca pe un fișier text, ceea ce înseamnă că atunci când îl veți salva, apăsând eventual combinat Ctrl+S, selectați la “Save as type” – “All files”, și apoi introduceți după denumirea fișierului textul: .ino, astfel va fi salvat un fișier care poate fi accesat direct de către Arduino IDE. Altfel, selectați tot textul (Ctrl + A), îl copiați (Ctrl + C), deschideți o fereastră nouă în Arduino IDE, unde îl veți lipi (Ctrl + V) și îl puteți rula.)

 

 

 

A doua modificare. V1.2. 

 

Versiunea 1.2 utilizeaza modelul de la jocul Repetă după mine:

 

  • Jucătorului îi va fi prezentată o secvență de cinci LED-uri care se aprind pe rând și va trebui să o repete, în ordinea în care i-a fost prezentată, într-un timp cât mai scurt. 

  • Dacă secvența a fost redată corect de jucător, la final va fi prezentat timpul obținut pentru apăsarea butoanelor.

 

Puteți descărca de aici codul sursă. Acesta conține explicații pentru aproape fiecare linie de cod.

 

(Link-ul va deschide un fișier de tip .ino într-o pagină nouă, însă browser-ul îl va interpreta ca pe un fișier text, ceea ce înseamnă că atunci când îl veți salva, apăsând eventual combinat Ctrl+S, selectați la “Save as type” – “All files”, și apoi introduceți după denumirea fișierului textul: .ino, astfel va fi salvat un fișier care poate fi accesat direct de către Arduino IDE. Altfel, selectați tot textul (Ctrl + A), îl copiați (Ctrl + C), deschideți o fereastră nouă în Arduino IDE, unde îl veți lipi (Ctrl + V) și îl puteți rula.)

 

 

 

A treia modificare. V1.3. 

 

În versiunea 1.3 se dezlănțuie haosul: 

 

  • Jucătorului îi va fi prezentată o secvență de cinci LED-uri (sau șase LED-uri, în varianta mai dificilă), care se aprind pe rând. Acesta va trebui să o repete, în ordinea în care i-a fost afișată, într-un timp cât mai scurt. Dar... surpriză! După ce secvența principală este prezentată, programul mai așteaptă o secundă și apoi declanșează o altă secvență, extrem de rapidă, menită să-i distragă atenția jucătorului. Abia după această provocare, utilizatorul poate încerca să apese butoanele în ordinea corectă. Nemilos, nu-i așa?

  • DACĂ, vreodată, poate din greșeală..., secvența a fost redată corect de jucător, la final va fi prezentat timpul obținut pentru apăsarea butoanelor.

 

Puteți descărca de aici codul sursă pentru secvența de cinci LED-uri.

 

Puteți descărca de aici codul sursă pentru secvența de șase LED-uri.

 

(Link-ul va deschide un fișier de tip .ino într-o pagină nouă, însă browser-ul îl va interpreta ca pe un fișier text, ceea ce înseamnă că atunci când îl veți salva, apăsând eventual combinat Ctrl+S, selectați la “Save as type” – “All files”, și apoi introduceți după denumirea fișierului textul: .ino, astfel va fi salvat un fișier care poate fi accesat direct de către Arduino IDE. Altfel, selectați tot textul (Ctrl + A), îl copiați (Ctrl + C), deschideți o fereastră nouă în Arduino IDE, unde îl veți lipi (Ctrl + V) și îl puteți rula.)

 

 

 

Te-ai descurcat sub presiune? Atunci Click Perfect te așteaptă cu o provocare tactilă de precizie absolută!

​​​​​​​

​​​​​​​