Pulsein con Nano 33 IOT ¿incomplatible?

Hola:
Estoy haciendo un código muy sencillo para la apertura de un puerta por una "contraseña" de pulsaciones" con un pulsador.
Un código de los mas sencillo:

unsigned long fase1;
unsigned long fase2;
unsigned long fase3;
int cont;


void setup()
{
  Serial.begin(9600);  
  pinMode (7,INPUT_PULLUP);
  cont=0;
  
}
void loop(){
  if (cont==0){
     fase1= pulseIn (7,!HIGH,2000000);
     fase1=fase1/1000;
     Serial.println ("fase1 ");
     Serial.println (fase1);
     if (fase1>10 && fase1<200){ //Primera pulsacion corta
      cont=1;
     }else{
      cont=0;
     }
  }
  if (cont==1){
     fase2= pulseIn (7,!HIGH,2000000);
     fase2=fase2/1000;
     Serial.println ("fase2 ");
     Serial.println (fase2);
     if (fase2>10 && fase2<200){ //Segunda pulsacion corta
      cont=2;
     }else{
      cont=0;
     }
  }
  if (cont==2){
     fase3= pulseIn (7,!HIGH,2000000);
     fase3=fase3/1000;
     Serial.println ("fase3 ");
     Serial.println (fase3);
     if (fase3>700){      
      Serial.println ("Puerta_Abierta"); // Tercera pulsacion corta
      delay (2000);
      cont=0;
     }else{
      cont=0;
     }
  }
}

Con el Arduino Uno funciona correcto... pero con el Arduino Nano 33 IOT hace cosas erráticas.. como si no midiera bien el tiempo. Algo leí en San Google que no 33 IOT no incorpora esta biblioteca o algo asi.
¿Tengo que pasarme al millis()? ¿o tiene solucion?

Cual es la función cómoda puslein? No comparto tu criterio pero son estilos. En lo personal no me gusta. Es una función bloqueante y todo lo que bloquea no es de mi agrado.

Hola:
Muchas gracias por la respuesta. Al final lo estoy programando con millis().
No entiendo porque no meten esta funcion, es muy comoda para este tipo de skechs.
Un saludo

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.