You are on page 1of 8

Universidad de Guadalajara

CUCEI TRANSDUCTORES Y ACONDICIONAMIENTO DE SEALES. Prctica #1

Nombre de la prctica: Detector de nivel Maestro: ING: SERGIO CASILLAS DE LA TORRE.

Aguayo Adame Gilberto

OBJETIVO sensor de nivel de agua , el objetivo de esta practica es crear un detector de nivel de agua y mostrar en un display lcd si se esta llenando el tinaco o esta lleno , para hacer esto introduciremos tres electrodos , los electrodos son simples cables que se introducen en el interior del deposito de agua MARCO TEORICO Para poder detectar la seal del agua atraves de los electrodos es necesario implementar alguna interfaz para poder detectar ya que la seal es muy pequea. Para esto se implemento el siguiente esquematico en el cual se integra un microcontrolador (AT89S52) y un integrado ULM3408 Como se muestra en la figura siguiente:

sabemos que el agua es conductora pero nos conduce una corriente muy pequea que es dificil que nos la detecte el puerto del microcontrolador para resolver este problema necesitamos un circuito que nos amplifique la seal de corriente , para esto aremos uso del par darlington , el par darlington esta compuesto de dos transistores en cascada por lo que da una gran ganancia de corriente que es lo que necesitamos para detectar la seal de los electrodos par darlington

para esta practica necesitaremos tres configuraciones par darlington ya que tendremos tres electrodos en el agua

1 que estara en la cisterna , si este electrodo no detecta seal en el agua, el microcontrolador mandara al Display LCD nohay suministro de agua por el contrario si detecta seal mostrarallenando tinaco los otros dos electrodos estaran en el tinaco y cuando llegue al sensor medio mostrara tinaco medio y cuando llegue al nivel mas alto tinaco lleno para no tener que hacer las configuraciones par darlington y ahorrarnos espacio utilizamos el integrado ULN2803 que tiene 8 salidas muy utiles si queremos agregar mas electrodos y detectar mas niveles, ULN2803

DESARROLLO como lla tenemos resuelta la parte del acondicionamiento de seal ahora tendremos que programar el microcontrolador y conectarle el display LCD
LCD 16x2 modelo JHD162A

Configuracin de pines

1
VS S

2
VC
C

3
VE
E

4
R S

5
R/ W

6
E

7
DB 0

8
DB 1

9
DB 2

10
DB 3

11
DB 4

12
DB 5

13
DB 6

14
DB 7

15
LED +

16
LED -

Acontinuacion se muestra el cdigo del programa en lenguaje C /********************************************* * programa display LCD * autor: Aguayo Adame Gilberto * pagina web http://practicas8051.net84.net *********************************************/ 8051 sbit RS=P2^0;// control de la seal de reset del LCD conectada al pin P2.0 sbit RW=P2^1;//seal de escritura(RW) conectada al P2.1 sbit EN=P2^2;//enable (EN) abilitar LCD conectada al P2.2 int i; void retardo(unsigned int ms); //funcion de retardo void INIT(void);//funcion de comandos para inicializae el LCD void Enable(void);//funcion para habilitar el LCD void Line(int);//funcion para elegir la linea donde se mostrara la cadena de caracteres void Line(int i){//creacion de la funcion Line if (i==1){ RS=0; RW=0; P1=0x80; Enable(); RS=1; } * * *

#include <reg52.h> //declaracion de libreria de funciones especiales del

else{ RS=0; RW=0; P1=0xC0; Enable(); RS=2; } } void retardo(unsigned int ms){ retardo unsigned char y,t; while (ms){ for(y=0;y<140;y++){ t++; } t++; t++; t++; ms--; } } void Enable(void){//funcion habilitar LCD EN=1; retardo(100); EN=0; retardo(100); } void INIT(void){//funcion inicio de LCD RS=0; RW=0; EN=0; P1=0x38; Enable(); Enable(); Enable(); Enable(); P1=0x06; Enable(); P1=0x0E; Enable(); P1=0x01; Enable(); } //creacion de la funcion de

void main(void){ //inicio del cuerpo del programa char code display[]="display LCD con"; //cadena de caracteres quese mostraran en el display line por linea char code display1[]="el micro AT89S52"; char display2[]="http://practicas"; char code display3[]="8051.net84.net"; char *p; int j,x; while(1){ for(x=1;x<3;x++){ INIT(); Line(1); if(x==1){ p=&display; } else{ p=&display2; } for(j=0;j<16;j++){ P1=*p++; Enable(); } Line(2); if(x==1){ p=&display1; } else{ p=&display3; } for(j=0;j<25;j++){ P1=*p++; Enable(); } } } }//fin de programa

Material utilizado: 1 Microcontrolador (AT89S52) 1 ULN2803 1 display LCD 16x2

CONCLUSIONES: es importante saber acondicionar bien la seal lla que que sin esto nunca podemos detectar ningun cambio , ese fue el problema que tuvimos al principio

You might also like