Adresa de mail: Login pentru adresa
Proiectul constă în implementarea unui etilotest care să depisteze existența alcoolului în aerul expirat și în funcție de rezultatul obținut vor fi declanșate buzzer-ul și led-urile. Ideea mi s-a părut amuzantă și , în cazul în care este dusă la capăt cu succes, poate chiar utilă pentru persoanele care conduc.
Biblioteci folosite:
#include <avr/io.h> #include <util/delay.h>
Functii implementate:
void generate_sound(void) -> genereaza un zgomot in momentul in care a fost depasita cantitatea de 0.8mg/l void adc_init(void) -> initializeaza adc pentru citirea de la senzorul MQ-3
uint16_t adc_read(uint8_t channel) -> citeste datele de la senzorul de alcool
uint16_t average(void) -> functia determina cantitatea de alcool in aerul curat -> senzorul intoarce o tensiune constanta in aer curat, in timp ce, in momentul in care detecteaza alcool apare o fluctuatie -> functia se ocupa cu determinarea acelei constante in aerul curat
uint16_t convert(uint16_t mq3Value, uint16_t mq3Normal, uint16_t alcNormal) -> functia de conversie a valorii intoarse de senzor in mg/l
Asa arata placuta in momentul in care se fac primele citiri de calibrare, cand inca nu exista alcool in aer.
In momentul in care perioada de initializare este gata putem sa testam functionalitatea proiectului cu o mica mostra si se observa aprinderea celui de-al doilea LED (de asemenea pentru ca in cazul nostru alcoolemia din aer depaseste 0.8mg/l dupa aprinderea LED-ului, la 2-3 secunde, se va activa si buzzer-ul)
Proiectul a fost interesant si practic, uneori putin dificil din cauza depistarii unor probleme, atat la partea hardware, cat si software.