Discusión:Detecta bomba

De Proyecto Butiá
Saltar a: navegación, buscar

El problema que tenemos es:

¿Cómo ponerle un tiempo a la rutina para que en caso de no detectar un campo magnético, busque un tiempo finito y luego salga?

Podríamos usar el bloque time, guardar la variable y decir que al llegar a x valor, terminar la búsqueda y buscar la salida, pero no sé en qué lugar de la rutina ponerlo :) espero que se entienda la duda.


Ricardo: - Si necesitan que el robot haga determinada acción y luego termine, primero deben usar otro tipo de bucle en lugar del "por siempre", por ejemplo el "mientras". Este bloque hace una acción mientras se cumpla determinada condición. Y termina cuando la misma se deje de cumplir. En este caso, la condición a cumplirse es que Tiempo_inicial - Tiempo_actual sea menor a X segundos. El tiempo inicial necesitás obtenerlo una sola vez, y no debe cambiar en el transcurso del programa, así que tenés que guardar el valor de time en algún lugar del programa que se llame una sola vez... A ver si con estos datos se hacen una idea, si no pueden los seguimos ayudando.

Sobre lo de buscar la salida, sería una acción que deben ejecutar luego del bucle "mientras".

Saludos!

- Ricardo (rr.ricci@gmail.com) -


Cecilia: Gracias Ricardo por tu respuesta! no estoy segura de si te interpreté bien, pero te muestro a dónde fui a parar.. avisame si era para el otro lado :P

Arriba2.png

Abajo2.png

Espero que el puzzle sea claro, una lástima que no me funcione el guardar como imagen...


Ricardo: El código no está del todo bien... Está bien el control de los 120 segundos, pero en contador guardás el valor que te devuelve "time", en cada vuelta del bucle. Por un lado, estás obteniendo el tiempo actual en cada vuelta. Eso está bien, pero también tenés que hacerlo una sola vez fuera del bucle, para tener en una variable el valor de "time" antes de empezar a buscar la bomba. Luego lo que controlás que sea menor a 20 es la diferencia entre ese primer tiempo y el actual. Lo otro es que en el primer si-entonces-sino tenés un bloque para parar la acción. Eso lo que va a hacer es salir de todo el bucle llamado "para siempre". Por lo que, cuando pasen los 2 minutos, no se va a ejecutar el código de abajo, el que busca la salida.