Autorul poate fi contactat la adresa: adrian.theodorescu@stud.acs.upb.ro
Proiectul are ca scop constructia unui multimetru capabil sa masoare:
Valorile masurate vor fi afisate pe un display Nokia 5110.
(Updated)
Lista de componente:
Partea de afisare:
Am folosit un display LCD Nokia 5110 alimentat la o tensiune de 3V3 direct din placuta (prin regulatorul de tensiune).
Am reusit sa implementez doar doua module: modulul Voltmetru si modulul Ohmmetru.
Comutarea intre module se face manual, prin niste intrerupatoare.
Am folosit ca circuit de baza divizorul de tensiune. Acesta are urmatoarele formule:
I = V_in / (R1 + R2)
V_out = V_in * R2 / (R1 + R2)
Pentru masurarea tensiunii, ea este divizata pana la o marime ce poate fi masurata de convertorul digital analogic, in cazul nostru, marimea fiind intre 0 si 2.5V. Am folosit 2 trepte, prima divizand tensiunea de 8 ori, iar a doua divizand de 21 de ori. Astfel putem masura valori intre 0-20V si 20-52,5V.
Pentru masurarea rezistentei, obiectul masurat este folosit ca o rezistenta intr-un divizor de tensiune. Tensiunea folosita este cea de pe placuta, de 5V. Am folosit tot 2 trepte, prima avand posibilitatea de a masura rezistente intre 0-10k ohmi (desi la cele intre 0 si 100 ohmi, e posibil sa se disipe prea multa caldura pe ele si sa se topeasca), iar a doua intre 10k si 10M ohmi.
Am folosit pinii AD0, AD1, AD2, AD3 pentru a afla valorile de tensiune respective. Pentru display am folosit o biblioteca de pe internet, pe care am incercat sa o modific (si nu am reusit in final sa modific cum trebuie) pentru a afisa numere cu virgula..
Aceasta are cateva interfete:
void LCD_write_byte(unsigned char dat, unsigned char command); void LCD_clear(void); void LCD_init(void); void LCD_set_XY(unsigned char X, unsigned char Y); void LCD_write_char(unsigned char c); void LCD_write_english_string(unsigned char X,unsigned char Y,char *s); void LCD_write_english_num(unsigned char X, unsigned char Y, double num); void LCD_draw_bmp_pixel(unsigned char X,unsigned char Y,unsigned char *map,
unsigned char Pix_x,unsigned char Pix_y);
Pentru comutarea intre functiile software, am folosit butonul legat la PB2.
Pentru inceperea proiectului, am studiat un pic multimetrul realizat in 2009.