Problema con uso de múltiples pulse in

Que tal comunidad Arduino, tengo un problema.
El punto es que estoy tratando de medir 4 anchos de pulso con la función pulse in, cada uno conectado a una respectiva entrada digital.
Pero la velocidad de respuesta es muy lenta. Hice la prueba midiendo solo un pulso y funciona de maravilla. Pero a medida que voy agregando los demás, comienzo a tener problemas de respuesta.
¿Alguien podría decirme de que manera puedo solucionarlo? ¿O si hay alguna función que me permita medir el ancho de pulso en 4 entradas diferentes? :confused:

int pulso1 = 2;
int pulso2 = 3;
int pulso3 = 4;
int pulso4 = 5;



unsigned long tiempo1;
unsigned long tiempo2;
unsigned long tiempo3;
unsigned long tiempo4;

void setup ()
{
  Serial.begin(9600); 
  pinMode(2,INPUT);
  pinMode(3,INPUT);
  pinMode(4,INPUT);
  pinMode(5,INPUT);
  
}

void loop ()
{
  tiempo1 = pulseIn(2,HIGH,5000000);// el valor esta dado en microseconds si quiero tiempo dividir entre 1x10e6
  tiempo2 = pulseIn(3,HIGH,5000000);
  tiempo3 = pulseIn(4,HIGH,5000000);
  tiempo4 = pulseIn(5,HIGH,5000000);
  
     if(tiempo1<70000 || tiempo2<70000  || tiempo3<70000 ||  tiempo4<70000 )
    {
       digitalWrite(2,HIGH);
       delay(1000);
       digitalWrite(2,LOW);
    }
}

Yes that is what I would expect. Rewrite the code to eliminate the delay() function. Use millis function instead.

Sí, eso es lo que esperaría. Vuelva a escribir el código para eliminar la función delay (). En su lugar, utilice la función millis.

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