Table of Contents

Etilotest

Date de contact: Ebru Resul

Introducere

Am decis să realizez un etilotest pentru proiectul meu la PM, ce afișează pe un LCD cantitatea de alcool și dacă s-a trecut de un anumit prag, folosesec un buzzer pentru a avertiza utilzatorul să se oprească din consumat alcool.

Ideea mi se pare una amuzantă și interesantă, ce poate fi ușor testată. Poate fi folosită la diverse petreceri, atunci când dorești șă știi dacă e timpul să te oprești sau nu.

Descriere generală

Microcontroller-ul ATmega324 va primi date de la senzorul de alcool. Avem un buton ce îl ținem apăsat cât timp suflăm în senzorul de alcool pentru a putea măsura date relevante. Pe LCD se vor afișa mai întâi instrucțiunile de folosire, iar apoi va primi de la microcontroller cantitatea de alcool din aerul expirat. Dacă acesta a depășit un anumit prag, microcontroller-ul va activa buzzerul, pentru a anunța utilizatorul că s-a depășit un anumit prag.

Schema bloc a proiectului:

Hardware Design

Lista de piese:

Proiectul este alimentat prin intermediul unei baterii externe.

Schema electrica

Software Design

1. Mediu de dezvoltare

Pentru acest proiecte am folosit:

2. Biblioteci și cod

Am folosit bibliotecile de bază din C, bibliotecile pentru LCD din cadrul laboratorului și bibliotecile specifice pentru AVR.

#include "lcd.h"
#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <avr/interrupt.h>

* Nu am folosit funcția delay, întregul cod bazându-se pe timere și întreruperi. O dată la 100ms citesc ceea ce îmi trimite senzorul de gaz.

* La început, voi face 50 de citiri pentru a calibra senzorul și pentru a ști care este valoarea normală citită în aer. Pentru următoarele teste, pentru a avea o precizie bună, voi continua să citesc de 50 de ori datele primite de la sensor. Acest lucru înseamnă că utilizatorul trebuie să sufle în etilotest undeva la câteva secunde.

* Deoarece rezultatul întors nu reprezintă o valoare pe care să o înțelegem, am făcut conversia în g/l. Pe lcd afisez atât un mesaj pentru utilizator, cât și alcoolemia acestuia în g/l. Atunci când deja s-a ajuns la un nivel foarte mare de alcool în aerul expirat, buzzerul ne va avertiza că este periculos să mai continuăm să bem.

* Am împărțit rezultatele ce pot fi obținute în 4 nivele:

* Pe viitor, doresc să implementez o aplicație pe telefon, unde ți se va afișă nivelul de alcool.

Rezultate obținute

Concluzii

Cod

Cod proiect

Bibliografie/Resurse

* Pagina in format pdf