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?