This is an old revision of the document!
Servo.h
: Pentru controlul precis al servomotorului. * LiquidCrystal.h
: Pentru gestionarea afisajului LCD 16×2. * Algoritmi si structuri implementate: * Monitorizarea luminozitatii: Doua fotorezistoare (LDR-uri) detecteaza obstacolele pe ecran, comparand valorile cu praguri predefinite pentru decizii de saritura/aplecare. * Masina de stari (State Machine): Controleaza miscarile servomotorului non-blocant, cu stari precum IDLE
, WAITING_TO_MOVE_UP/DOWN
(cu delay de sincronizare) si MOVING_UP/DOWN
. * Intreruperi ADC: Asigura citirea rapida si eficienta a valorilor de la LDR-uri; o intrerupere la finalizarea unei conversii initiaza imediat urmatoarea pe celalalt LDR. * Buton de Reset: Permite repornirea jocului si resetarea contoarelor, incluzand debounce. * Modul de Pauza: Simulatorul intra in pauza la inactivitate prelungita, asteptand resetarea manuala. * Surse si functii implementate: * Functii de initializare (setup()). * Bucla de executie principala (loop()) continand logica jocului. * Functii dedicate pentru configurarea si gestionarea intreruperilor ADC (e.g., setupADCInterrupt()
, startADCConversion()
). * Rutina de serviciu a intreruperii ADC (ISR(ADC_vect)
) pentru procesarea datelor senzorilor. * Afisaj pe LCD al timpului de joc, numarului de sarituri si aplecari. * LED-uri pentru feedback vizual al luminozitatii LDR1.