This is an old revision of the document!
Proiectul implementează un ceas de șah digital folosind Arduino, afișaje cu 7 segmente și un LCD. Ceasul oferă funcționalități standard pentru turneele de șah:
Ideea a pornit de la dorința de a crea un instrument practic pentru jucătorii de șah, care să fie în același timp un exercițiu educațional de programare și electronică. Utilitatea acestui proiect constă în:
Ceasul de șah digital este un sistem complex care îmbină componente hardware și software pentru a oferi o soluție funcțională și intuitivă de cronometrare pentru jocul de șah. Proiectul utilizează o singură placă Arduino MEGA 2560 pentru a controla toate componentele și a implementa logica necesară.
Arduino MEGA 2560 reprezintă “creierul” sistemului, coordonând toate funcționalitățile și procesând interacțiunile utilizatorului. Acesta a fost ales datorită numărului mare de pini I/O disponibili (54 pini digitali și 16 pini analogici), care permit conectarea simultană a tuturor componentelor necesare. Arduino rulează firmware-ul care implementează logica jocului, gestionează timerii, procesează input-ul de la butoane și controlează afișajele și feedback-ul audio.
LCD-ul oferă o interfață vizuală pentru utilizator, afișând informații despre:
Cele două afișaje cu 7 segmente și 4 digiti sunt utilizate pentru a afișa timpul rămas pentru fiecare jucător în format MM:SS (minute:secunde). Aceste afișaje utilizează tehnica de multiplexare pentru a controla toate cele 32 de segmente (8 segmente × 4 digiti) cu doar 12 pini pentru fiecare afișaj. Multiplexarea implică activarea rapidă și secvențială a câte unui digit la un moment dat, creând iluzia că toate sunt aprinse simultan datorită persistenței vizuale.
Sistemul include patru butoane tactile:
Butoanele sunt conectate la Arduino folosind intrările analogice și utilizează rezistențe pull-up interne pentru stabilitate.
Buzzer-ul oferă feedback audio pentru diverse evenimente din timpul jocului:
Modulele interacționează într-un flux logic care permite funcționarea coerentă a ceasului de șah:
La pornire, sistemul afișează meniul principal pe LCD, permițând utilizatorului să selecteze modul de joc folosind butoanele de control. După selectarea modului, timpii inițiali sunt setați pentru ambii jucători și afișați pe cele două afișaje cu 7 segmente. Jocul începe cu cronometrul jucătorului 1 activat. Când acesta termină mutarea și apasă butonul său, timpul său se oprește și începe cronometrul jucătorului 2. Buzzer-ul emite sunete pentru a indica transferul de control între jucători și pentru a avertiza când timpul este pe cale să expire. Arduino MEGA gestionează continuu afișajele, actualizându-le pentru a reflecta timpul rămas, și procesează input-ul de la butoane pentru a detecta schimbările de stare (pauză, terminare mutare, etc.). LCD-ul afișează informații suplimentare despre starea jocului, cum ar fi jucătorul activ, modul de joc curent, și eventuale notificări.
Această arhitectură modulară permite o implementare clară a funcționalităților și facilitează eventuale extinderi ulterioare ale sistemului, cum ar fi adăugarea de moduri de joc suplimentare sau funcții avansate de cronometrare.
Pentru reglarea contrastului LCD-ului
Schema electrică LCD 16×2:
Afișaj cu 7 segmente pentru Jucătorul 1:
Afișaj cu 7 segmente pentru Jucătorul 2:
Butoane:
Buton Jucător 1:
Buton Jucător 2:
Buton Navigare Mod:
Buton Selectare Mod:
Buzzer:
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.