Pages: [1]   Go Down
Author Topic: mutitarea  (Read 759 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pues me a surgido un problema con mi proyecto, es un robot que detecta obstaculos mediante  un sensor sharp, el problema es que necsito que los servomoteres que giran las ruedas, funcionen a la vez que detecta el sensor. Porque ahora lo que me hace es primero detecta luego recorre una distancia hacia adelante, y luego vuelve a detectar pero necesito que haga las dos cosas a la vez. Alguna solución???
El sensor lo tengo conectado a una salida analogica y los servors a las salidas digitales

un saludo y gracias
Logged

COM22
Offline Offline
God Member
*****
Karma: 6
Posts: 702
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Las dos cosas a la ves no puedes hacerlas, yo te recomiendo para un robot no utilizar el delay() y utilizar la función millis() y veras que parece que lo haga todo a la vez.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pues gracias
pero entonces las dos funciones son iguales?? vamos que por ejemplo si tengo puesto delay(500) tendria que poner milis (500)??

gracias de nuevo
Logged

0
Offline Offline
Edison Member
*
Karma: 17
Posts: 1413
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mirate el programa qeu viene con arduino, blinkwithoutdelay
Logged

* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

Spain
Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

delay sirve para detener la ejecución  : delay(500) para 0.5 segundos.

millis() se usa de otra forma, devuelve el número de milisegundos que hace que se encendió arduino, puedes compararlo con un tiempo anterior y decidir cual de las acciones vas a hacer ahora (detectar , encender / apagar el motor, no hacer nada ...)
compara el funcionamiento de blink y blinkwithoutdelay como dijo Sergegsx.
Logged

Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 958
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tambien puedes emplear un latch

Dejas el motor con el latch cargado a 1 (significaria ir adelante) hasta que sensor detecte que tiene que parar, con lo cual en ese momento por unos milisegundos dejaria de atender el sensor y cargaria un 0 en el latch.

Por ejemplo.

obviamente emplearia las interrupciones (atachinterrupt)
Logged

CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pues muchas gracias me habeis servido de gra ayuda al final consegui corregir el problema
Logged

Pages: [1]   Go Up
Jump to: