Componentele necesare:
Arduino UNO
8×8=64 LED-uri
breadboard
shift registers, pentru multiplexarea LED-urilor
butoane, rezistente, fire, the usual stuff
LCD pentru scor time constraints, procrastination and broken dreams
Descriere implementare hardware
Stiati ca breadboard-urile au conexiuni comune intre gaurile de pe aceeasi coloana numerica?
Am aflat prea tarziu. :^)
Datorita intrebarii retorice de mai sus, partea hardware a proiectului functioneaza in felul urmator:
Exista 4 linii de cate 8×2=16 led-uri fiecare. Led-urile de pe fiecare linie sunt inseriate la anod.
Catodurile led-urilor sunt inseriate (short-ate?) pe orizontala, de la o linie la alta, formand astfel 8 coloane.
Astfel, daca conectam prima coloana la GND si prima linie la VCC, se aprind primele 2 LED-uri (din moment ce sunt inseriate, cele 2 LED-uri aprinse se numara ca unul singur in software).
Aprinderea unui anumit set de led-uri de pe anumite randuri si anumite coloane se face cu ajutorul a doua shift-registere (de tip Serial Input Paralel Output, SIPO).
Un shift registru pentru linii, celalalt pentru coloane.
Se observa de asemenea prezenta a doua butoane. Ele sunt folosite pentru a misca masina jucatorului in stanga si in dreapta.