This is an old revision of the document!
Author: Voicu Teodora-Andreea, 333CA
1. Dispozitivul e zguduit → accelerometrul detecteaza miscare peste SHAKE_THRESHOLD 2. Stare SHAKING → afiseaza “Shake!” si porneste redarea DICE.WAV pe buzzer 3. Dupa SHAKE_TIMEOUT fara miscare → opreste WAV, genereaza doua valori random (1–6) și le afiseaza pe OLED 4. Dupa RESULT_HOLD → revine la “READY!” și asteapta urmatorul shake
Lista Componente:
Functional Overview:
* OLED SSD1306 (I²C)
Sursa de alimentare a circuitului intern şi a driver-ului display-ului.
Reţeaua de masă comună.
Linia de date I²C: aici circulă octeţi de la Arduino către pixelii OLED-ului.
Linia de ceas I²C: sincronizează transferul de date pe SDA.
De ce OLED? – Afișează mesaje şi rezultatul zarurilor într-un format grafic compact, cu consum redus de energie.
* Modul SD-card (SPI)
Alimentează convertorul de nivel şi interfaţa SPI.
Referinţa de masă pentru comunicaţia SPI.
Selectează modulul SD pe magistrala SPI (când e LOW, modulul răspunde).
Trimite datele din Arduino spre SD (de exemplu, comenzi de citire).
Primeşte datele de la SD spre Arduino (conţinutul fişierului WAV).
Ceasul pentru sincronizarea transferului de biţi MOSI/MISO.
De ce SD-card? – Permite stocarea fişierului WAV de sunet de zaruri, fără să încarce memoria internă a plăcii.
* Buzzer pasiv
Pinul PWM generează semnalul audio propriu-zis (tonuri variabile conform valorilor citite din WAV).
Redă amplitudinea semnalului PWM către buzzer.
Întoarcerea curentului şi referinţa de masă.
Ce face PWM? – Pulse Width Modulation modulează lăţimea impulsurilor pentru a crea frecvenţe audio perceptibile ca sunet.
* Modul LIS2DH12 (I²C)
Alimentează senzorul cu tensiune stabilă de 3.3 V.
Stabilirea referinţei zero pentru măsurări.
Linia de date I²C: transmite valorile brute de acceleraţie.
Linia de ceas I²C pentru sincronizarea transferului de date.
Configurează adresa I²C la 0x19 (pull-up intern), astfel evitând conflicte pe bus.
CS rămâne numaidecât HIGH; senzorul rămâne mereu activ pe I²C.
De ce accelerometru LIS2DH12? – Detectează gestul de „shake” cu precizie, fără butoane suplimentare, şi are consum redus.
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.