Sie sind auf Seite 1von 6

Asignatura Microcontroladores y laboratorio

Código de Laboratorio L9
Título de Laboratorio Sensor de movimiento y distancia
Estudiante

1. OBJETIVO

2. DESCRIPCIÓN DEL FUNCIONAMIENTO

3. ANÁLISIS MATEMÁTICO (Cálculos y ecuaciones, si es que aplica)


4. CIRCUITO Y/O DISEÑO EN PROTOBOARD

1
Asignatura Microcontroladores y laboratorio
Código de Laboratorio L9
Título de Laboratorio Sensor de movimiento y distancia
Estudiante

5. LISTA DE COMPONENTES
Los componentes utilizados para realizar el laboratorio son los siguientes:
 Pic 18F4550.
 Panel de leds.
 Sensor de distancia HC-SR04.
 Pantalla Lcd.
 Pickit 3.
 Cables de conexión.
 Protoboard.
6. EXPERIENCIAS ADQUIRIDAS (Qué aprendí al implementar el circuito)
Este circuito mejoro mi comprensión de la programación y manipulación de un pic, sobre todo
programación debido a que esta área tenia carencia de práctica. Además, pude comprobar el funcionamiento
del sensor de distancia, así como su curva de respuesta.

7. CONCLUSIONES (¿Cómo le resulto?)


2
Asignatura Microcontroladores y laboratorio
Código de Laboratorio L9
Título de Laboratorio Sensor de movimiento y distancia
Estudiante

Las bases y manipulación de estos circuitos se han realizado con los debidos cuidados, todo esto hecho
posible por el pic. Gracias este circuito se pudo observar el funcionamiento del sensor de distancia. así como
las posibles aplicaciones del pic 18F4550.
8. RECOMENDACIONES (Para la mejora en futuras implementaciones)
Para futuros proyectos sería recomendable añadir a la lista de componentes necesarios la placa para grabar
pic`s, razón por la que se facilita esta programación en este componente.
9. ANEXO: FOTOGRAFÍA DEL CIRCUITO REAL

10. CÓDIGO FUENTE DE PROGRAMACIÓN (solo para PICs y Arduino)


Ejercicio 1
sbit LCD_RS at RD2_bit;
sbit LCD_EN at RD3_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;

sbit LCD_RS_Direction at TRISD2_bit;


sbit LCD_EN_Direction at TRISD3_bit;
sbit LCD_D4_Direction at TRISD4_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D7_Direction at TRISD7_bit;
int calculardistancia(void)
{
TMR1H=0;
TMR1L=0;
PORTB.F0=1;
delay_us(10);
PORTB.F0=0;
while(!PORTB.F4);
T1CON.F0=1;
while(PORTB.F4);
T1CON.F0=0;
return((TMR1L | (TMR1H<<8))/364.55+1);
}

void main()

{
int distancia;
char texto[15];
ADCON1 |=0x0F;
CMCON |=7;
Lcd_Init();

Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);

3
Asignatura Microcontroladores y laboratorio
Código de Laboratorio L9
Título de Laboratorio Sensor de movimiento y distancia
Estudiante

TRISB.RB0=0;
TRISB.RB4=1;

Lcd_Out(1,1," BIENVENIDO");
Lcd_Out(2,1," 2019");
Delay_ms(2000);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1," DISTANCIA");
while(1)
{
distancia = calculardistancia();
if(distancia>=1 && distancia <= 1000)
{
IntToStr(distancia,texto);
Ltrim(texto);
Lcd_Out(2,1," cent");
Lcd_Out(2,1,texto);
}
else
{
Lcd_Out(2,1,"FUERA DE RANGO!!");
}
delay_ms(100);
}

Ejercicio 2
sbit LCD_RS at RD2_bit;
sbit LCD_EN at RD3_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;
sbit LCD_RS_Direction at TRISD2_bit;
sbit LCD_EN_Direction at TRISD3_bit;
sbit LCD_D4_Direction at TRISD4_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D7_Direction at TRISD7_bit;
int calculardistancia(void)
{
TMR1H=0;
TMR1L=0;
PORTB.F0=1;
delay_us(10);
PORTB.F0=0;
while(!PORTB.F4);
T1CON.F0=1;
while(PORTB.F4);
T1CON.F0=0;
4
Asignatura Microcontroladores y laboratorio
Código de Laboratorio L9
Título de Laboratorio Sensor de movimiento y distancia
Estudiante

return((TMR1L | (TMR1H<<8))/364.55+1);
}

void main()

{
int distancia,a;
char texto[15];
ADCON1 |=0x0F;
CMCON |=7;
Lcd_Init();

Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);

TRISB.RB0=0;
TRISB.RB4=1;
TRISC.RC0=1;
TRISA=0;
PORTA=0;

Lcd_Out(1,1," BIENVENIDO");
Lcd_Out(2,1," 2019");
Delay_ms(2000);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1," DISTANCIA");
while(1)
{
if(PORTC.RC0==1)
{
a=distancia;
distancia = calculardistancia();
if(distancia>=1 && distancia <= 1000)
{
IntToStr(distancia,texto);
Ltrim(texto);
Lcd_Out(2,1," cent");
Lcd_Out(2,1,texto);
}
else
{
Lcd_Out(2,1,"FUERA DE RANGO!!");
}
if(a==distancia)
{
PORTA=1;

5
Asignatura Microcontroladores y laboratorio
Código de Laboratorio L9
Título de Laboratorio Sensor de movimiento y distancia
Estudiante

}
else
{
if(a<distancia)
{
PORTA=2;
}
else
{
PORTA=4;
}
}
delay_ms(100);
}
}

Das könnte Ihnen auch gefallen