This shows you the differences between two versions of the page.
pm:prj2021:avaduva:alcoholtester [2021/05/26 18:04] alexandru.popa0809 [Software Design] |
pm:prj2021:avaduva:alcoholtester [2021/05/27 15:08] (current) alexandru.popa0809 [Concluzii] |
||
---|---|---|---|
Line 52: | Line 52: | ||
* În funcția setup, inițializez ecranul LCD, configurez pin-ul pentru buzzer și afișez pe ecran un mesaj corespunzător, lăsând la încălzit senzorul pentru câteva secunde. | * În funcția setup, inițializez ecranul LCD, configurez pin-ul pentru buzzer și afișez pe ecran un mesaj corespunzător, lăsând la încălzit senzorul pentru câteva secunde. | ||
* În funcția loop, calibrez senzorul, iau valoarea pe care acesta o transmite și afișez un mesaj specific în funcție de mai multe intervale. | * În funcția loop, calibrez senzorul, iau valoarea pe care acesta o transmite și afișez un mesaj specific în funcție de mai multe intervale. | ||
- | * //calibrateSensor()//: citesc valoarea data de senzor de pe pin-ul 0 cu analogRead. Fiind o valoare prea mare, a trebuit sa calibrez senzitivitatea rezistenței potentiometrului din modul, pe care am setat-o la 32.000. RS_gas este rezistenta senzorului, care se schimba în funcție de concentrația gazului, iar R0 este rezistenta la o valoare stiuta fără prezența altor gaze în jur. Am aflat valoare minima si maxima, iar pentru a afișa o valoare cat mai ușor de recunoscut, am schimbat capetele intervalului prin funcția map. RS_gas se calculeza dupa formula: | + | * //calibrateSensor()//: citesc valoarea data de senzor de pe pin-ul 0 cu analogRead. Fiind o valoare prea mare, a trebuit sa calibrez senzitivitatea rezistenței potentiometrului din modul, pe care am setat-o la o alta valoare, după mai multe încercări. RS_gas este rezistența senzorului, care se schimbă în funcție de concentrația gazului, iar R0 este rezistența la o valoare știută fără prezența altor gaze în jur. Dupa o serie de ecuatii, pe care le-am explicat mai jos, am aflat valoarea minimă și maximă, iar pentru a afișa o valoare cat mai ușor de recunoscut, am schimbat capetele intervalului prin funcția map. |
- | * <note tip>RS = [(Vin x R / Vout] - R, unde R este rezistenta potentiometrului.</note> | + | * //alcoholLevel()//: se face media a doua valori, cu un anumit delay între ele, pentru o valoare cat mai corecta |
- | * //alcoholLevel()//: se face media a doua valori, cu un anumit delay între ele, pentru o valoare cat mai corecta | + | * //printLCD()//: se afișează un mesaj pentru o anumită valoare data de senzor. Dacă valoarea este prea mare, buzzer-ul scoate un sunet. |
- | * //printLCD()//: se afișează un mesaj pentru o anumită valoare data de senzor. Dacă valoarea este prea mare, buzzer-ul scoate un sunet. | + | <note tip>RS = [(Vin x R / Vout] - R, unde R este rezistenta potentiometrului. |
+ | Pentru a calcula R0 trebuie sa aflu valoarea lui RS_gas în aerul curat. Acest lucru se poate face luând valorile date de senzor și convertindu-le la tensiuni. Apoi se calculează R0 cu formula R0 = RS / 60, unde 60 este raportul dintre rezistențe în aerul curat. | ||
+ | |||
+ | </note> | ||
Line 62: | Line 65: | ||
===== Rezultate obtinute ===== | ===== Rezultate obtinute ===== | ||
+ | {{:pm:prj2021:avaduva:poza_1_etilotest.jpeg?500}} | ||
+ | {{:pm:prj2021:avaduva:poza_2_etilotest.jpeg?500}} | ||
+ | |||
+ | {{:pm:prj2021:avaduva:poza_3_etilotest.jpeg?500}} | ||
+ | ==== Demo ==== | ||
+ | Am testat proiectul folosind spirt, caz în care valoarea arătată ar trebui să se apropie de maxim, ceea ce se și întâmplă. De asemenea, am mai testat proiectul și cu câteva beri și arată rezultatele dorite. | ||
+ | |||
+ | |||
+ | [[https://www.youtube.com/watch?v=LG1hvTKXphs&ab_channel=AlexPopa|Demo]] | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | A fost un proiect interesant și mi-a plăcut să lucrez la el. Fiind primul proiect hardware pe care l-am făcut, am învățat lucruri noi și utile. Am intampinat cateva dificultăți în a calibra senzorul. În final, am reușit să-l fac sa dea rezultate cât mai corecte, mai aproape de realitate. Ceea ce este important de știut, este ca nu te poți baza pe valorile oferite de acest senzor, deoarece este unul ieftin, care nu oferă rezultate atât de exacte. | ||
+ | |||
===== Download ===== | ===== Download ===== | ||
* {{:pm:prj2021:avaduva:schema_bloc_etilotest.png?linkonly|}} | * {{:pm:prj2021:avaduva:schema_bloc_etilotest.png?linkonly|}} | ||
* {{:pm:prj2021:avaduva:schema_el_etil.png?linkonly|}} | * {{:pm:prj2021:avaduva:schema_el_etil.png?linkonly|}} | ||
+ | * {{:pm:prj2021:avaduva:poza_1_etilotest.jpeg?linkonly|}} | ||
+ | * {{:pm:prj2021:avaduva:poza_2_etilotest.jpeg?linkonly|}} | ||
+ | * {{:pm:prj2021:avaduva:poza_3_etilotest.jpeg?linkonly|}} | ||
+ | |||
+ | {{:pm:prj2021:avaduva:arhiva_cod.zip|}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
* **25 aprilie 2021**: crearea paginii de wiki, completarea temei proiectului, descrierea proiectului și adăugarea schemei bloc | * **25 aprilie 2021**: crearea paginii de wiki, completarea temei proiectului, descrierea proiectului și adăugarea schemei bloc | ||
* **19 mai 2021**: testarea componentelor, calibrarea senzorului MQ-3, crearea hardware a proiectului | * **19 mai 2021**: testarea componentelor, calibrarea senzorului MQ-3, crearea hardware a proiectului | ||
* **21 mai 2021**: completarea descrierii, adăugarea schemelor electrice | * **21 mai 2021**: completarea descrierii, adăugarea schemelor electrice | ||
+ | * **26 mai 2021**: finalizarea părții software | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
* [[https://lastminuteengineers.com/mq3-alcohol-sensor-arduino-tutorial/]] | * [[https://lastminuteengineers.com/mq3-alcohol-sensor-arduino-tutorial/]] | ||
Line 77: | Line 97: | ||
* [[https://components101.com/sensors/mq-3-alcohol-gas-sensor]] | * [[https://components101.com/sensors/mq-3-alcohol-gas-sensor]] | ||
* [[https://www.instructables.com/LCD-1602-With-Arduino-Uno-R3/]] | * [[https://www.instructables.com/LCD-1602-With-Arduino-Uno-R3/]] | ||
+ | * [[https://thestempedia.com/tutorials/interfacing-mq-3-gas-sensor-with-evive/]] | ||
[[https://ocw.cs.pub.ro/courses/pm/prj2021/avaduva/alcoholtester&do=export_pdf | Export to PDF]] | [[https://ocw.cs.pub.ro/courses/pm/prj2021/avaduva/alcoholtester&do=export_pdf | Export to PDF]] | ||