sensor HC-SR04: pulseIn (echo1, HIGH), pulseIn (echo2, HIGH) Simultaniamiente?

Hola,

Tengo un problema que espero sea una tontería. A ver si podéis ayudarme:

Estoy trabajando con 2 sensores de ultrasonidos (HC-SR04), hay algun inconveniente en computar ambos datos a la vez?

Os pongo un trozo de código aclarativo:

const int Trigger1 = 9;   //Pin digital 2 per al  el Trigger del sensor
const int Echo1 = 8;
const int Trigger2 = 6;   //Pin digital 2 per al  el Trigger del sensor
const int Echo2 = 7;

void medir(){
   long t1; 
  long d1; 
  
   long t2;
  long d2; 

  digitalWrite(Trigger1, HIGH);
  delayMicroseconds(10);          //Enviamos un pulso cada 10us a través del pin Trigger1
  digitalWrite(Trigger1, LOW);
  
  digitalWrite(Trigger2, HIGH);
  delayMicroseconds(10);          //Enviamos un pulso cada 10us a través del pin Trigger1
  digitalWrite(Trigger2, LOW);
  
  t1 = pulseIn(Echo1, HIGH); //obtenemos el valor con Echo1
  d1 = (t1/2)/29;    //calculamos distancia
  
  t2 = pulseIn(Echo2, HIGH); //obtenemos el valor con Echo2
  [b]d2 = 100;//(t2/2)/29;[/b]    //calculamos distancia

como podéis ver, d2 está comentado y fijado a un valor 100, porque no hay manera que me lea el pulso la funcion pulseIn(). Lo raro es que he hecho copiar-pegar con el primer sensor que sí funciona.
Si hago funcionar solo un sensor (cualquiera de los 2), me lo lee. Pero ambos a la vez, no.

(Todos los cables estan bien contectados, los pines bien declarados y el ambos sesnsores funcionan bien)

¿¿Alguna idea?? Me estoy volviendo loco :confused:

Muchísimas gracias de antemano! :slight_smile:

Tal vez no he aclarado muy bien la duda:

puede el Arduino leer ambos datos a la vez? cada 'X microsegundos'? o el sensor A debe leer cada 10us y el B cada 20us?

Porque no usas la libreria newPing?
Hay un ejemplo donde maneja 5 sensores ultrasónicos.

Muchas gracias! le echaré un ojo.

Por ahora lo he solucionado separando cada lectura en una función diferente y llamándolas de forma secuencial.

Todo es secuencial en arduino. No hay nada a la vez!!

Me refería a crear una función para cada lectura del sensor. En vez de realizar una lectura detrás de otra, en la misma función.

Rusuelto pues!

Muchas gracias igualmente :slight_smile:

No hay nada en Arduino que se haga a la vez!! todo es en secuencia.