Differences

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

Link to this comparison view

pm:prj2024:vstoica:bogdan.sprincenatu [2024/05/27 09:02]
bogdan.sprincenatu [Software Design]
pm:prj2024:vstoica:bogdan.sprincenatu [2024/05/27 23:37] (current)
bogdan.sprincenatu [Rezultate Obţinute]
Line 42: Line 42:
 Acest cod implementează un sistem automat de dozare a apei, controlat prin telecomandă infraroșu și utilizând senzori cu ultrasunete pentru a detecta nivelul apei și prezența unui pahar. Codul este scris pentru un microcontroller Arduino și utilizează un display LCD pentru a afișa mesaje către utilizator. Iată o descriere detaliată a codului: Acest cod implementează un sistem automat de dozare a apei, controlat prin telecomandă infraroșu și utilizând senzori cu ultrasunete pentru a detecta nivelul apei și prezența unui pahar. Codul este scris pentru un microcontroller Arduino și utilizează un display LCD pentru a afișa mesaje către utilizator. Iată o descriere detaliată a codului:
  
-### Biblioteci Incluse +Biblioteci Incluse 
-*Wire.h*: Utilizată pentru comunicarea I2C. +- Wire.h: Utilizată pentru comunicarea I2C. 
-*LiquidCrystal_I2C.h*: Controlul display-ului LCD prin I2C. +- LiquidCrystal_I2C.h:​ Controlul display-ului LCD prin I2C. 
-*IRremote.h*: Pentru a citi semnalele de la telecomanda infraroșu.+- IRremote.h: Pentru a citi semnalele de la telecomanda infraroșu.
  
-### Definirea Componentelor +Definirea Componentelor 
-*LiquidCrystal_I2C lcd(0x27, 16, 2)*: Inițializează display-ul LCD cu adresa I2C 0x27, având 16 coloane și 2 rânduri. +- LiquidCrystal_I2C lcd(0x27, 16, 2): Inițializează display-ul LCD cu adresa I2C 0x27, având 16 coloane și 2 rânduri. 
-*decode_results results*: Structură pentru a stoca rezultatele decodării semnalului IR. +- decode_results results: Structură pentru a stoca rezultatele decodării semnalului IR. 
-*Pinii de conexiune*+- Pinii de conexiune:​ 
-  - *IRPIN*: Pinul pentru receptorul IR. +  - IRPIN: Pinul pentru receptorul IR. 
-  - *TRIG_PIN1 și ECHO_PIN1*: Pinii pentru senzorul de nivel al apei. +  - TRIG_PIN1 și ECHO_PIN1: Pinii pentru senzorul de nivel al apei. 
-  - *TRIG_PIN2 și ECHO_PIN2*: Pinii pentru senzorul de prezență a paharului. +  - TRIG_PIN2 și ECHO_PIN2: Pinii pentru senzorul de prezență a paharului. 
-  - *BUZZER_PIN*: Pinul pentru buzzer.+  - BUZZER_PIN: Pinul pentru buzzer.
   - *RELAY_PIN*:​ Pinul pentru releu.   - *RELAY_PIN*:​ Pinul pentru releu.
-*Coduri pentru butoane IR*+- Coduri pentru butoane IR: 
-  - *BUTTON_LEFT*: Cod pentru butonul de alegere a paharului mic. +  - BUTTON_LEFT:​ Cod pentru butonul de alegere a paharului mic. 
-  - *BUTTON_RIGHT*: Cod pentru butonul de alegere a paharului mare. +  - BUTTON_RIGHT:​ Cod pentru butonul de alegere a paharului mare. 
-  - *BUTTON_OK*: Cod pentru butonul de confirmare. +  - BUTTON_OK: Cod pentru butonul de confirmare. 
-*Constante*+- Constante:​ 
-  - *MAX_WATER_LEVEL*: Nivelul maxim de apă necesar. +  - MAX_WATER_LEVEL:​ Nivelul maxim de apă necesar. 
-  - *MIN_WATER_LEVEL*: Nivelul minim de apă. +  - MIN_WATER_LEVEL:​ Nivelul minim de apă. 
-  - *MAX_GLASS_DISTANCE*: Distanța maximă la care este detectat paharul. +  - MAX_GLASS_DISTANCE:​ Distanța maximă la care este detectat paharul. 
-  - *SMALL_GLASSși *BIG_GLASS*: Timpul de turnare pentru pahare mici și mari.+  - SMALL_GLASS și BIG_GLASS: Timpul de turnare pentru pahare mici și mari.
  
-### Setup+Setup
 - Inițializează LCD-ul și buzzer-ul. - Inițializează LCD-ul și buzzer-ul.
 - Configurează pinii pentru senzorii de ultrasunete,​ releu și receptorul IR. - Configurează pinii pentru senzorii de ultrasunete,​ releu și receptorul IR.
 - Pornește citirea semnalului IR și comunicarea serială. - Pornește citirea semnalului IR și comunicarea serială.
  
-### Loop+Loop
 - Afișează pe serial monitor distanțele citite de la senzorii de apă și pahar. - Afișează pe serial monitor distanțele citite de la senzorii de apă și pahar.
 - Verifică dacă a fost primit un semnal IR: - Verifică dacă a fost primit un semnal IR:
Line 80: Line 80:
     - Dacă sunt îndeplinite condițiile,​ începe procesul de turnare a apei.     - Dacă sunt îndeplinite condițiile,​ începe procesul de turnare a apei.
  
-### Funcții Auxiliare +Funcții Auxiliare 
-*beep()*: Emite un sunet de avertizare prin buzzer. +- beep(): Emite un sunet de avertizare prin buzzer. 
-*pourWater()*: Activează releul pentru a turna apă pentru timpul specificat și resetează variabila pourTime. +- pourWater():​ Activează releul pentru a turna apă pentru timpul specificat și resetează variabila pourTime. 
-*isWater()*: Verifică dacă nivelul apei este suficient. +- isWater(): Verifică dacă nivelul apei este suficient. 
-*isGlass()*: Verifică dacă este prezent un pahar. +- isGlass(): Verifică dacă este prezent un pahar. 
-*readWaterLevel()*: Citește și returnează nivelul apei folosind senzorul cu ultrasunete. +- readWaterLevel():​ Citește și returnează nivelul apei folosind senzorul cu ultrasunete. 
-*readGlassDistance()*: Citește și returnează distanța până la pahar folosind senzorul cu ultrasunete.+- readGlassDistance():​ Citește și returnează distanța până la pahar folosind senzorul cu ultrasunete.
  
-### Fluxul de Operare+Fluxul de Operare
 1. Utilizatorul apasă un buton pe telecomandă pentru a selecta mărimea paharului. 1. Utilizatorul apasă un buton pe telecomandă pentru a selecta mărimea paharului.
 2. Codul IR este citit și interpretat. 2. Codul IR este citit și interpretat.
Line 99: Line 99:
 </​note>​ </​note>​
  
-===== Rezultate Obţinute ===== 
- 
-<note tip> 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. 
-</​note>​ 
- 
-===== Concluzii ===== 
  
 ===== Download ===== ===== Download =====
  
 <note warning> <note warning>
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). +{{:pm:prj2024:vstoica:bogdan_sprincenatu_332cc.zip|}}
- +
-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**.+
 </​note>​ </​note>​
  
-===== Jurnal ===== 
- 
-<note tip> 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. 
-</​note>​ 
- 
-===== Bibliografie/​Resurse ===== 
- 
-<​note>​ 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. 
-</​note>​ 
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ 
  
pm/prj2024/vstoica/bogdan.sprincenatu.1716789773.txt.gz · Last modified: 2024/05/27 09:02 by bogdan.sprincenatu
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