Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2026:bianca.popa1106:alexandru.diaconu [2026/05/09 19:31]
alexandru.diaconu04 created
pm:prj2026:bianca.popa1106:alexandru.diaconu [2026/05/18 19:12] (current)
alexandru.diaconu04
Line 1: Line 1:
-CyberPull: Tug of War Digital+====== ​CyberPull: Tug of War Digital ​======
  
-**Autor:** Alexandru ​(Grupa ...) +^ NumeAlexandru ​Diaconu | 
-**GitHub:** *(link de adăugat)* +Grupa: ​| 331CD |
-**Video demo:** *(link YouTube de adăugat)*+
  
----+===== Introducere =====
  
-## Introducere+**Ce face?**
  
-CyberPull este un joc arcade interactiv pentru doi jucătoriinspirat din jocul clasic ​"trage de sfoară"​. ​În loc de forță fizică, sistemul testează viteza de reacție ​jucătorilor.+CyberPull este un joc arcade interactiv pentru doi jucători inspirat din "trage de sfoară"​. ​Un punct luminos pornește din centrul unei benzi LED. Fiecare jucător apasă butonul său cât mai repede pentru ​trage punctul în jumătatea lui. Primul care îl duce la capătul său câștigă runda.
  
-La începutul fiecărei runde, un punct luminos apare fix în centrul unei benzi LED WS2812B. Fiecare jucător are un buton arcade dedicat — trebuie să îl apese cât mai repede pentru a trage punctul luminos spre jumătatea ​lui. Primul jucător care împinge punctul luminos până la capătul său câștigă runda.+**Care este scopul ​lui?**
  
-**Ce face proiectul:​** +Distracție ​pentru doi jucători, testând viteza ​de reacție într-un format competitiv ​și vizual atractiv.
-- Joc multiplayer local pentru doi jucători ​cu detectarea instantanee a apăsărilor ​de butoane prin întreruperi hardware +
-- Dificultate reglabilă în timp real printr-un potențiometru rotativ (controlează câte apăsări sunt necesare pentru a muta LED-ul o poziție+
-Feedback audio prin buzzer pasiv — tonuri diferite la fiecare mutare ​și o melodie de victorie la finalul rundei +
-- Scor curent și cronometru de rundă afișate pe un LCD 16x2 cu interfață I2C +
-- Carcasă din plexiglass transparent cu electronica ascunsă sub un fund fals+
  
-**De ce este util:** Proiectul demonstrează toate conceptele majore ​de laborator (întreruperi,​ timere, PWM, ADC, I2C) într-o formă interactivă și prezentabilă,​ producând un joc standalone complet funcțional pe care oricine îl poate juca imediat.+**Care a fost ideea de la care am pornit?**
  
-**Ideea de la care am pornit:​** ​Am vrut un proiect care să fie atât tehnic complet cât și distractiv — ceva ce poate fi demonstrat ​ușor în fața unui public și care implică interacțiunea directă a utilizatorilor.+Am vrut un proiect care să folosească toate conceptele de laborator (întreruperi,​ timere, PWM, ADC, I2C) într-un mod practic ​și interactiv, rezultând ​ceva ce poate fi demonstrat ​imediat oricui.
  
----+**De ce este util?**
  
-## Descriere Generală+Este un joc standalone complet funcțional,​ cu carcasă fizică din plexiglass, care poate fi folosit fără laptop după ce codul este încărcat.
  
-### Schemă Bloc+===== Descriere Generală =====
  
-``` +Schema bloc a proiectului:​
-┌─────────────────────────────────────────────────────────────────┐ +
-│                       ​SISTEM CYBERPULL ​                         │ +
-│                                                                 │ +
-│  ┌──────────┐ ​   INT0    ┌─────────────────┐ ​   I2C             │ +
-│  │ Buton J1 │───────────▶│ ​                ​│───────────▶ LCD 1602│ +
-│  └──────────┘ ​           │                 ​│ ​                   │ +
-│                          │  Arduino Uno    │    Pin Digital ​     │ +
-│  ┌──────────┐ ​   INT1    │  (ATmega328P) ​  ​│───────────▶ Bandă ​ │ +
-│  │ Buton J2 │───────────▶│ ​                ​│ ​           WS2812B │ +
-│  └──────────┘ ​           │                 ​│ ​                   │ +
-│                          │                 ​│ ​   PWM (Timer2) ​    │ +
-│  ┌──────────┐ ​   ADC0    │                 ​│───────────▶ Buzzer ​ │ +
-│  │  Pot 10K │───────────▶│ ​                ​│ ​           Pasiv   │ +
-│  └──────────┘ ​           └─────────────────┘ ​                   │ +
-│                                   ​│ ​                            │ +
-│  ┌──────────┐ ​             Jack DC 9V                           │ +
-│  │ Adaptor ​ │─────────────────────┘ ​                            │ +
-│  │ 9V / 1A  │                                                   │ +
-│  └──────────┘ ​                                                  │ +
-└─────────────────────────────────────────────────────────────────┘ +
-```+
  
-### Descrierea Modulelor+{{:​pm:​prj2026:​bianca.popa1106:​diaconu_alexandru_schema_bloc.png?​200|}}
  
-**Arduino Uno (ATmega328P)** — Unitatea centrală de procesare. Rulează toată logica jocului, citește inputurile și controlează outputurile.+Modulele principale:
  
-**Bandă LED WS2812B (30 LED-uri, 50cm)** — Afișajul principal ​al jocului. Un singur ​LED se mișcă stânga/​dreapta ​în funcție de apăsările butoanelor. ​LED-ul 15 este poziția centrală de start, LED-urile 0–14 aparțin ​jucătorului J1LED-urile 16–29 aparțin jucătorului J2.+  * **Arduino Uno (ATmega328P)** — unitatea centrală, rulează toată logica jocului 
 +  * **Bandă LED WS2812B (30 LED-uri, 50cm)** — afișajul principal; un LED se mișcă stânga/​dreapta 
 +  * **2x Butoane Arcade 16mm cu LED** — inputul ​jucătorilorconectate pe INT0/INT1 
 +  * **Potențiometru 10kΩ** — reglează dificultatea în timp real prin ADC 
 +  * **Buzzer Pasiv** — feedback audio controlat prin PWM (Timer2) 
 +  * **LCD 1602 + I2C** — afișează scorul și cronometrul rundei 
 +  * **Adaptor 9V/1A** — alimentare standalone prin jack-ul Arduino
  
-**Butoane Arcade (x2, 16mm, iluminate LED)** — Inputurile jucătorilor. Conectate la pinii de întrerupere externă (INT0/INT1) pentru detectare fără latență.+===== Hardware Design =====
  
-**Potențiometru Rotativ (10kΩ)** — Selector analogic de dificultate. Citit prin ADC. Mapează valoarea 0–1023 la un număr de apăsări necesare pentru a muta LED-ul o poziție (1 = ușor, 8 = dificil).+**Listă de componente:**
  
-**Buzzer Pasiv** — Feedback audio. Controlat de Timer2 în modul Fast PWM. Generează frecvențe diferite la mutare stângamutare dreapta ​și melodie de victorie.+^ Componentă ^ Specificații ^ Cantitate ^ 
 +| Arduino Uno R3 | ATmega328PDIP | 1 | 
 +| Bandă LED WS2812B | 60 LED/m, 30 LED-uri (50cm) | 1 | 
 +| Buton Arcade cu LED | 16mm, 3-6V, roșu | 1 | 
 +| Buton Arcade cu LED | 16mm, 3-6V, albastru | 1 | 
 +| Potențiometru | 10kΩ liniar | 1 | 
 +| Buzzer Pasiv | 3.3V | 1 | 
 +| LCD 1602 + modul I2C | PCF8574, 5V | 1 | 
 +| Adaptor alimentare | 9V / 1A | 1 | 
 +| Breadboard | 830 puncte | 1 | 
 +| Rezistor 330Ω | 1/4W THT | 3 | 
 +| Rezistor 10kΩ | 1/4W THT | 5 | 
 +| Rezistor 100Ω | 1/4W THT | 3 | 
 +| Condensator electrolitic | 1000µF / 35V | 1 | 
 +| Fire Dupont M-F | 30cm, 40 buc | 1 set | 
 +| Fire Dupont M-M | 10cm, 40 buc | 1 set |
  
-**LCD 16x2 + I2C (PCF8574)** — Afișaj secundar. Afișează scorul curent (ex: "J1: 2  J2: 1") și timpul scurs din rundă.+**Schema electrică:**
  
-**Adaptor 9V/1A** — Alimentează Arduino prin jack-ul DCRegulatorul intern al Arduino furnizează 5V tuturor perifericelor.+{{:​pm:​prj2026:​bianca.popa1106:​diaconu_alexandru_schema_electrica.png?200|}}
  
----+===== Software Design =====
  
-## Hardware Design+**Mediu de dezvoltare:​** Arduino IDE 2.x
  
-### Listă de Componente+**Biblioteci folosite:​** 
 +  * ''​Adafruit_NeoPixel''​ — control bandă LED WS2812B 
 +  * ''​LiquidCrystal_I2C''​ — control LCD prin I2C 
 +  * ''​avr/​interrupt.h''​ — întreruperi hardware (built-in)
  
-| Componentă | Specificații | Cantitate | +**Concepte de laborator:​**
-|---|---|---| +
-| Arduino Uno R3 (ATmega328P) | DIP, compatibil Arduino | 1 | +
-| Bandă LED WS2812B | 60 LED/m, 30 LED-uri folosite (50cm) | 1 | +
-| Buton Arcade cu LED | 16mm, 3–6V, roșu | 1 | +
-| Buton Arcade cu LED | 16mm, 3–6V, albastru | 1 | +
-| Potențiometru Rotativ | 10kΩ liniar (B10K) | 1 | +
-| Buzzer Pasiv | 3.3V | 1 | +
-| LCD 1602 + modul I2C | PCF8574, 5V, backlight verde | 1 | +
-| Adaptor Alimentare | 9V / 1A, jack DC 5.5×2.1mm | 1 | +
-| Breadboard | 830 puncte, MB-102 | 1 | +
-| Fire Dupont M-F | 30cm, 40 buc | 1 set | +
-| Fire Dupont M-M | 10cm, 40 buc | 1 set | +
-| Rezistor 330Ω | 1/4W THT | 3 | +
-| Rezistor 10kΩ | 1/4W THT | 5 | +
-| Rezistor 100Ω | 1/4W THT | 3 | +
-| Condensator Electrolitic | 1000µF / 35V, THT | 1 | +
-| Cablu USB A-B | 0.3m | 1 |+
  
-### Conexiuni Electrice+  * **Lab 2 — Întreruperi:​** Butoanele conectate pe INT0 (D2) și INT1 (D3), tratate prin ISR. Timer1 în mod CTC pentru cronometrul rundei (tick 1ms). Debouncing software cu fereastră de 50ms. 
 +  * **Lab 3 — PWM:** Timer2 în mod Fast PWM pe pinul D11 (OC2A) pentru buzzer. Frecvențe diferite: ~500Hz (mutare J1), ~800Hz (mutare J2), melodie la câștig. 
 +  * **Lab 4 — ADC:** Potențiometrul citit pe A0. Valoarea 0–1023 mapată la dificultate 1–8 (numărul de apăsări necesare per mutare LED). 
 +  * **Lab 6 — I2C:** LCD comunică pe pinii A4 (SDA) / A5 (SCL). Adresă PCF8574: 0x27. Actualizare la fiecare 500ms.
  
-| Componentă | Pin Arduino | Observații | +===== Rezultate Obținute =====
-|---|---|---| +
-| Buton J1 (semnal) | D2 (INT0) | Pull-down 10kΩ la GND | +
-| Buton J2 (semnal) | D3 (INT1) | Pull-down 10kΩ la GND | +
-| Buton J1 LED (+) | D4 | Rezistor intern inclus în buton | +
-| Buton J2 LED (+) | D5 | Rezistor intern inclus în buton | +
-| Bandă LED (DIN) | D6 | Rezistor 330Ω în serie | +
-| Bandă LED (5V) | 5V | Condensator 1000µF în paralel | +
-| Bandă LED (GND) | GND | | +
-| Buzzer (+) | D11 (OC2A) | Rezistor 100Ω în serie | +
-| Potențiometru (cursor) | A0 | | +
-| Potențiometru (capete) | 5V / GND | | +
-| LCD SDA | A4 | Magistrală I2C | +
-| LCD SCL | A5 | Magistrală I2C | +
-| LCD VCC | 5V | | +
-| LCD GND | GND | |+
  
-*(Schema electrică completă va fi adăugată — desenată în Fritzing/Wokwi)*+//De completat după asamblare și testare.//
  
----+===== Concluzii =====
  
-## Software Design+//De completat după finalizarea proiectului.//​
  
-### Mediu de Dezvoltare +===== Download =====
-- **Arduino IDE 2.x** — IDE principal pentru scriere cod și upload +
-- **Monitor Serial Arduino** — pentru debugging în timp real+
  
-### Biblioteci ​și Surse Third-Party +Codul sursă, schema electrică ​și fotografiile proiectului sunt disponibile pe GitHub:
-- **Adafruit NeoPixel** — controlul benzii LED WS2812B (`Adafruit_NeoPixel.h`) +
-- **LiquidCrystal_I2C** — controlul LCD-ului prin I2C (`LiquidCrystal_I2C.h`) +
-- **avr/​interrupt.h** — gestionarea întreruperilor hardware (bibliotecă AVR built-in)+
  
-### Concepte de Laborator Utilizate+[[https://​github.com/​alexandru-diaconu/​cyberpull|Repository GitHub CyberPull]]
  
-**Laboratorul 2 — Întreruperi & Timere:** +===== Jurnal =====
-- Ambele butoane conectate la `INT0` (D2) și `INT1` (D3) +
-- Întreruperile hardware declanșează `ISR(INT0_vect)` și `ISR(INT1_vect)` — fără polling, zero inputuri pierdute +
-- `Timer1` în modul CTC pentru cronometrul rundei (tick de 1ms → funcția `uptime_ms()`) +
-- Debouncing software folosind `uptime_ms()` — fereastră de 50ms după fiecare apăsare+
  
-**Laboratorul 3 — Timere & PWM:** +^ Dată ^ Activitate ^ 
-- `Timer2` configurat în modul Fast PWM pe pinul `D11` (OC2A) +| Mai 2026 | Definirea conceptului,​ finalizarea listei de componente | 
-- Frecvența buzzerului setată prin scrierea registrului `OCR2A` +| TBD | Primirea componentelor și asamblarea hardware | 
-- Tonuri diferite: ~500Hz (mutare J1)~800Hz (mutare J2)melodie de victorie la finalul rundei+| TBD | Implementare software — întreruperi + control LED | 
 +| TBD | Implementare software — ADCPWMI2C | 
 +| TBD | Testare și debugging | 
 +| TBD | Demo final și documentație |
  
-**Laboratorul 4 — ADC:** +===== Software Design =====
-- Potențiometrul citit pe `A0` prin `analogRead()` sau acces direct la registrele ADC +
-- Valoarea pe 10 biți (0–1023) mapată la dificultate:​ `dificultate ​map(valADC, 0, 1023, 1, 8)` +
-- Valoare mai mare → mai multe apăsări necesare pentru a avansa LED-ul+
  
-**Laboratorul 6 — I2C:** +**Mediu de dezvoltare**
-- LCD-ul comunică prin protocolul I2C pe pinii A4 (SDA) și A5 (SCL) +
-- Adresa I2C a PCF8574: `0x27` (default) +
-- Actualizare display la fiecare 500ms: linia de scor + cronometrul rundei+
  
-### Algoritmi și Logica Jocului ​(Planificat)+  * IDE: Arduino IDE 2.3.8 
 +  * Placă: Arduino Uno (ATmega328P) 
 +  * Limbaj: C / C++
  
-``` +**Biblioteci third-party**
-INIȚIALIZARE:​ +
-  ​Poziție LED = 15 (centru) +
-  - Scor J1 = 0, Scor J2 = 0 +
-  - contor_apasari = 0 +
-  - dificultate = citire ADC → mapare la 1-8+
  
-BUCLĂ PRINCIPALĂ:​ +^ Bibliotecă ^ Rol ^ 
-  - Citește potențiometrul → actualizează dificultatea +| Adafruit NeoPixel | Controlul benzii LED WS2812B adresabile | 
-  - Actualizează ​LCD (scor + timp+| LiquidCrystal_I2C | Comunicare cu LCD 16x2 prin protocolul I2C | 
-  Verifică condiția de câștig: +| avr/​interrupt.h | Gestionarea întreruperilor hardware INT0/​INT1 ​(built-in AVR| 
-      dacă pos == 0 → J1 câștigă +| Wire.h | Suport I2C pentru comunicarea cu LCD (built-in Arduino) |
-      dacă pos == 29 → J2 câștigă+
  
-ISR(INT0_vect) [Buton J1]: +**Arhitectura sistemului**
-  - verificare debounce +
-  - contor_apasari++ +
-  - dacă contor_apasari >= dificultate:​ poziție_LED--,​ contor = 0 +
-  - redă ton (500Hz, 50ms)+
  
-ISR(INT1_vect) [Buton J2]: +Firmware-ul este structurat într-un singur fișier principal:
-  ​verificare debounce +
-  ​contor_apasari++ +
-  - dacă contor_apasari >= dificultatepoziție_LED++,​ contor = 0 +
-  - redă ton (800Hz, 50ms)+
  
-CÂȘTIG: +  * ''​cyberpull.ino''​ — punctul de intrare. Inițializează toate perifericele (bandă ​LED, LCD, butoane, buzzer, potențiometru),​ configurează întreruperile hardware, pornește jocul și gestionează logica principală în bucla ''​loop()''​.
-  - redă melodie de victorie +
-  - clipesc ​toate LED-urile din jumătatea câștigătorului +
-  - actualizează scorul pe LCD +
-  - așteptare 3s → rundă nouă +
-```+
  
----+Pinout-ul complet:
  
-## Rezultate Obținute+^ Pin Arduino ^ Componentă ^ Rol ^ 
 +| D2 (INT0) | Buton J1 | Întrerupere externă — apăsare jucător 1 | 
 +| D3 (INT1) | Buton J2 | Întrerupere externă — apăsare jucător 2 | 
 +| D4 | LED buton J1 | Iluminare buton jucător 1 | 
 +| D5 | LED buton J2 | Iluminare buton jucător 2 | 
 +| D6 | Bandă LED WS2812B (DIN) | Semnal date bandă LED | 
 +| D11 (OC2A) | Buzzer pasiv | PWM Timer2 — generare sunete | 
 +| A0 | Potențiometru 10kΩ | ADC — citire dificultate | 
 +| A4 (SDA) | LCD I2C | Linie date I2C | 
 +| A5 (SCL) | LCD I2C | Linie clock I2C |
  
-*(De completat după asamblarea hardware și testare)*+**Detalii cheie de implementare**
  
-Rezultate așteptate:​ +//Întreruperi hardware pentru butoane ​(Lab 2)//
-- LED-ul răspunde instant la apăsările butoanelor fără latență perceptibilă +
-- Potențiometrul de dificultate schimbă vizibil dinamica jocului de la 1 apăsare/mutare la 8 apăsări/mutare +
-- LCD-ul actualizează scorul în timp real +
-- Buzzerul produce sunete distincte la fiecare eveniment din joc +
-- O sesiune completă de joc poate fi rulată fără conexiune la PC (standalone prin adaptorul de 9V)+
  
----+Butoanele jucătorilor sunt conectate pe pinii INT0 (D2) și INT1 (D3). La fiecare apăsare se declanșează automat rutinele ''​ISR(INT0_vect)''​ și ''​ISR(INT1_vect)''​. Aceasta garantează că nicio apăsare nu este pierdută, indiferent de ce face jucatorul în acel moment.
  
-## Concluzii+Fiecare ISR implementează debouncing software cu o fereastră de 50ms — dacă două apăsări vin în mai puțin de 50ms, a doua este ignorată (zgomot mecanic al butonului).
  
-*(De completat după finalizarea proiectului)*+Logica de mutare a LED-ului: 
 +  ​ISR numără apăsările într-un contor 
 +  ​Când contorul atinge valoarea de dificultate → LED-ul se mută o poziție 
 +  * Contorul se resetează la 0
  
----+//Control buzzer prin PWM (Lab 3)//
  
-## Cod Sursă și Resurse GitHub+Buzzerul pasiv este controlat de Timer2 în modul CTC pe pinul D11 (OC2A). Frecvența sunetului se calculează după formula:
  
-Tot codul sursă, schemele hardware și fotografiile proiectului sunt disponibile pe GitHub:+  OCR2A = F_CPU / (2 × 64 × frecvență) − 1
  
-**Repository GitHub:** *(link de adăugat)*+Sunete generate: 
 +  ​* **400 Hz** — mutare spre J1 
 +  ​**600 Hz** — mutare spre J2 
 +  * **Melodie Do-Re-Mi-Fa-Sol** — victorie rundă
  
-Structura repository-ului:​ +//Citire potențiometru prin ADC (Lab 4)//
-``` +
-cyberpull/ +
-├── src/ +
-│   ​└── main.ino +
-├── hardware/ +
-│   ​├── schema_electrica.fzz +
-│   ​└── diagrama_cablaj.png +
-├── images/ +
-│   ​├── cutie_sus.jpg +
-│   ​├── cutie_jos.jpg +
-│   ​└── demo.jpg +
-└── README.md +
-```+
  
----+Potențiometrul este citit pe pinul A0 folosind ''​analogRead()''​. Valoarea de 10 biți (0–1023) este mapată la intervalul de dificultate 1–8 folosind funcția ''​map()'':​
  
-## Jurnal+<code cpp> 
 +difficulty = map(analogRead(A0),​ 0, 1023, 1, 8); 
 +</​code>​
  
-| Dată | Activitate | +Dificultatea reprezintă numărul de apăsări necesare pentru a muta LED-ul o poziție. La dificultate 1 fiecare apăsare mută LED-ulla dificultate 8 sunt necesare 8 apăsări. 
-|---|---| + 
-| Mai 2026 | Definirea conceptuluifinalizarea listei de componente | +//​Comunicare LCD prin I2C (Lab 6)//
-| *(TBD)* | Comandarea și primirea componentelor | +
-| *(TBD)* | Asamblarea hardware și cablajul | +
-| *(TBD)* | Dezvoltare software — întreruperi + control LED | +
-| *(TBD)* | Dezvoltare software — ADC, PWM, I2C +
-| *(TBD)* | Testare integrată și debugging | +
-| *(TBD)* | Demo final și documentație |+
  
----+LCD-ul 16x2 cu modulul PCF8574 comunică prin protocolul I2C pe pinii A4 (SDA) și A5 (SCL), la adresa ''​0x27''​. Display-ul se actualizează la fiecare 500ms cu scorul curent și timpul scurs din rundă.
  
-## Bibliografie și Resurse+**Funcții implementate**
  
-### Resurse Hardware +^ Funcție ^ Rol ^ 
-- [Datasheet ATmega328P](https://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf+| ''​setup()''​ | Inițializează toate perifericele,​ configurează întreruperile,​ pornește jocul | 
-- [Datasheet WS2812B ​LED](https://​cdn-shop.adafruit.com/​datasheets/​WS2812B.pdf+| ''​loop()''​ | Bucla principalăcitește ADC, actualizează LED și LCD, verifică câștig | 
-[Datasheet PCF8574 ​I2C Expander](https://​www.ti.com/​lit/​ds/​symlink/​pcf8574.pdf+| ''​ISR(INT0_vect)''​ | Tratează apăsarea butonului J1 — debounce + mutare LED stânga | 
-- [Schema Arduino Uno R3](https://​www.arduino.cc/​en/​uploads/​Main/​Arduino_Uno_Rev3-schematic.pdf)+| ''​ISR(INT1_vect)''​ | Tratează apăsarea butonului J2 — debounce + mutare ​LED dreapta | 
 +| ''​afiseazaBanda()''​ | Actualizează banda LEDzona J1 roșu, zona J2 albastru, LED activ alb | 
 +| ''​animatieVictorie()''​ | Clipire bandă LED în culoarea câștigătorului | 
 +| ''​animatieStart()''​ | Animație de intro la începerea rundei | 
 +| ''​buzzerOn()''​ | Pornește buzzerul la frecvența specificată prin Timer2 CTC | 
 +| ''​buzzerOff()''​ | Oprește buzzerul | 
 +| ''​beep()''​ | Emite un sunet scurt la frecvența și durata specificate | 
 +| ''​melodieVictorie()''​ | Redă melodia Do-Re-Mi-Fa-Sol la câștigarea rundei | 
 +| ''​citesteDificultate()''​ | Citește ADC și returnează dificultatea 1–8 | 
 +| ''​afiseazaLCD()''​ | Afișează scorul și cronometrul pe LCD prin I2C 
 +| ''​afiseazaVictorieLCD()''​ | Afișează mesajul de victorie a rundei pe LCD | 
 +| ''​verificaCastig()''​ | Verifică dacă LED-ul a ajuns la capătul benzii | 
 +| ''​resetRunda()''​ | Resetează pozițiile și contoarele pentru o rundă nouă | 
 +| ''​initIntreruperi()''​ | Configurează registrele EICRA și EIMSK pentru INT0/INT1 |
  
-### Resurse ​Software +===== Bibliografie/​Resurse ​=====
-- [Biblioteca Adafruit NeoPixel](https://​github.com/​adafruit/​Adafruit_NeoPixel) +
-- [Biblioteca LiquidCrystal_I2C](https://​github.com/​johnrickman/​LiquidCrystal_I2C) +
-- [Arduino Reference — attachInterrupt()](https://​www.arduino.cc/​reference/​en/​language/​functions/​external-interrupts/​attachinterrupt/​) +
-- [Arduino Reference — analogRead()](https://​www.arduino.cc/​reference/​en/​language/​functions/​analog-io/​analogread/​) +
-- [Secrets of Arduino PWM](https://​docs.arduino.cc/​tutorials/​generic/​secrets-of-arduino-pwm/​)+
  
-### Materiale de Laborator (OCW CS Pub) +**Resurse Hardware:** 
-[Laboratorul 2: Întreruperi & Timere](https://ocw.cs.pub.ro/courses/pm/lab/lab2-2023) +  * [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf|Datasheet ATmega328P]] 
-[Laboratorul 3: Timere & PWM](https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab3-2023-2024) +  * [[https://cdn-shop.adafruit.com/datasheets/WS2812B.pdf|Datasheet WS2812B]] 
-[Laboratorul 4: ADC](https://ocw.cs.pub.ro/courses/pm/​lab/​lab4-2023-2024) +  * [[https://www.ti.com/lit/ds/symlink/pcf8574.pdf|Datasheet PCF8574 I2C]]
-[Laboratorul 6: I2C](https://ocw.cs.pub.ro/courses/pm/lab/lab6-2023-2024)+
  
 +**Resurse Software:**
 +  * [[https://​github.com/​adafruit/​Adafruit_NeoPixel|Biblioteca Adafruit NeoPixel]]
 +  * [[https://​github.com/​johnrickman/​LiquidCrystal_I2C|Biblioteca LiquidCrystal_I2C]]
 +  * [[https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab2-2023|Lab 2: Întreruperi & Timere — OCW CS Pub]]
 +  * [[https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab3-2023-2024|Lab 3: Timere & PWM — OCW CS Pub]]
 +  * [[https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab4-2023-2024|Lab 4: ADC — OCW CS Pub]]
 +  * [[https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab6-2023-2024|Lab 6: I2C — OCW CS Pub]]
pm/prj2026/bianca.popa1106/alexandru.diaconu.1778344268.txt.gz · Last modified: 2026/05/09 19:31 by alexandru.diaconu04
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0