Activar pin durante solo tiempo determinado sin delay

Hola, estoy creando un codigo para mover unos servos, pero quiero que cuando se muevan se encienda un laser ( o led) durante 2 segundos. Envio los movimientos por serial, he probado con missis() pero me crea una intermitencia continua y como dije solo quiero que se encienda un tiempo determinado y no se vuelva a encender hasta que se vuelva a mover el servo. Los servos los tengo separados por case, break; asi que no hai problema, solo es meter el codigo debajo del movimiento de cada servo. ¿Podrían ayudarme a crear ese temporizador? Tambien probe con timer.h pero tambien me crea intermitencia. Seguro que alguno se puede configurar para que solo realice la accion una vez, digo yo.

Hola, ¿has probado a examinar el ejemplo BlinkWithoutDelay? Se encuentra bajo Archivo>Ejemplos>02.Digital. Este ejemplo lo puedes adaptar a lo que necesites como en este caso.

Hay intermitencia si no le das el suficiente refrezco a los leds.
Deberías al menos conseguir 30 fps. Tal vez menos.
Pega el código y vemos que has hecho mal para que se vea intermitencia.

arduin01:
Hola, ¿has probado a examinar el ejemplo BlinkWithoutDelay? Se encuentra bajo Archivo>Ejemplos>02.Digital. Este ejemplo lo puedes adaptar a lo que necesites como en este caso.

Gracias, eso fue de lo primero que probé, pero como decia una vez se activa el led se queda intermitente por siempre. Imagino que se puede adaptar para que dure x segundos o solo se repeta un numero de veces determinado, pero no encontre información para hacer esto.

surbyte:
Hay intermitencia si no le das el suficiente refrezco a los leds.
Deberías al menos conseguir 30 fps. Tal vez menos.
Pega el código y vemos que has hecho mal para que se vea intermitencia.

Gracias, eso lo entiendo pero el problema que tengo es que una vez se activa no se apaga nunca, y yo lo que quiero es que permanezca encendido un determinado tiempo.

Se nota que no has leído las normas del foro.
Ya deberías haber puesto tu código como te pedí en mi primer respuesta. Sin él no podemos evaluar de que hablas.

surbyte:
Se nota que no has leído las normas del foro.
Ya deberías haber puesto tu código como te pedí en mi primer respuesta. Sin él no podemos evaluar de que hablas.

Disculpa aquí el código:

#include<Servo.h>
 
#define pinservo1 8
#define pinservo2 9

Servo ServoA;
Servo ServoB;

char comando;
int posicion; 

void setup(){
  Serial.begin(250000);
  Serial.setTimeout(2);  // Ajusto el timeout del puerto Serie (por defecto 1000 ms)
  ServoA.attach(9);
  ServoB.attach(8);
  ServoA.write(90);
  ServoB.write(90);
  pinMode(10, OUTPUT); //Configurar Laser como salida pin 10

}

void loop(){
  leer_Dato();
  switch(comando){
    case'1':
    ServoA.write(posicion);
    digitalWrite(10, HIGH); // Activar pin 50 (+5V)
    Serial.flush();

    break;
    case'2':
    ServoB.write(posicion);
    digitalWrite(10, HIGH);
    Serial.flush();
    break;
    case'3':
    digitalWrite(10, LOW); // Apagar pin 50 (0V)
    break;  
  }
}
void leer_Dato(){
  if(Serial.available()>0){
    comando = Serial.read();
    posicion = Serial.parseInt();
  }
}