7
Universidad Autonoma de Yucatan Facultad de Ingenieria Licenciatura en Ingeniería Mecatrónica Medidor de distancia ultrasónico con interfaz RS232 Raymundo Sáenz Coral Ángel Castillo Cervera Gerardo Cámara Chale Jonathan García Rodríguez Mérida, Yuc. a 19 de mayo de 2011.

Reporte Final Interfases

  • Upload
    deec75

  • View
    25

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Reporte Final Interfases

Universidad Autonoma de Yucatan

Facultad de Ingenieria

Licenciatura en

Ingeniería Mecatrónica

Medidor de distancia ultrasónico con interfaz

RS232

Raymundo Sáenz Coral

Ángel Castillo Cervera

Gerardo Cámara Chale

Jonathan García Rodríguez

Mérida, Yuc. a 19 de mayo de 2011.

Page 2: Reporte Final Interfases

Medidor de distancia Este proyecto se trata de medir distancia utilizando el sensor ultrasónico SRF05 y un microcontrolador 16f877A de microchip desplegando las medidas en un LCD de 16x2 y con comunicación a la PC vía serial por RS232. El sensor medidor de distancia SRF05 es un sensor de US (Ultrasonidos) capaz de medir distancias de hasta 5 metros. Este es una versión actualizada del sensor SRF04. Básicamente tiene tres mejoras respecto a su antecesor. La primera es la incorporación de un LED en su parte trasera que nos indica el buen funcionamiento de éste. La segunda mejora es el aumento de la distancia que pasa de 4 a 5 metros. La última y no por ello menos importante, es el modo de funcionamiento de éste, permite utilizar el mismo sistema que su antecesor (utilizando dos pines) y el nuevo modo que simplifica el sistema utilizando un único pin. En este proyecto se utilizo el sensor en modo 1, este modo usa el disparo y el eco de forma separada, para utilizar este modo sólo necesitamos conectar el sensor de la siguiente manera.

Su funcionamiento es muy sencillo, tenemos que enviar un pulso de 10us por la patilla del disparador para que este active el sensor y haga la medición. La salida del sensor no es más que otro pulso de entre 100 us y 25 ms, donde un pulso de duración de 30 ms indicaría que el obstáculo está fuera de rango del sensor.

Page 3: Reporte Final Interfases

El sensor tiene como salida un pulso proporcional a la distancia, donde la distancia en centímetros es el tiempo de duración del pulso en us entre 58.

d(cm) = pulso(us)/58

d(inches) = pulso(us)/148

Hay que tener en cuenta que el sensor sólo puede hacer una medida cada 50ms, lo que equivale a que podemos realizar medidas a una frecuencia de 20Hz.

Para poder realizar el cálculo de las distancias se empleo un microcontrolador 16F877A, el cual fue compilado con MicroCode Studio Plus, con él cual envía la señal de activación del sensor por el pin B.0 con el comando PulsOut y recibe el pulso a través del pin B.1, este pulso es almacenado con el comando PulsIn en una variable llamada MEDIDA del tipo WORD. Esta variable medida es dividida en entre 58 para poder obtener las distancias en cm. Posterior a esto se realiza el despliegue en la pantalla LCD y en una barra de LEDs los cuales son activados en determinados rangos de distancia.

La comunicación serial RS232, se utilizo el comando SEROUT, el cual enviaba los datos al PC y con ayuda de LabView se hizo una interfaz grafica en la computadora.

Page 4: Reporte Final Interfases

Código '**************************************************************** '* Name : Medidor_SRF05_interfaz_RS232 .BAS * '* Author : Castillo, Saenz, Camara, Rodriguez * '* Notice : Copyright (c) 2010 [Castillo Company] * '* : All Rights Reserved * '* Date : 08/01/2010 * '* Version : 1.0 * '* Notes : * '* : * '**************************************************************** INCLUDE "modedefs.bas" DISPARO VAR PORTB.0 ECO VAR PORTB.1 MEDIDA VAR Word DATO VAR BYTE TRISA = %00001000 TRISB = %00000010 TRISC = %00000000 LED1 VAR PORTC.1 LED2 VAR PORTC.0 LED3 VAR PORTB.7 LED4 VAR PORTB.6 LED5 VAR PORTB.5 LED6 VAR PORTB.4 LED7 VAR PORTC.5 LED8 VAR PORTC.4 LED9 VAR PORTC.3 LED10 VAR PORTC.2 DEFINE LCD_DREG PORTD 'SELECIONA EL PUERTO PARA SACAR DATOS DEFINE LCD_DBIT 4 'DESDE EL BIT B.4 AL BIT B.7 DEFINE LCD_RSREG PORTD 'UTILIZAR EL RS EN EL PUERTO B DEFINE LCD_RSBIT 1 'EN EL BIT B.1 DEFINE LCD_EREG PORTD 'UTILIZAR EL ENABLE (E) EN EL PUERTO B DEFINE LCD_EBIT 2 'EN EL BIT B.2 proceso: pause 40 disparo = 0 PulsOut DISPARO,10 GoSub leer_eco GoTo proceso leer_eco: Select Case eco Case 1 GoTo LEER_ECO Case 0 PulsIn ECO,1,MEDIDA medida=((medida*10)/58) Lcdout $fe, 1, "DISTANCIA:", #medida, " cm" SEROUT PORTB.2,T9600,[#medida,"cm "] If medida <9 Then LED1=1

Page 5: Reporte Final Interfases

lcdout $FE, $C0 Lcdout "PELIGRO. CERCA" EndIf IF MEDIDA >=10 THEN LED2=1 ELSE LED2=0 ENDIF IF MEDIDA >= 25 THEN LED3=1 ELSE LED3=0 ENDIF IF MEDIDA >= 50 THEN LED4=1 ELSE LED4=0 ENDIF IF MEDIDA >= 75 THEN LED5=1 ELSE LED5=0 ENDIF IF MEDIDA >= 100 THEN LED6=1 ELSE LED6=0 ENDIF IF MEDIDA >= 125 THEN LED7=1 ELSE LED7=0 ENDIF IF MEDIDA >= 150 THEN LED8=1 ELSE LED8=0 ENDIF IF MEDIDA >= 175 THEN LED9=1 ELSE LED9=0 ENDIF IF MEDIDA >= 200 THEN LED10=1 ELSE LED10=0 ENDIF GoTo proceso End Select End

Page 6: Reporte Final Interfases

Fotos

Page 7: Reporte Final Interfases

PCB