# como puedo hacer para controlar un sensor ultrasonico con un servomotor a la ves?



## krusioluis (Jun 7, 2010)

Como estas tengo una duda sobre un tema, es que estoy que hago un robot explorador y lo que me falta es controlar un sensor ultrasonico con un servomotor, mi idea es que el servo motor gire de (0º a 180º) y que el sensor ultrasonico este arriba del servo cosa que mientras el servo este girando de 0 a 180 el sensor mande señales y las reciba, como puedo lograr esto, estaba pensando manejar el servo con el timer 0 del pic 16f877a y para el sensor el timer1, hasta luego.


----------



## Beamspot (Jun 8, 2010)

¿Y donde está el problema?


----------



## unifim (Jul 26, 2011)

es  cierto el problema es como controlo el ultrasonido, es decir como lo programo al ultrasonido, en inter encontre que se emvia un pulso de cierto ancho x un pin y la señal la recoges x otro de los pines usando el timer. pero el problema es q de esa forma se mide la distancia en un cierto rango, aora q pasa si io kiero que la señal me emvie solo para cierta distancia, es decir kiero q mi carrito explorador me desvie el obstaculo a una distancia de solo 15cm, y no a otra distancia, ese es mi problema como hago para q mi carrito gira al detectar 15cm.toy usando el mikroc para programar el pic16f877a, spero puedan auidarme, desde luego gracias x su tiempo

aa el sensor que utilizo es el dyp-me007, gracias otra vez


----------



## Gudino Roberto duberlin (Jul 26, 2011)

unifim dijo:


> es  cierto el problema es como controlo el ultrasonido, es decir como lo programo al ultrasonido, en inter encontre que se emvia un pulso de cierto ancho x un pin y la señal la recoges x otro de los pines usando el timer. pero el problema es q de esa forma se mide la distancia en un cierto rango, aora q pasa si io kiero que la señal me emvie solo para cierta distancia, es decir kiero q mi carrito explorador me desvie el obstaculo a una distancia de solo 15cm, y no a otra distancia, ese es mi problema como hago para q mi carrito gira al detectar 15cm.toy usando el mikroc para programar el pic16f877a, spero puedan auidarme, desde luego gracias x su tiempo
> 
> aa el sensor que utilizo es el dyp-me007, gracias otra vez


Amigo, tienes q sincronizar el envio y recepcion del pulso con el giro del mismo, es decir cuando recibas o no el pulso (deberas colocar un TIMER OUT de espera) y avanzar un paso mas el giro.


----------



## unifim (Jul 26, 2011)

ola gracias x responder rapido Gudino, veras lo q kiero acer es un carrito explorador que evite obstaculos y caidas a precipicios como x ejemplo evitar caer del borde de una mesa, eso lo tengo avanzado por interrupcion externa  del port b4-7, pero con referente para detectar obstaculo a 15cm lo q entendi de este sensor es lo siguiente:

io kiero q el carrito al star a 15cm de obstaculo gire, para tenia la idea q como es 15cm la distancia total a recorrer el sonido seria 30cm para emvio y recepcion, con ello considerando la velocidad del sonido de  
340m/s hallaba un tiempo t=0.8823ms, con este tiempo configuraba el timer con un preescaler de 256. no c si esto q estoy pensado esta bien.
otra duda q tengo es q en la hoja de datos me dice q el emvio de pulso es de tamaño minimo de pulso en alto de 10us, pero mi problema es como selecciono el tamaño de pulso adecuado a emviar al emisor y el tamaño del periodo entre pulso y pulso.
xfa podrias explicar un poco detallado como hacer de la eleccion del tamaño de pulso asta la recepcion del pulso, s q en el lugar dond estudio pregunte a varias personas pero nadie uso el ultrasonido, y no c como hacer para controlarmo. desde luego gracias x tu tiempo, stare esperando tu respuesta.


----------



## Gudino Roberto duberlin (Jul 26, 2011)

unifim dijo:


> ola gracias x responder rapido Gudino, veras lo q kiero acer es un carrito explorador que evite obstaculos y caidas a precipicios como x ejemplo evitar caer del borde de una mesa, eso lo tengo avanzado por interrupcion externa  del port b4-7, pero con referente para detectar obstaculo a 15cm lo q entendi de este sensor es lo siguiente:
> 
> io kiero q el carrito al star a 15cm de obstaculo gire, para tenia la idea q como es 15cm la distancia total a recorrer el sonido seria 30cm para emvio y recepcion, con ello considerando la velocidad del sonido de
> 340m/s hallaba un tiempo t=0.8823ms, con este tiempo configuraba el timer con un preescaler de 256. no c si esto q estoy pensado esta bien.
> ...



Hola Amigo, BIEN!!!! vas bien, bueno lo q debes hacer es un pequeño bucle en el programa p q el emisor permanezca al menos 10uS o mas. activad,  y luego a partir de ahi esperar a q termine de recibir el eco, bien? luego de ese instante debes girar  el servo al siguiente paso p q emita en la nueva direccion y asi sucesivamente hasta q completes los 180 grados q mencionas. Si se produce un eco dentro del tiempo q estipulas entonces tendras obstaculo a la vista y bueno ... ahi continua la interrupcion necesaria p ver q debe determinar tu automata!! TE FELICITO!!!! dale para adelante con eso!!!.- SAlu2.-


----------



## unifim (Jul 26, 2011)

ola gudino gracias x responder otra vez,bueno el primero que escribio en esta parte del foro es krusioluis, esta interesante la idea de su explorador solo usando un ultrasonido junto con un servo, a diferencia de la mia io stoy usando 2 cny70 justo un poco delante de las llantas delanteras para detectar vacio esto lo configure para q actue como una interrupcion externa como ia te mencione, aparte coloque un ultrasonido encima del carrito para detectar obstaculo, hoy dia averiguando en otros estudiantes de ciclos mas avanzados me dijeron que usara el ccp capture del pic con timer1, y luego de capturar el tiempo del rebote del eco compararlo con la distancia que deseo que es a 15cm del obstaculo para q pueda girar, los motores q estoy son DC con pequeño puente H, ahi te adjunto la parte del pequeño chasis, en la parte delantera puse pequeñas galletas delante de las llantas delanteras para solocar los cny70 que me detectaran vacio, bueno xfa si tienes alguna informacion de esto del ccp capture te agradeceria bastante. gracias otra vez x responder


----------

