Differences

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

Link to this comparison view

pm:prj2026:alexandru.predescu:bogdan.andrei0509 [2026/05/26 14:46]
bogdan.andrei0509 [Arhitectura Functiilor]
pm:prj2026:alexandru.predescu:bogdan.andrei0509 [2026/05/26 17:17] (current)
bogdan.andrei0509
Line 91: Line 91:
 ==== Fluxul de Executie ==== ==== Fluxul de Executie ====
  
-1. **Etapa de Initializare:​** La alimentarea placii, se apeleaza ​''​Hardware_Init'' ​care configureaza registrele de directie ​(DDRDDDRC) si pregateste comunicarea cu ecranul ​si senzorii.+1. **Etapa de Initializare:​** La alimentarea placii, se configureaza perifericele prin functiile de initializare: ​''​I2C_init()'' ​si ''​LCD_init()''​ pentru pornirea ecranului''​ADC_init()''​ pentru senzorii de lumina ​si ''​Interrupt_init()''​ pentru activarea butoanelor pe pinii de intreruperi externe (PD2 si PD3). Tot acum se seteaza pinii de iesire pentru LED-uri, buzzer si servomotor (DDRB si DDRD).
  
-2. **Etapa de Scanare (Loop):** In bucla infinita, se apeleaza ciclic ​''​Actualizeaza_Locuri_Si_Numara'' ​pentru a verifica statusul ​celor 4 locuriDatele sunt procesate ​si trimise instant catre LCD prin ''​LCD_Afiseaza_Locuri''​.+2. **Etapa de Scanare ​si Monitorizare ​(Loop):** In bucla principala ​''​main()''​, microcontrolerul citeste ciclic starea ​celor 4 senzori LDR folosind ''​ADC_read()''​In functie de pragul de lumina, algoritmul aprinde LED-ul corespunzator (Verde pentru loc liber, Rosu pentru loc ocupat) ​si calculeaza in timp real numarul total de ''​locuri_libere''​.
  
-3. **Etapa de Decizie:** Sistemul monitorizeaza pinul butonului ​(PD6). La apasare, algoritmul verifica variabila de locuri ​libere: daca este > 0, se apeleaza ''​Bariera_Deschide''​in caz contrarse declanseaza ''​Buzzer_Sunet_Eroare''​.+3. **Etapa de Afisare:** Datele procesate sunt trimise catre ecranul LCD 1602 prin functiile ''​LCD_command()''​ si ''​LCD_print()''​Daca mai exista ​locuri, se afiseaza numarul lordaca parcarea este plinape ecran va aparea mesajul "​PARCARE PLINA!"​.
  
 +4. **Etapa de Eveniment (Intreruperi):​** Sistemul reactioneaza instant la actiunile soferilor prin rutinele de intrerupere:​
 +  * **La apasarea butonului de Intrare (INT0):** Daca sunt locuri libere, se activeaza flag-ul ''​bariera_activa'',​ se afiseaza mesajul de bun venit si se apeleaza ''​servo_pozitie_sus()''​. Daca parcarea e plina, se activeaza flag-ul ''​parcare_plina_bip''​ si buzzerul emite 3 semnale sonore scurte de respingere.
 +  * **La apasarea butonului de Iesire (INT1):** Se ridica automat bariera pentru a permite iesirea masinii, afisand mesajul de drum bun.
 +
 +5. **Etapa de Resetare Bariera:** Dupa ce masina a trecut si timpul de asteptare s-a scurs, se apeleaza ''​servo_pozitie_jos()''​ pentru a cobori bariera, iar ecranul revine la starea initiala de monitorizare.
 ==== Cod sursa ==== ==== Cod sursa ====
 https://​github.com/​Bogdan594/​Smart-Parking-System/​tree/​main https://​github.com/​Bogdan594/​Smart-Parking-System/​tree/​main
 +
 +==== Video cu proiectul ====
 +https://​www.youtube.com/​watch?​v=XeezoRPa95w
pm/prj2026/alexandru.predescu/bogdan.andrei0509.1779795997.txt.gz · Last modified: 2026/05/26 14:46 by bogdan.andrei0509
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