Differences

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

Link to this comparison view

pm:prj2024:ccontasel:dragos.serban1411 [2024/05/24 21:41]
dragos.serban1411 [Software Design]
pm:prj2024:ccontasel:dragos.serban1411 [2024/05/27 00:25] (current)
dragos.serban1411 [Concluzii]
Line 47: Line 47:
 <note tip> <note tip>
   * mediu de dezvoltare Arduino IDE   * mediu de dezvoltare Arduino IDE
-  * biblioteci utilizate: Servo.h (pentru a controla cele două servomotoare),​ Wire.h (pentru comunicarea I2C), LiquidCrystal_I2C.h (pentru display), PinChangeInterrupt.h (pentru a crea întreruperi pe pinii care nu suportă întreruperi hardware în mod nativ). +  ​* concepte folosite: GPIO, întreruperi,​ timere, PWM, I2C 
-  * Link proiect GitHub: https://​github.com/​DragosSerban/​Proiect-PM/​blob/​main/​proiect-pm.ino +  ​* biblioteci utilizate: Servo.h (pentru a controla cele două servomotoare),​ Wire.h (pentru comunicarea I2C), LiquidCrystal_I2C.h (pentru display), PinChangeInterrupt.h (pentru a crea întreruperi pe pinii care nu suportă întreruperi hardware în mod nativ
-  * (etapa 3) surse şi funcţii implementate+
 </​note>​ </​note>​
  
 +Funcții implementate:​
 +  * setup(): configurează pinii de intrare și de ieșire, atașează întreruperi butoanelor pentru a detecta rapid apăsările și senzorilor IR pentru a detecta schimbările,​ atașează cele două servomotoare și le setează unghiul, inițializează LCD-ul. Folosesc conceptul de GPIO prin interacțiunea cu aceste componente electronice de input / output.
 +  * button1ISR() și button2ISR():​ setează flagurile corespunzătoare celor două butoane atunci când sunt apăsate.
 +  * irSensor1ISR() și irSensor2ISR() sunt rutine de întrerupere care detectează schimbarea senzorilor. Dacă senzorii nu detectează niciun vehicul, bariera va fi închisă după un timp de două secunde (am folosit timere — funcția millis()), pentru a lăsa suficient timp trecerii vehiculului. Dacă bariera detectează o mașină, atunci se deschide. De asemenea se ține incrementează / decrementează numărul de mașini care se află în parcare la momentul curent.
 +  * measureDistance(int trigPin, int echoPin) măsoară distanța cu ajutorul senzorului ultrasonic. Trimite un puls de 10 ms pe pinul de trigger și măsoară durata de timp până la ecou. Calculează distanța în cm și o returnează.
 +  * openBarrier() deschide bariera (90 grade) și closeBarrier() o închide (0 grade).
 +  * increaseLedIntensity() crește treptat intensitatea ​ folosind PWM, iar decreaseLedIntensity() o scade treptat prin aceeași metodă.
 +  * moveElevatorUp() și moveElevatorDown() controlează mișcarea liftului (sus / jos). Pentru urcare, liftul funcționează până când senzorul ultrasonic măsoară o distanță de 3 cm între tavanul încăperii cu elevatorul și lift. Pentru coborâre, acesta se mișcă până când distanța crește peste 13.5 cm. Este calculată înălțimea curentă la care se află liftul și este afișată pe display-ul cu I2C. Intensitatea led-ului este maximă atunci când liftul este la parter (indicând etajul curent) și minimă atunci când liftul este la etajul superior.
 +  * loop() verifică dacă a trecut o secundă de când a trecut ultima mașină și închide bariera. Crește contorul mașinilor, actualizează LCD-ul, verifică să nu se fi atins numărul maxim de mașini din parcare.
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +{{:​pm:​prj2024:​ccontasel:​img_7623.jpeg?​500|}} 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+{{:​pm:​prj2024:​ccontasel:​img_7624.jpeg?500|}} 
-</​note>​+{{:​pm:​prj2024:​ccontasel:​img_7625.jpeg?​500|}} 
 +{{:​pm:​prj2024:​ccontasel:​img_7626.jpeg?​500|}}
  
 ===== Concluzii ===== ===== Concluzii =====
 +A fost un proiect interesant deoarece am învățat să construiesc un proiect hardware complex utilizând platforma Arduino. Am învățat să utilizez și să integrez diferite tipuri de senzori (IR, ultrasonic) în proiectul meu, să colectez și procesez date, să controlez servomotoare de mai multe tipuri, mi-am îmbunătățit cunoștințele despre întreruperi,​ PWM, configurarea display-urilor LCD.
 ===== Download ===== ===== Download =====
  
 <note warning> <note warning>
-Implementarea software a proiectului se va gasi pe GitHub:+Implementarea software a proiectului se află pe GitHub:
  
 https://​github.com/​DragosSerban/​Proiect-PM/​blob/​main/​proiect-pm.ino https://​github.com/​DragosSerban/​Proiect-PM/​blob/​main/​proiect-pm.ino
Line 76: Line 85:
  
 <​note>​ <​note>​
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.+Utilizare display LCD și LiquidCrystal_I2C.h:​ 
 + 
 +https://​youtu.be/​CvqHkXeXN3M?​si=i-s5WMKo-jRrLlJO 
 + 
 +Estimare distanță cu ajutorul senzorului ultrasonic:​ 
 + 
 +https://www.geeksforgeeks.org/​distance-measurement-using-ultrasonic-sensor-and-arduino/​
 </​note>​ </​note>​
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2024/ccontasel/dragos.serban1411.1716576075.txt.gz · Last modified: 2024/05/24 21:41 by dragos.serban1411
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