This shows you the differences between two versions of the page.
pm:prj2022:sgherman:sistem_alimentare_combustibil [2022/05/27 22:18] cconstantin0511 [Software Design] |
pm:prj2022:sgherman:sistem_alimentare_combustibil [2022/06/01 13:41] (current) cconstantin0511 |
||
---|---|---|---|
Line 47: | Line 47: | ||
Descrierea codului aplicaţiei (firmware): | Descrierea codului aplicaţiei (firmware): | ||
* În partea de Setup a proiectului setez baudrate-ul la 9600, setez pin-ul care controlează pompa de apa pe modul de output și folosesc un apel de lcd.begin pentru a putea utiliza lcd-ul mai departe. | * În partea de Setup a proiectului setez baudrate-ul la 9600, setez pin-ul care controlează pompa de apa pe modul de output și folosesc un apel de lcd.begin pentru a putea utiliza lcd-ul mai departe. | ||
- | * Pentru a prelua temperatura de la senzorul de temperatura TMP36 folosesc un apel de analogRead, iar pentru valoarea primită fac o conversie de la tensiune la grade Celsius. | + | * Pentru a prelua temperatura de la senzorul de temperatura TMP36 folosesc un apel de analogRead, iar pentru valoarea primită fac o conversie de la tensiune la grade Celsius. Chiar dacă am stabilizat senzorul folosind un capacitor și o rezistenta exista uneori diferențe mai mari de 4 grade între valori consecutive, astfel o sa folosesc o variabila numite finalTemp, aceasta reprezentând media ultimelor 10 valori primite de la senzor. |
+ | * In privinta senzorului de temperatura de tip sonda(MAX6675) folosesc biblioteca de Adafruit disponibilă și cu ajutorul unei Instanțe a modulului pot sa citesc temperatura într-un mod rapid, fără sa realizez shiftari și sa fac prelucrări asupra datelor primite direct de la senzor. | ||
* Pentru senzorul de ploaie consider ca am lichid pe senzor dacă valoarea se afla sub un prag(valoarea maxima(atunci când nu se afla lichid pe senzor) - 10% din valoarea maxima). | * Pentru senzorul de ploaie consider ca am lichid pe senzor dacă valoarea se afla sub un prag(valoarea maxima(atunci când nu se afla lichid pe senzor) - 10% din valoarea maxima). | ||
+ | * Pentru controlul pompei de apa am 3 case-uri dictate de Valorie preluate de la senzori și folosesc un analogWrite cu valori cuprinse între 4 și 255. Chiar dacă pompa de apa nu este una de putere mare diferența între moduri se poate observa atât în valoarea indicată de decimetru, cât și în sunetul emis de pompa atunci când folosim 255 sau 200 pentru analogWrite(). | ||
+ | * Pentru debimetru folosesc întreruperi și la fiecare secunda împart suma valorilor primite de la întreruperi la 7.5 pentru a afla debitul în l/min. | ||
+ | </note> | ||
+ | <note tip> | ||
+ | Software utilizat: | ||
* Arduino IDE | * Arduino IDE | ||
- | * LiquidCrystal I2C, hd44780, | + | * Biblioteci: LiquidCrystal I2C, hd44780.h, max6675.h, wire.h, SPI.h, hd44780ioClass/hd44780_I2Cexp.h. |
+ | * Eagle pentru schema electrica | ||
</note> | </note> | ||
Line 56: | Line 63: | ||
<note tip> | <note tip> | ||
- | {{:pm:prj2022:sgherman:img_2383.jpg?600|}} | + | {{:pm:prj2022:sgherman:img_2383.jpg?500|}} |
+ | {{:pm:prj2022:sgherman:img_2385.jpg?500|}} | ||
+ | </note> | ||
+ | <note tip> | ||
+ | *Link pentru un video cu un demo: https://drive.google.com/file/d/1dEo1Nakv90usizdkJ7bZ-to-H092g6mg/view?usp=sharing | ||
</note> | </note> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | ===== Download ===== | + | Partea de citire a temperaturii și a prezentei unui lichid cu ajutorul senzorilor este destul de modulara și în esența se poate aplica foarte ușor pentru alte proiecte cu alte aplicații sau accesorii fata cele folosite, singura problema reprezentând-o utilizarea aproape completa a porturilor analog de pe plăcută Arduino. Limitarea de putere a Arduino-ului este vizibila în privința comportamentului pompei de apa. |
+ | In privința senzorilor trebuie menționat faptul ca mă așteptam sa fie mult mai ușor de folosit, aproape plug and play, dar senzorul TMP36 a reprezentat cea mai mare provocare, nu exista biblioteca precum cea pentru max6675, utilizarea valorii este dificila în cazul în care senzorul nu este stabilizat cu un capacitor și o rezistenta, valoarea primită de senzor la VCC nu este garantata la 5V mereu, astfel pe viitor pentru un proiect similar aș utiliza senzori digitali sau senzori care sa ofere suport software prin biblioteci. | ||
+ | ===== 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ă ;-). | + | [[https://drive.google.com/drive/folders/1gA84QzOVBb9XlTQNSoC46SrsKQt-weEO?usp=sharing|Link catre arhiva cu fisierul sursa]] |
- | + | ||
- | 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 ===== | ===== Bibliografie/Resurse ===== |