This shows you the differences between two versions of the page.
pm:prj2021:abirlica:etilotest [2021/05/18 17:15] georgiana.neacsu99 |
pm:prj2021:abirlica:etilotest [2021/05/31 23:16] (current) georgiana.neacsu99 |
||
---|---|---|---|
Line 1: | Line 1: | ||
======Etilotest====== | ======Etilotest====== | ||
- | ====Introducere==== | + | =====Introducere==== |
- | Un sistem care masoara alcoolemia si afiseaza rezultatul in timp real pe un LCD. Masurarea este pornita prin apasarea unui buton, iar un semnal sonor este activ pe toata perioada masurarii. | + | Un sistem care masoara alcoolemia si afiseaza rezultatul in timp real pe un LCD. Masurarea este pornita prin apasarea unui buton. Pe perioada masurarii se aude un cantecel, iar dupa masurare, in cazul in care alcoolemia depaseste un anumit preg, un semnal sonor se activeaza si se aprinde un LED. |
- | ====Hardware Design==== | + | =====Schema bloc a proiectului==== |
- | Componente necesare: | + | |
+ | {{:pm:prj2021:abirlica:pm_block.png?800|}} | ||
+ | |||
+ | =====Hardware Design==== | ||
+ | ====Componente==== | ||
* Arduino Uno | * Arduino Uno | ||
+ | Am ales sa folosesc aceasta placuta deoarece are un numar potrivit de pini si nu a fost nevoie sa realizez lipituri. | ||
* BreadBoard | * BreadBoard | ||
+ | Am avut nevoie sa folosesc un BreadBoard in proiectul meu pentru conectarea tuturor componentelor. Am plasat pe breadboard butonul de start, buzzerul si am putut sa leg senzorul MQ3 si ecranul LCD la GND si VCC. | ||
* Buzzer | * Buzzer | ||
+ | Buzzerul este folosit pentru a imi permite sa generez semnale sonore in cazul in care alcoolemia este prea mare si, de asemenea, pe perioada masurarii efectuate de senzorul buzzer-ul canta un cantecel pentru a indica cat timp este nevoie sa sufli in senzor. | ||
* Buton on/of | * Buton on/of | ||
+ | Am ales sa folosesc un buton pentru a putea prelua input-ul de la cel care foloseste aparatul. Cu ajutorul butonului de on/off aparatul incepe sa masoare doar atunci cand este apasat butonul de catre un om. | ||
* LCD | * LCD | ||
+ | LCD-ul este o componenta importanta a proiectului deoarece permite afisarea rezultatului masuratorii efectuate de senzor. LCD afiseaza si mesaje utile pentru utilizator, indicandu-i cand poate sa apese butonul de start sau cat timp trebuie sa sufle. | ||
+ | * LED | ||
+ | LED-ul este folosit pentru a semnaliza un grad ridicat de alcoolemie. | ||
* Converor I2C | * Converor I2C | ||
- | * Senzor alcool | + | Am ales sa folosesc un convertor I2C deoarece a facut mai usoara conectarea ecranului LCD la Arduino. |
+ | * Senzor MQ3 | ||
+ | Senzorul MQ3 este elementul esential al proiectului deoarece el permite realizarea masurarii cantitatii de alcool din aer. | ||
* Rezistente | * Rezistente | ||
- | * Fire(tata-mama si tata-tata) | + | Am folosoit rezistente la conectarea butonului de on/of, pe post de rezistenta de pull-down. |
+ | * Fire(tata-mama, tata-tata si mama-mama) | ||
+ | Firele au fost utilizate pentru conectarea tuturor componentelor intre ele. Firele mama-mama au fost folosite la conexiunea dintre LCD si convertorul I2C. Firele tata-mama au fost folosite la conectarea senzorului MQ3 si a convertorului I2C la Arduino, iar firele tata-tata au fost folosite pentru conectarea elementelor aflate pe breadboard cu pinii de pe Arduino. | ||
+ | |||
+ | |||
+ | ====Schema electrica a proiectului==== | ||
+ | |||
+ | {{:pm:prj2021:abirlica:pm_electric.png?800|}} | ||
+ | |||
+ | =====Software design==== | ||
+ | Pentru implementarea software am folosit Arduino IDE. | ||
+ | Exista 4 stari prin care trece etilotestul, de la pornire si pana la inchiderea acestuia: | ||
+ | - WARM-UP: in cadrul acestei stari ecranul LCD afiseaza procente de la 0 pana la 100, sugerand timpul de setup initial al etilotestului | ||
+ | - WAITING TO START: ecranul LCD afiseaza un mesaj ce ii spune utilizatorului sa apese pe Start pentru a incepe maurarea. | ||
+ | - MEASURING: stare in care se efectueaza efectiv ctirea alcolemiei, in timp ce un buzzer canta. Pentru masurarea alcoolemiei, am efectuat 10 citiri ale valorii sozorului la interval de 10 milisecunde. | ||
+ | - MEASUREMENT DONE: masurarea s-a terminat si se afiseaza pe LCD valoarea obtinuta. In cazul unei valori ridicate, se aprinde un semnal luminos si se activeaza un semnal sonor. Din aceasta stare se revine la starea WAITING TO START, putand incepe o noua masurare. | ||
+ | |||
+ | ====Bibliotecile folosite==== | ||
+ | Am folosit 3 biblioteci pentru realizarea functionalitatilor. Bibliotecile Wire.h si LiquidCrystal_I2C.h sunt folosite pentru a permite comunicarea cu I2C-ul, si implicit cu LCD-ul. Biblioteca pitches.h este folosita pentru a putea face buzzer-ul sa cante. | ||
+ | <code> | ||
+ | #include <Wire.h> | ||
+ | #include <LiquidCrystal_I2C.h> | ||
+ | #include "pitches.h" | ||
+ | </code> | ||
+ | ====Activity Diagram==== | ||
+ | {{:pm:prj2021:abirlica:activitydiagrampm.png?800|}} | ||
+ | |||
+ | =====Rezultate obtinute==== | ||
+ | |||
+ | Proiect final arata asa cum se observa in imaginea de mai jos: | ||
+ | |||
+ | {{:pm:prj2021:abirlica:pm-rezultat.jpeg?600|}} | ||
+ | |||
+ | <note> | ||
+ | Demo: https://www.youtube.com/watch?v=BZM9buaYFEQ&ab_channel=TeodoraNeacsu | ||
+ | </note> | ||
+ | |||
+ | =====Download==== | ||
+ | {{:pm:prj2021:abirlica:etilotest.zip|}} | ||
+ | |||
+ | =====Jurnal==== | ||
+ | |||
+ | * 12.04.2021 - Comandarea primului set de piese | ||
+ | * 10.05.2021 - Testare Arduino si constatare ca placuta nu functioneaza | ||
+ | * 12.05.2021 - Comandare placuta de Arduino noua | ||
+ | * 15.05.2021 - Scriere cod pentru a face buzer-ul sa cante | ||
+ | * 20.05.2021 - Scrierea codului pentru afisajul pe LCD | ||
+ | * 29.05.2021 - Realizarea schemei hardware completa si finalizare partea de coding | ||
+ | |||
+ | =====Concluzii==== | ||
+ | |||
+ | In concluzie, din acest proiect am invatat cum se creeaza un proiect Arduino de la 0, incarcarea unui program pe o placuta Arduino, citirea valorii unui senzor, conectarea unui LCD si afisarea mesajelor pe acesta. Proiectul are toate funcționalitățile pe care mi le-am propus și respectă aspectele descrise în schema electrică și diagrama bloc. | ||
- | ===Schema bloc a proiectului=== | + | =====Bibliografie si resurse==== |
- | {{:pm:prj2021:abirlica:pm_block.png?200|}} | + | <note tip>Link-uri/Site-uri utile care m-au ajutat: |
+ | * **Datasheet-ul Atmega 328P:** https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf | ||
+ | * **Google** | ||
+ | * **Laboratoare OCW:** https://ocw.cs.pub.ro/courses/pm | ||
+ | </note> | ||
- | ===Schema electrica a proiectului=== | ||
- | {{:pm:prj2021:abirlica:schema_electrica_pm.png?200|}} |