Differences

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

Link to this comparison view

pm:prj2024:vstoica:bogdan.sprincenatu [2024/05/05 22:56]
bogdan.sprincenatu [Descriere generală]
pm:prj2024:vstoica:bogdan.sprincenatu [2024/05/27 23:37] (current)
bogdan.sprincenatu [Rezultate Obţinute]
Line 10: Line 10:
 <note tip> <note tip>
 Cu ajutorul receptorului infraroșu putem sa dam comenzi de la telecomandă. Senzorul ultrasonic din tankul de apa o să verifice dacă e suficientă apă pentru paharul mare(din telecomandă putem selecta pahar mare/mic), în situația în care nu este un buzzer va emite un semnal cu un mesaj  aferent afisat pe LCD, prin intermediul butoanelor CH- și CH+ de pe telecomandă vom putea selecta marimea paharului pe care vrem să il umplem. Cu ajutorul receptorului infraroșu putem sa dam comenzi de la telecomandă. Senzorul ultrasonic din tankul de apa o să verifice dacă e suficientă apă pentru paharul mare(din telecomandă putem selecta pahar mare/mic), în situația în care nu este un buzzer va emite un semnal cu un mesaj  aferent afisat pe LCD, prin intermediul butoanelor CH- și CH+ de pe telecomandă vom putea selecta marimea paharului pe care vrem să il umplem.
 +Schema bloc:
 +
 +
 +
 +{{:​pm:​prj2024:​vstoica:​bogdansprincenatu.png?​200|}}
 </​note>​ </​note>​
  
 +Schema electrica
 +
 +
 +
 +{{:​pm:​prj2024:​vstoica:​bogdan.jpeg?​200|}}
 ===== Hardware Design ===== ===== Hardware Design =====
  
Line 30: Line 40:
  
 <note tip> <note tip>
-Descrierea codului aplicaţiei (firmware):​ +Acest cod implementează un sistem automat ​de dozare a apeicontrolat prin telecomandă infraroșu șutilizând senzori cu ultrasunete pentru a detecta nivelul apei și prezența unui paharCodul este scris pentru un microcontroller Arduino șutilizează un display LCD pentru a afișa mesaje către utilizator. Iată o descriere detaliată a codului:
-  * mediu de dezvoltare (if any) (e.g. AVR StudioCodeVisionAVR) +
-  * librării şsurse 3rd-party (e.g. Procyon AVRlib) +
-  * algoritmi şstructuri pe care plănuiţi să le implementaţi +
-  * (etapa 3) surse şi funcţii implementate +
-</​note>​+
  
-===== Rezultate Obţinute =====+Biblioteci Incluse 
 +- Wire.h: Utilizată pentru comunicarea I2C. 
 +- LiquidCrystal_I2C.h:​ Controlul display-ului LCD prin I2C. 
 +- IRremote.h: Pentru a citi semnalele de la telecomanda infraroșu.
  
-<note tip> +Definirea Componentelor 
-Care au fost rezultatele ​obţinute în urma realizării proiectului vostru+- LiquidCrystal_I2C lcd(0x27, 16, 2): Inițializează display-ul LCD cu adresa I2C 0x27, având 16 coloane și 2 rânduri. 
-</​note>​+- decode_results results: Structură pentru a stoca rezultatele ​decodării semnalului IR
 +- Pinii de conexiune:​ 
 +  - IRPIN: Pinul pentru receptorul IR. 
 +  - TRIG_PIN1 și ECHO_PIN1: Pinii pentru senzorul de nivel al apei. 
 +  - TRIG_PIN2 și ECHO_PIN2: Pinii pentru senzorul de prezență a paharului. 
 +  - BUZZER_PIN: Pinul pentru buzzer. 
 +  - *RELAY_PIN*:​ Pinul pentru releu. 
 +- Coduri pentru butoane IR: 
 +  - BUTTON_LEFT:​ Cod pentru butonul de alegere a paharului mic. 
 +  - BUTTON_RIGHT:​ Cod pentru butonul de alegere a paharului mare. 
 +  - BUTTON_OK: Cod pentru butonul de confirmare. 
 +- Constante:​ 
 +  - MAX_WATER_LEVEL:​ Nivelul maxim de apă necesar. 
 +  - MIN_WATER_LEVEL:​ Nivelul minim de apă. 
 +  - MAX_GLASS_DISTANCE:​ Distanța maximă la care este detectat paharul. 
 +  - SMALL_GLASS și BIG_GLASS: Timpul de turnare pentru pahare mici și mari.
  
-===== Concluzii =====+Setup 
 +- Inițializează LCD-ul și buzzer-ul. 
 +- Configurează pinii pentru senzorii de ultrasunete,​ releu și receptorul IR. 
 +- Pornește citirea semnalului IR și comunicarea serială.
  
-===== Download =====+Loop 
 +- Afișează pe serial monitor distanțele citite de la senzorii de apă și pahar. 
 +- Verifică dacă a fost primit un semnal IR: 
 +  - Decodifică și afișează codul IR primit. 
 +  - Pe baza codului, actualizează mesajul pe LCD și setează timpul de turnare corespunzător. 
 +  - La primirea butonului OK, verifică prezența paharului și nivelul apei: 
 +    - Dacă nu este pahar sau nu este apă suficientă,​ afișează mesajul corespunzător și emite un sunet de avertizare. 
 +    - Dacă sunt îndeplinite condițiile,​ începe procesul de turnare a apei.
  
-<note warning> +Funcții Auxiliare 
-O arhivă (sau mai multe dacă este cazulcu fişierele obţinute în urma realizării proiectuluisurse, scheme, etc. Un fişier README, un ChangeLog, ​un script de compilare şcopiere automată pe uC crează întotdeauna o impresie bună ;-).+- beep(): Emite un sunet de avertizare prin buzzer. 
 +- pourWater():​ Activează releul pentru a turna apă pentru timpul specificat și resetează variabila pourTime. 
 +- isWater(): Verifică ​dacă nivelul apei este suficient. 
 +- isGlass(): Verifică dacă este prezent ​un pahar. 
 +- readWaterLevel():​ Citește șreturnează nivelul apei folosind senzorul cu ultrasunete. 
 +readGlassDistance(): Citește și returnează distanța până la pahar folosind senzorul cu ultrasunete.
  
-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**+Fluxul de Operare 
-</​note>​+1. Utilizatorul apasă un buton pe telecomandă pentru a selecta mărimea paharului. 
 +2. Codul IR este citit și interpretat. 
 +3. Când utilizatorul confirmă cu butonul OK: 
 +   - Sistemul verifică dacă există un pahar și dacă este suficientă apă. 
 +   Dacă sunt îndeplinite condițiile,​ începe turnarea apei
 +   - Mesajele relevante sunt afișate pe LCD.
  
-===== Jurnal ===== +Acest cod integrează funcționalitatea de citire a senzorilor, controlul releului pentru dozarea apei, șinterfața cu utilizatorul prin intermediul unui display LCD și a unei telecomenzi IR.
- +
-<note tip> +
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.+
 </​note>​ </​note>​
  
-===== Bibliografie/​Resurse ===== 
  
-<​note>​ +===== Download ===== 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.+ 
 +<​note ​warning
 +{{:​pm:​prj2024:​vstoica:​bogdan_sprincenatu_332cc.zip|}}
 </​note>​ </​note>​
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​+
  
pm/prj2024/vstoica/bogdan.sprincenatu.1714939001.txt.gz · Last modified: 2024/05/05 22:56 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