1. ro
  2. en
28 iulie 2025

Prinde cârtița

Introducere

 

Un LED se aprinde, un ton discret îți gâdilă urechea, iar degetele tale au o singură secundă să apese butonul corect... Dacă ai reușit, scorul urcă. Dacă nu, jocul se încheie cu o fanfară descendentă, iar ecranul îți reamintește că vigilența este cheia. Bine ai venit în lumea Prinde Cârtița — un joc DIY, alimentat de un microcontroller Arduino, care îmbină perfect distractivul cu educativul.

 

Conceput ca un proiect interactiv cu LED-uri multicolore, butoane fizice și un afișaj digital TM1637, Prinde Cârtița transformă reflexele într-un spectacol vizual și auditiv. Mesajul „ROSU”, afișat la pornirea jocului, nu este doar un cuvânt — este identitatea lui. Într-un stil minimalist dar expresiv, jucătorul este invitat să înceapă experiența apăsând butonul roșu, declanșând o numărătoare inversă dinamică și plină de energie. Apoi urmează provocarea propriu-zisă: un LED se aprinde aleator, iar jucătorul are o singură șansă să apese butonul corespunzător în mai puțin de o secundă.

 

Îmbinarea dintre sunet, lumină și mișcare face din acest joc o platformă ideală pentru dezvoltarea vitezei de reacție și a coordonării mână-ochi. Mai mult decât atât, Prinde Cârtița este o demonstrație practică de electronică, logică programabilă și interacțiune fizică. Se adresează deopotrivă celor pasionați de robotică, educatorilor în căutare de activități STEM, dar și celor care vor să adauge un strop de ingeniozitate în propria colecție de proiecte personale.

 

Dincolo de componentele simple — LED-uri, butoane, difuzor și microcontroller — jocul captează esența interacțiunii creative: o idee clară, o execuție elegantă și o experiență care provoacă zâmbete și competiție. Este ușor de replicat, ușor de personalizat și perfect de prezentat la târguri, expoziții sau cluburi de tehnologii creative.

 

În final, Prinde Cârtița nu este doar un joc — este un manifest al curiozității, al priceperii puse în mișcare și al bucuriei de a face lucrurile să prindă viață cu ajutorul microcipurilor și câtorva linii de cod.

 

Cum se desfășoară efectiv jocul?

 

Jocul Prinde Cârtița începe odată ce jucătorul apasă pe butonul roșu, semnalizat printr-un mesaj stilizat „ROSU” afișat pe display-ul controlat de circuitul TM1637 și prin clipirea ritmică a LED-ului roșu. Apăsarea acestui buton activează o numărătoare inversă dinamică — 3, 2, 1 — însoțită de semnale sonore energice, pregătind jucătorul pentru intrarea în modul activ de joc.

 

Fiecare rundă aduce o provocare nouă: sistemul aprinde aleatoriu unul dintre cele patru LED-uri colorate — roșu, galben, verde sau albastru — pentru o perioadă scurtă de timp. Când LED-ul se aprinde, jucătorul trebuie să apese butonul corespunzător cât mai rapid.

 

Apăsarea corectă declanșează un ton de confirmare, crește scorul afișat pe display și permite continuarea jocului. În schimb, o reacție greșită sau întârziată determină încheierea jocului, semnalată de o secvență sonoră descrescătoare și un efect vizual intermitent al scorului.

 

Ritmul jocului este susținut de alternanța rapidă dintre LED-uri și presiunea timpului limitat — o fereastră de o secundă în care reacția jucătorului trebuie să fie precisă. Pe măsură ce scorul crește, jucătorul este motivat să devină mai rapid și mai concentrat, transformând fiecare rundă într-un exercițiu de reflex și coordonare.

 

Afișajul digital oferă un feedback clar, în timp real, iar efectele sonore ajută la menținerea atenției și a tensiunii ludice. După fiecare greșeală, sistemul revine elegant la ecranul „ROSU”, invitând jucătorul să încerce din nou și să-și depășească propriul record.

 

 

REGULAMENT – PRINDE CÂRTIȚA

 

1. Inițializarea jocului

Jocul începe când jucătorul apasă butonul roșu, semnalizat prin mesajul „ROȘU” afișat pe display-ul controlat de circuitul integrat TM1637 și prin clipirea ritmică a LED-ului roșu. Acest gest activează o numărătoare inversă dinamică — 3, 2, 1 — acompaniată de semnale sonore energice care anunță trecerea în modul activ de joc.

 

2. Mecanica rundelor

În fiecare rundă, sistemul aprinde aleatoriu unul dintre cele patru LED-uri colorate: roșu, galben, verde sau albastru, pentru o perioadă scurtă (≈1 secundă). Când LED-ul se aprinde, jucătorul trebuie să apese rapid butonul corespunzător.

 

3. Verificarea răspunsului

  • Răspuns corect → sistemul emite un ton de confirmare, scorul este actualizat pe display, iar jocul continuă.

  • Răspuns greșit sau întârziat → jocul se încheie, cu o secvență sonoră descrescătoare și un efect vizual intermitent al scorului final.

 

4. Timp și dificultate

Fiecare LED rămâne aprins doar aproximativ o secundă, iar reacția jucătorului trebuie să fie precisă și rapidă. Pe măsură ce scorul crește, presiunea timpului și alternanța LED-urilor cresc ritmul jocului, transformând fiecare rundă într-un exercițiu intens de reflex și coordonare vizual-motorie.

 

5. Feedback și reluare

  • Display-ul TM1637 oferă feedback instant, afișând scorul în timp real.

  • Sunetele și efectele vizuale mențin atenția și suspansul.

  • După fiecare greșeală, sistemul revine elegant la ecranul „ROȘU”, iar jucătorul poate relua provocarea pentru a-și îmbunătăți recordul personal.

 

 

 

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! 🎮

 

 

Dacă, din punctul vostru de vedere, jocul este prea lent sau prea rapid, puteți modifica o linie de cod regasită în bucla principală, loop():

 
while (millis() - startTime < 1000){ 


unde 1000 reprezintă viteza de reacție — adică timpul în care LED-ul rămâne aprins și jucătorul trebuie să apese butonul corect, și este exprimată în milisecunde — ceea ce înseamnă 1000 de milisecunde, deci o secundă. Dacă vrei să faci jocul mai rapid, poți reduce valoarea:

 

while (millis() - startTime < 800){       //0.8 secunde

while (millis() - startTime < 600){      //0.6 secunde

 

sau o poți majora: 

 

while (millis() - startTime < 1200){       //1.2 secunde

 

 

De asemenea, dacă vrei să variezi viteza în funcție de scor sau nivel, poți transforma valoarea de 1000 ms într-o variabilă dinamică:

 

int timpReactie = max(400, 1000 - score * 10); // Cu cât scorul e mai mare, timpul e mai scurt

while (millis() - startTime < timpReactie){

 

 

 

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. V2.0. 

 

Am reconfigurat jocul Prinde Cârtița aducând câteva îmbunătățiri față de varianta originală. Ce este nou în versiunea 2.0: 

 

 

  • Un număr fix de niveluri (50), cu dificultate progresivă

  • Scor cu bonusuri și penalizări:

    • +1 punct pentru răspuns corect

    • −1 punct pentru greșeală

    • +3 puncte pentru 5 reușite consecutive

    • +5 puncte pentru 10 reușite consecutive (total +8 puncte)

    • −3 puncte dacă ratezi 5 runde la rând

 

  • Protecție la scor negativ (care era valabilă și în varianta inițială):

    • Scorul nu poate scădea sub 0, indiferent de numărul de greșeli

 

  • Bonus de acuratețe:

    • Dacă jucătorul obține 5 apăsări precise consecutive (+2 fiecare), primește +5 puncte suplimentare

    • După bonus, combo-ul se resetează

 

  • Penalizare permanentă pentru apăsări greșite:

    • Orice apăsare a unui buton greșit, în orice moment (inclusiv în runda curentă), scade scorul cu −1

    • Apăsarea greșită nu anulează scorul pozitiv obținut în aceeași rundă, dar îl penalizează separat

 

 

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. V2.1. 

 

Ce este nou în versiunea 2.1: 

 

  • 60 secunde de joc

  • Timp de reacție dinamic:

    • Inițial: până la 1000ms

    • După 40s → minim 400ms

    • După 50s → minim 320ms

  •  Afișaj:

    • Primele două cifre = timp rămas

    • Ultimele două cifre = scor

  • Răspuns corect: +1

  • Greșit sau întârziat: −1

  • Bonusuri și penalizări pentru combo-uri

  • Avertisment sonor la ultimele 10 secunde

 

 

Puteți descărca de aici codul sursă.

 

(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. V2.2. 

 

Care sunt dferențele dintre versiunea 2.2 și cea originală: 

 

  • Un număr fix de niveluri: 40, cu dificultate progresivă

 

  • Scorul pornește de la 5 puncte (bonus de bun-venit pentru jucători)

 

  • Două sau trei LED-uri aprinse simultan:

    • Până în momentul în care scorul depășește 40 de puncte, se vor aprinde câte două LED-uri simultan; dacă utilizatorul apasă ambele butoane asociate LED-urilor, primește 2 puncte, dacă apasă doar unul, primește 1 punct, iar dacă nu apasă niciunul la timp sau apasă un buton greșit, pierde 2 puncte.

    • Dacă scorul depășește 40 de puncte, se activează modul Turbo, adică se vor aprinde câte trei LED-uri simultan; dacă utilizatorul apasă toate cele trei butoane asociate LED-urilor, primește 3 puncte, dacă apasă două, primește 2 puncte, dacă apasă doar unul, primește 1 punct, iar dacă nu apasă niciunul la timp sau apasă un buton greșit, pierde 3 puncte

 

  • Protecție la scor negativ (care era valabilă și în varianta inițială):

    • Scorul nu poate scădea sub 0, indiferent de numărul de greșeli

 

 

Puteți descărca de aici codul sursă.

 

(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.)

 

 

Ai reflexe bune? Vezi cum le poți duce la extrem în Cursa LED-urilor — atenție maximă și decizie rapidă!

 

 

​​​​​​​

​​​​​​​