Monitoração de pulso.

Você tem que usar uma interrupção e contar o tempo entre cada um dos pulsos, se passar mais de 2 segundos ele liga o pino por 2 segundos

volatile unsigned int UltimoPulso; 
int Pino_PULSO = 2;
int Pino_Alerta = 3;

void FuncSensor()
{
  UltimoPulso = millis();
}

void setup()
{
  pinMode(Pino_PULSO, INPUT);
  pinMode(Pino_Alerta, OUTPUT);
  attachInterrupt(0, FuncSensor, RISING);
  UltimoPulso = millis();
  sei(); // habilita interrupção
}

void loop()
{
  if ((UltimoPulso + 1000) < millis())  
    {
    cli(); // desabilita Interrupção     
    digitalWrite(Pino_Alerta, HIGH);
    delay(2000);
    digitalWrite(Pino_Alerta, LOW);
    UltimoPulso = millis();
    sei(); // habilita Interrupção
    }
}

Esse é o mínimo do mínimo para fazer.
PS Usei o delay apenas para encurtar o código