Sunteți pe pagina 1din 9

MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII AL REPUBLICII

MOLDOVA
UNIVERSITATEA TEHNICĂ A MOLDOVEI

Facultatea Calculatoare, Informatică şi Microelectronică

Departamentul Microelectronică și Inginerie Biomedicală

RAPORT
la lucrarea de laborator nr.2
Tema: „ Masurari electrice ”
Disciplina: „Programarea în electronica”

A elaborat st. gr. MN-181, Moraru Cristian

A verificat lector univ. Bragarenco Andrei

Chișinău 2020
Obiectiv:
Realizarea aplicatiilor pentru prelucrarea semnalelor analogice.

Sarcini tehnice:
Program: 1

- Citirea unui semnal analogic provenit de la un modul cu microfon incorporate.

- Scrierea unei logici de dirijare cu LED-ul in functie de acest semnal.

Program: 2

- Realizarea monitorizarii pe un vizualizator logic de semnale, a unui semnal analogic -preluat de pe un


sensor de umiditate.

- Scrierea unei logici care va permite convertirea datelor despre umiditate in procente.

- Afisarea in timp real a umiditatii in procente.

Concept:

Senzor de nivel de lichid (senzor de apă Arduino)


Tensiunea de funcționare a senzorului analogic este de 5v. Tensiunea de ieșire (citirea
senzorului) depinde de gradul de imersie al senzorului în lichid și de parametrii care afectează
coeficientul de transfer de tensiune, de exemplu, conductivitatea lichidului.
Senzorul de nivel de lichid are trei contacte. Pinul din dreapta (-) este conectat la Pământ (GND),
cel din mijloc la o putere de 5v, iar stânga la intrarea analogică, de exemplu, A0. Cu un senzor
complet uscat, tensiunea de ieșire și citirile la intrarea analogică vor fi zero, cu cât senzorul este
cufundat în apă, cu atât citirile sale sunt mai mari (de la 0 la 1023).
Schemele bloc la programul 1

START Setup()

pinMode(13,
int PockPock OUTPUT);

Setup(void) pinMode(A6,
INPUT);

loop(void) Serial.begin(9600
Loop(void)
);

Schema bloc general a programului


Iesire

Schema bloc a funcției setup()


loop()

PockPock= analogRead(A6)

True False
PockPock>
100

True digitalRead( False


13) == 0

Else

digitalWrite(13, 1)

digitalWrite(13, 0)

delay(1000)

delay(1000)

delay(1000)

Iesire

Schema bloc a funcției loop()


Schemele bloc la programul 2

START Setup()

Int wasser pinMode(A6,INPUT);

Setup(void)
Serial.begin(9600);

loop(void)
Loop(void)
Iesire

Schema bloc general a programului Schema bloc a funcției setup()

loop()

nivel_apa = (wasser /
volum_max) * 100;
Schema bloc a funcției loop()

pinMode(A6, INPUT);

Serial.begin(9600);

wasser =
analogRead
(A6);

invertor =
transformator
(wasser);

nivel_apa =
(wasser /
volum_max) * 100;

Serial.print("nivel
apa: ");

delay(500)

return nivel_apa;

Iesire

Schema bloc a funcției


Concluzie:
Senzorul de ploaie și scurgere poate fi utilizat în arduino pentru a crea dispozitive care să răspundă la
apariția umidității sub formă de picături. Printre avantajele modulului considerat, se poate remarca
simplitatea, comoditatea și costul redus. Conectarea unui senzor este foarte ușoară - folosind ieșiri
analogice sau digitale. Pentru a obține valoarea în schiță, se utilizează funcția standard analogRead
(sau digitalRead pentru un pin digital).

ANEXE:

Program 1:

int PockPock; // initializam sunetul prin integer

void setup()

pinMode(13, OUTPUT); //Catre iesirea 13 conectam senzorul

pinMode(A6, INPUT); //La intrarea A6 conectam senzorul

Serial.begin(9600); //Conectam monitorul portului

void loop()

PockPock = analogRead(A6); // variabila "PockPock (sunet)"

if (PockPock> 100)

if ( digitalRead(13) == 0) //Conect

digitalWrite(13, 1); //Primim datele pe screen daca este sunet

delay(1000); // facem pauza de 1 secunda

else

digitalWrite(13, 0); //Nu primim date (OFF)

delay(1000); ///Pauza de 1 sec


}

Serial.println(PockPock); //Se imprimeaza valoarea senzorului pe monitor

Program 2:

#define volum_max 1023.0 //Definim valoarea volum

int wasser; //Wasser = apa, initializam prin integer

double invertor; //initializam prin double pentru date mai precise

void setup()

pinMode(A6, INPUT); //La intrarea A6 conectam senzorul

Serial.begin(9600); //Conectam monitorul portului

void loop()

wasser = analogRead(A6); // variabila "wasser (APA)" este cuprinsă între 0 și 1023

invertor = transformator (wasser); //Otinerea valorii din iesirea analogica a senzorului

Serial.print("nivel apa: "); // ieșire la monitorul portului serial

Serial.print(invertor);

Serial.println(" %");

delay(500); //Pauza de 0.5 sec

double transformator(int wasser)

double nivel_apa; //penru precizare datelor folosim DOUBLE


nivel_apa = (wasser / volum_max) * 100; //Calculul nivel de apa

return nivel_apa; //Returnarea nivel apa

S-ar putea să vă placă și