Está en la página 1de 11

DISEO Y CONSTRUCCIN DE UN MEDIDOR DE DISTANCIA CON VISUALIZACIN

LCD

MICROCONTROLADORES - MICROPROCESADORES

PRESENTADO POR:
DUVAN CASTRO
JOHN PEDRAOS
EDWIN SAAVEDRA

PRESENTADO A:
LILIANA RODRGUEZ

UNIVERSIDAD COOPERATIVA DE COLOMBIA


INGENIERA DE TELECOMUNICACIONES
FACULTAD DE INGENIERA
BOGOT
MAYO DE 2013

ANTECEDENTES

Con los sensores de distancia, se ha facilitado la elaboracin de dispositivos que permiten saber
de forma precisa una distancia o generar alertas con respecto a una proximidad.
Se pueden encontrar diversos antecedentes que utilizan medidores de distancia ultrasnicos como
los mdulos SRF04 y SRF05. stos medidores son de bajo costo, se puede trabajar con ellos para
medir distancias en unos rangos de hasta 3 y 4 metros y son diseados por DEVANTECH Ltd.
Consultando en blogs, foros y pginas webs sobre electrnica, hemos encontrado varios
proyectos realizados con medidores de distancia ultrasnicos.

Medidor de distancia con dsPIC30f4013 y SRF02: http://www.youtube.com/watch?


v=ams-hrPQ90k
MEDIDOR DE DISTANCIA ULTRASNICO CON SRF-05 implementando un PIC
16F88: http://tech-freaks.net/experimentos/medidor-de-distancia-ultrasonico-con-srf-05/
Medidor de distancia por ultrasonidos con PIC16F886:
http://blog.deinventos.com/medidor-de-distancia-por-ultrasonidos-con-pic16f886/
Diagrama en PROTEUS:

Medidor de distancia Sensor de ultrasonido con micro controlador MC68HC908AP16:


http://www.youtube.com/watch?v=3E-YNWSsZKk

JUSTIFICACIN

Con este proyecto se desea aplicar los conocimientos tericos y prcticos adquiridos en la clase
de micro-controladores teniendo en cuenta las prcticas realizadas en el laboratorio a lo largo del
semestre.
Es importante utilizar el sensor ultrasnico en conjunto con un PIC para poder obtener el valor de
la medida y posteriormente proceder a verla en una pantalla LCD. Todo esto se conseguir
implementando la programacin requerida para el PIC 16F877A.

OBJETIVOS

Objetivo general:
Disear y construir un medidor de distancia con visualizacin en una pantalla LCD.
Objetivos especficos:

Buscar informacin relevante incluyendo antecedentes relacionados con medidores de


distancia que utilizan sensores ultrasnicos.
Analizar antecedentes que podrn dar una direccin clara a la realizacin del proyecto.
Consultar la informacin sobre las especificaciones del sensor a utilizar.
Elaborar el cdigo que necesitar nuestro PIC para convertir la seal que se obtiene del
sensor y de esta manera visualizar en la pantalla LCD la distancia.
Disear el circuito del proyecto para determinar sus conexiones.
Probar el circuito en una protoboard para descartar cualquier error.

ALCANCE

El medidor de distancia con sensor ultrasnico funcionar en reas pequeas (mximo 4 metros),
de esta manera se arrojar una medida de gran precisin que se podr observar en una pantalla
LCD

DIAGRAMA DE BLOQUES

Sensor
Ultrasonido

Medir Distancia

Sensor de distancia ultrasnico SRF05

PIC 16F877A
LCD

Visualizar
Medida

Diagrama de Flujo

Inici
o

Configurar Puertos
Puerto B salida.
Puerto C entrada-salida

Configurar TMR1
Configurar Captura

Medir Pulso

Finaliz

Medic
in

Lectura

Configurar modo de
Captura

Calcular Distancia en
centmetros

Visualizar medida

Cdigo PIC 16f877A

#include <16F876A.h>
#fuses XT, NOWDT, NOPROTECT
#use delay(clock=4000000)
#byte PIR1=0x0C
#byte trisa=0x85
#byte porta=0x05
#byte trisb=0x86
#byte portb=0x06
#byte trisc=0x87
#byte portc=0x07
#define use_portb_lcd TRUE
#include <lcd.c>
#define BIT_TEST_ON output_high(PIN_C0)
#define BIT_TEST_OFF output_low(PIN_C0)
void main (void);
void pulso_test (void);
void ccp2_int(void);
int1 nuevopulso=0;
int16 TFB=0,TFS=0,TF=0;
float distancia=0.0;
int1 cambio=0;
void pulso_test(){
enable_interrupts(INT_CCP2);
BIT_TEST_ON;
delay_us(10);
BIT_TEST_OFF;
while(nuevopulso==0)
{}
if(nuevopulso==1){
TF=(TFB-TFS);
distancia=TF*1.0;
distancia = distancia/58;
nuevopulso=0;
}
disable_interrupts(INT_CCP2);
}
#int_ccp2

void ccp2_int(){
if(cambio==0){
TFS=CCP_2;
setup_ccp2(CCP_CAPTURE_FE);
cambio=1;
}
else {
TFB=CCP_2;
setup_ccp2(CCP_CAPTURE_RE);
cambio=0;
if(nuevopulso==0)
nuevopulso=1;
}
}
void main(){
trisb=0x00;
trisc=0b00000100;
setup_timer_1(T1_INTERNAL);
setup_ccp2(CCP_CAPTURE_RE);
disable_interrupts(INT_TIMER1);
disable_interrupts(INT_CCP2);
enable_interrupts (GLOBAL);
lcd_init();
printf(lcd_putc, "\fMedidorDistancia");
printf(lcd_putc,"\n UCC BOGOTA ");
delay_ms(2000);
printf(lcd_putc,"\fGrupo2:Castro");
printf(lcd_putc,"\nPedraos,Saavedra");
delay_ms(2000);
while (1){
pulso_test();
printf(lcd_putc, "\fDistancia:");
printf(lcd_putc,"\n %5.2f ", distancia);
delay_ms(500);
}
}

Diagrama y simulacin

Resultados
Los resultados de la simulacin son satisfactorios, el circuito simulado funciona como se
esperaba pero en la prctica real tuvimos problemas para hacer funcionar el circuito tal vez por
utilizar el srf04 en lugar del 05 que no pudimos conseguir.
En la simulacin, un potencimetro nos ayud para variar un valor de resistencia simulando que
se vara la distancia, al hacer esto el valor de la distancia visualizada en el LCD va variando con
en funcin de la resistencia del potencimetro.
Conclusiones
Con el estudio y realizacin del proyecto se evidencia a lo largo del curso las diferencias notables
de programar en assembler y en picC. Aunque tuvimos muchos inconvenientes y no se logr
concluir en el montaje el correcto funcionamiento esto nos anima a seguir estudiando los
microcontroladores y la programacin en assembler y C para stos.