Académique Documents
Professionnel Documents
Culture Documents
LCD
MICROCONTROLADORES - MICROPROCESADORES
PRESENTADO POR:
DUVAN CASTRO
JOHN PEDRAOS
EDWIN SAAVEDRA
PRESENTADO A:
LILIANA RODRGUEZ
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.
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:
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
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
#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.