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.
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.
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.
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:
muy buena info amigo se agradece el material con esto hice un carrito que evade obstaculos automaticamnte gracias.!
muchas gracias con este aporte me puedo guiar para hacer un proyecto gracias.
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.
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.
Hola amigo como haces para simular el sensor en proteus? es que no lo encuentro, gracas.
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
sera q me puedes pasar el .h y el .mcl por favor
Sebastian, no tengo esas extensiones.
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
Walter. Haz el proyecto tal cual está explicado. Si así no te funciona es porque algo has hecho mal en tu proyecto.
Publicar un comentario