Proyecto Sensor Ultrasonico

5
Medir Distancias con el Sensor Ultrasónico PING Los sensores ultrasónicos permiten medir distancias desde los 2-3 centímetros hasta los 3-6 metros (para algunos modelos populares) sin la necesidad de un contacto físico, lo cual es muy útil en una amplia variedad de aplicaciones, desde la robótica y los sistemas de alarma, hasta aplicaciones industriales y por supuesto, también en proyectos de pasatiempo para los aficionados al bricolaje electrónico. El Sensor Ultrasónico de Distancia PING (o "PING)))" como lo denomina el fabricante) tiene una interfaz simple de tres terminales y utiliza una sola linea para lograr una comunicación bidireccional con su dispositivo de control (típicamente un microcontrolador). ¿No estás muy seguro de cómo hacer las lecturas de distancia de este sensor? En este tutorial presentamos un sistema básico con un microcontrolador y un programa en lenguaje C para la interfaz con el sensor PING de Parallax. El microcontrolador lee el dato de la distancia del sensor y lo visualiza en una pantalla LCD genérica. Diagrama de Circuito con el HC-SR04 Características Principales del Sensor PING El sensor PING funciona mediante la transmisión de una ráfaga de ultrasonido en una frecuencia muy por encima del rango auditivo humano y provee un pulso de salida, el cual corresponde con el tiempo requerido por el eco (rebote) para retornar hasta el sensor. Al medir la duración de este pulso se puede calcular fácilmente la distancia al objetivo. Las características más importantes del sensor PING son las siguientes:

description

Ping sensor

Transcript of Proyecto Sensor Ultrasonico

Medir Distancias con el Sensor Ultrasnico PINGLos sensores ultrasnicos permiten medir distancias desde los 2-3 centmetros hasta los 3-6 metros (para algunos modelos populares) sin la necesidad de un contacto fsico, lo cual es muy til en una amplia variedad de aplicaciones, desde la robtica y los sistemas de alarma, hasta aplicaciones industriales y por supuesto, tambin en proyectos de pasatiempo para los aficionados al bricolaje electrnico.El Sensor Ultrasnico de Distancia PING (o "PING)))" como lo denomina el fabricante) tiene una interfaz simple de tres terminales y utiliza una sola linea para lograr una comunicacin bidireccional con su dispositivo de control (tpicamente un microcontrolador).No ests muy seguro de cmo hacer las lecturas de distancia de este sensor? En este tutorial presentamos un sistema bsico con un microcontrolador y un programa en lenguaje C para la interfaz con el sensor PING de Parallax. El microcontrolador lee el dato de la distancia del sensor y lo visualiza en una pantalla LCD genrica.

Diagrama de Circuito con el HC-SR04

Caractersticas Principales del Sensor PINGElsensor PINGfunciona mediante la transmisin de una rfaga de ultrasonido en una frecuencia muy por encima del rango auditivo humano y provee un pulso de salida, el cual corresponde con el tiempo requerido por el eco (rebote) para retornar hasta el sensor. Al medir la duracin de este pulso se puede calcular fcilmente la distancia al objetivo.

Las caractersticas ms importantes del sensor PING son las siguientes: Rango: 2 cm a 3 m LED indicador de rfaga que muestra la actividad del sensor Interfaz bidireccional por pulso, en un nico pin de E/S para comunicacin con microcontroladores TTL (5V) o CMOS (3.3V) Disparo de entrada: pulso TTL positivo, 2 s mnimo, 5 s tpico Pulso eco de salida: pulso positivo TTL, 115 s mnimo a 18.5 ms mximo.

Funcionamiento del Sensor Ultrasnico de Distancia PINGEl sensor PING posee solamente tres terminales, dos de las cuales son para la alimentacin de voltaje (VDD y GND) y la tercera (SIG) es usada para la comunicacin bidireccional con el microcontrolador.

La comunicacin con el sensor es realmente muy simple. Una vez que se ha entendido el protocolo, es fcil implementarlo.Protocolo de ComunicacinEl sensor PING detecta objetos mediante la emisin de una rfaga ultrasnica y luego "escucha" el eco de retorno.

Bajo el control de un microcontrolador, el cual debe enviar un pulso corto de disparo, el sensor emite una corta rfaga ultrasnica a una frecuencia de 40 KHz. La rfaga viaja a travs del aire, choca con un objeto y luego rebota hacia el sensor. El sensor PING provee un pulso de salida al microcontrolador, que inicia cuando la rfaga es enviada y termina cuando el eco es detectado, de ah que la longitud del pulso corresponda con la distancia al objeto.

De la explicacin arriba mencionada se puede resumir el siguiente algoritmo bsico para la lectura del sensor:1. Configurar el pin de comunicacin en el microcontrolador como salida.2. Escribir un "0" lgico al pin de comunicacin.3. Esperar un tiempo corto para estabilizar la lnea de comunicacin (5 s).4. Escribir un "1" lgico al pin de comunicacin. (Inicio de pulso de disparo).5. Retardo de tiempo (2-5 s) para lograr el ancho de pulso de disparo del sensor.6. Terminar el pulso de disparo escribiendo un "0" lgico al pin de comunicacin.7. Configurar el pin de comunicacin como entrada.8. Esperar hasta recibir un "1" lgico en el pin de comunicacin. (Inicio del pulso de eco de salida del sensor).9. Activar el temporizador del PIC10. Esperara hasta recibir un "0" lgico en el pin de comunicacin. (Fin del pulso de eco de salida del sensor).11. Desactivar el temporizador del PIC.12. Leer conteo efectivo en el temporizador en s.13. Calcular la distancia en funcin a la duracin del pulso de eco de salida del sensor.Debido a que la duracin del pulso provisto por el sensor contiene la informacin del tiempo que tarda la rfaga en ir y volver desde el objetivo, esta duracin se debe dividir por 2 para calcular la distancia, de otro modo estaramos calculando el doble de la distancia (ida + vuelta).Referencia:http://tecbolivia.com/index.php/articulos-y-tutoriales-microcontroladores/17-como-medir-distancias-con-el-sensor-ultrasonico-ping

Realizacin del Programa en MikroC para Avr

void main (){ int width; int range; TRISA=0x08; TRISB=0x00; Loop: PORTB=0x00; width=0; range=0; PORTA=0x04; //send pulse with a 20us width delay_us(20); PORTA=0x00; while (PORTA.F3==0) //wait until an echo is received { } while (PORTA.F3==1) //calculate the width of the echo received { delay_us(10); width++; } range=(width*10)/58; //calculate range if (range