Differences

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

Link to this comparison view

pm:prj2026:atoader:theodor.mitrofan [2026/05/22 18:33]
theodor.mitrofan [Software Design]
pm:prj2026:atoader:theodor.mitrofan [2026/05/25 12:03] (current)
theodor.mitrofan [Introducere]
Line 10: Line 10:
 Pentru mine, utilitatea este didactica si practica: invat sa stapanesc interactiunea dintre senzori asincroni (RFID, Ultrasonic) si actuatoare (Servomotor) folosind o arhitectura de tip Finite State Machine (FSM), eliminand total functiile blocante de tip delay(). Pentru un utilizator real, sistemul ofera un feedback clar (pe ecranul LCD) si un acces fluid. Pentru mine, utilitatea este didactica si practica: invat sa stapanesc interactiunea dintre senzori asincroni (RFID, Ultrasonic) si actuatoare (Servomotor) folosind o arhitectura de tip Finite State Machine (FSM), eliminand total functiile blocante de tip delay(). Pentru un utilizator real, sistemul ofera un feedback clar (pe ecranul LCD) si un acces fluid.
  
-Laboratoarele folosite au fost 3-timere, 5-spi si 6-i2c+Laboratoarele folosite au fost 3-timere, PWM, 5-spi si 6-i2c
  
 ===== Descriere generala ===== ===== Descriere generala =====
Line 131: Line 131:
 ==== Controlul barierei ==== ==== Controlul barierei ====
  
-Servomotorul ​este controlat prin PWM la 50 Hz generat de Timer1 in mod Fast PWM cu ICR1 = 39999 (TOP) si prescaler /8. Latimea ​pulsului ​este setata prin OCR1A: +Bariera ​este actionata de un servomotor cu rotatie continua (CR), controlat prin PWM la 50 Hz generat de Timer1 in mod Fast PWM cu ICR1 = 40000 (TOP) si prescaler /8. Pentru acest tip de servomotor, latimea ​pulsului setata prin OCR1A nu dicteaza o pozitie fixa a bratului, ci directia si viteza de rotatie a motorului
-  * pozitia inchis: OCR1A = 2700 (~1.35 ms) +  * stare de STOP (rotor oprit): OCR1A = 3000 (~1.ms) 
-  * pozitia deschis: OCR1A = 3300 (~1.65 ms) +  * miscare sens deschidere: OCR1A = 2400 (~1.ms) 
- +  ​* ​miscare ​sens inchidere: OCR1A = 3600 (~1.8 ms)
-Pentru a asigura o miscare ​fiabila a servoului, functia servo_set_position() trimite intai o valoare de "​pre-pas"​ exagerata (2300 pentru inchis, 3700 pentru deschis), urmata de un delay de 200 ms, dupa care se aseaza pe valoarea finala. Acest pre-pas forteaza servoul sa porneasca miscarea chiar daca era deja aproape de pozitia target.+
  
 +Pentru a asigura o cursa corecta a barierei, functia servo_set_position() activeaza miscarea in directia dorita (deschis sau inchis) pentru un timp prestabilit (ROT_TIME_MS,​ calibrat pentru unghiul de ~90 de grade). Dupa expirarea acestui delay generat de _delay_ms(),​ semnalul PWM revine automat la valoarea de STOP (3000) pentru a frana si opri rotorul in noua pozitie. Aceasta calibrare inlocuieste controlul clasic in bucla inchisa al servomotoarelor standard.
 ==== Validarea functionalitatilor ==== ==== Validarea functionalitatilor ====
  
Line 169: Line 169:
 ===== Rezultate Obtinute ===== ===== Rezultate Obtinute =====
  
-===== Concluzii ===== +[[https://​github.com/​TheodorMitrofan/​Smart-parking-system|Link github]]
-===== Download =====+
  
 +[[https://​youtube.com/​shorts/​nlaD8SWR9kA?​feature=share|Link video demo]]
  
  
pm/prj2026/atoader/theodor.mitrofan.1779464034.txt.gz · Last modified: 2026/05/22 18:33 by theodor.mitrofan
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