RobotyPic son proyectos básicos de electrónica con microcontroladores PIC, de aplicación en el mundo de la robótica didáctica, con archivos fuente creados mediante el compilador CCS PIC C COMPILER en lenguajeC.

Medida de distancias con SRF04

Sensor ultrasonidos SRF05

En realidad en este proyecto se emplea un sensor de distancias por ultrasonidos SRF05 pero funcionando en modo SRF04 con pulso trigger y eco por pines separados. El sensor SRF05 es una versión mejorada del clásico SRF04 con el que es compatible.

Patillaje SRF05

El PIC manda un pulso de al menos 10us por la linea “Pulso trigger” para comenzar el proceso de medida. El srf04 responde con un tren de 8 impulsos ultrasónicos a 40Khz. Pone su “Pulso eco” en estado alto hasta recibir el eco ultrasónico de los impulsos. La distancia al objeto estará en función del tiempo del pulso eco en un rango de 100us (mínima distancia medible) hasta 25 ms (máxima distancia medible). Si el sensor no recibe el eco ultrasónico pasa su salida eco a estado bajo a los 30ms.

Gráficas medida de distancias con SRF04

Para calcular la distancia es necesario por tanto saber la duración del pulso eco mediante el modo captura del CCP2 del PIC configurandolo para que detecte los flancos de subida y bajada de la señal. Cada vez que esto ocurre el valor del timer1 pasa al registro del módulo CCP.

El valor numérico del pulso será el valor del timer1 en el pulso de bajada menos su valor en el flanco de subida del pulso:

TF=(TFB-TFS);

El valor numérico del registro se pasa a uS según la expresión:

tiempo = TF*1.0;

Y finalmente para pasar este valor de uS a su equivalente en cm:

distancia = tiempo/58;

Aquí se puede ver el programa completo en lenguaje c para el PIC.

[+/-] Ver / Ocultar programa en C


Según las especificaciones del sensor, el mínimo tiempo entre pulsos eco para la ejecución de la medida es de 50ms para evitar la lectura de ecos de medidas anteriores. En este proyecto se ha especificado 500ms, es decir, el refresco de la medida se ejecuta y muestra en el lcd cada medio segundo.

Esquema medida de distancias con SRF04


En este video se puede ver el funcionamiento.



Los archivos tanto del codigo fuente como del programa para cargar en el PIC así como el video demostrativo se pueden descargar del siguiente enlace:

Descargar medida de distancias con SRF04


A continuación se muestra una simulación utilizando el proyecto del SRF04 bajo proteus. Hay que dejar claro que se trata de una simulación, quiero decir, para simular los valores de distancia se emplean valores analógicos de tensión, pero puede ser de ayuda para verificar que nuestros diseños basados en el SRF04 funcionan.



En este enlace, la descarga de archivos para demostrar la simulación:

Descargar Simulacion medida distancias con SRF04


10 comentarios:

Bsjsiwwklw dijo...

muy buena info amigo se agradece el material con esto hice un carrito que evade obstaculos automaticamnte gracias.!

noe joel dijo...

muchas gracias con este aporte me puedo guiar para hacer un proyecto gracias.

Unknown dijo...

Muchas gracias por el aporte, he intentado simularlo pero me sale este error:

Could not open COFF file'..\..\ROBOT\Proyectos\Robot\Simulador sensor srf04


Ruego me ayudes a resolver este probleas.

Muchas gracias, un saludo.

Robotypic dijo...

Hola Francisco.
Ten en cuenta que en la simulación hay dos PIC. El que mide la distancia en un montaje real y el PIC que simula el sensor SRF04 en la simulación. Debes cargar el archivo del programa de ese PIC en el esquema.

jose dijo...

Hola amigo como haces para simular el sensor en proteus? es que no lo encuentro, gracas.

Robotypic dijo...

Jose.
El sensor srf04 no está en proteus. Está simulado mediante un PIC con su correspondiente programa. Visita el artículo correspondiente para saber como hacerlo.
http://robotypic.blogspot.com.es/2010/09/circuito-simulador-srf04-para-proteus.html

Unknown dijo...

sera q me puedes pasar el .h y el .mcl por favor

Robotypic dijo...

Sebastian, no tengo esas extensiones.

Unknown dijo...

hola amigo hice el carrito evade odstaculo pero no funciona no esta la funcion de trigger como le hago para que funcione en la imajen del esquema del robot evita obstaculo hay coneccion a trigger del sensor pero en el programa no lo habilita ayuda al proyecto gracias

Robotypic dijo...

Walter. Haz el proyecto tal cual está explicado. Si así no te funciona es porque algo has hecho mal en tu proyecto.

Related Posts Plugin for WordPress, Blogger...

CONTACTA - (Haz referencia del artículo sobre el que trata la consulta o comentario)