Controlar Servos por cierto tiempo

Hola a todos
Mi duda es la siguiente: Soy novato en esto de arduino y tengo un servo de rotacion continua (360°) y necesito hacerlo funcionar por un cierto tiempo. No conosco ninguna funcion que cuente el tiempo sin detener el programa como lo hace el delay()
si pudieran ayudarme
muchas gracias
:slight_smile:

if puede :O, en seudocódigo:

boolean motor_andando =false; long tiempo = 0;

loop { if(!motor_andando) { // iniciar el motor motor_andando = true; tiempo = millis(); } else { if(tiempo+(segundos_de_espera*1000)>millis()) { // detener el motor }

// otras acciones }

}

humm.. haber si me puedes ayudar con esto

el codigo que tengo hasta elmomento es asi

int A = 7; // servo conectado pin 7 float j,k;

void setup(){ pinMode(A, OUTPUT); }

void servoa(){ // funcion avance servo j = 1.800; digitalWrite(A, HIGH); delay(j); digitalWrite(A, LOW); delay(20-j); }

void loop(){

servoa(); // llamado de funcion

}

ahi como lo tendria que agragar?

#define j 1800

int A = 7;                    // servo conectado pin 7
float k=0;

boolean motor_activo = false;

void setup(){
  k = millis();
 pinMode(A, OUTPUT);
 }

void servoa(){             // funcion avance servo
 if(motor_activo)
   if(millis()>k+j)
   {
     digitalWrite(A, LOW); // Desactivar
     motor_activo = false;
     k = millis();
   }    
 else
   if(millis()>20-(k+j))
   {
     digitalWrite(A, HIGH); // Activar
     motor_activo = true;
     k = millis();
   }
}


void loop(){

 servoa();                           // llamado de funcion

}