Problemas con 3 HC-SR04.

Hola gente, hace algún tiempo que vengo jugando con arduino mega y algunos sensores que me he ido comprando, antes que nada quiero agradecerles a todos los que aportan en este foro ya que me ha sacado infinidad de dudas.
Ahora bien, busque en el foro pero no he podido encontrar a nadie con mi mismo problema.

Antes de comentarles el problema en si, les comento que es lo que estoy haciendo y como lo tengo conectado.

• x1 Arduino Mega.
• x2 motores los que vienen con ruedas y la caja reductora amarilla (muy vendidos aca en argentina). https://articulo.mercadolibre.com.ar/MLA-622976953-kit-motor-dc-3v-a-6v-caja-reductora-rueda-goma-arduino-_JM
• x1 rueda "loca".
• x3 sensores ultrasonicos HC-SR04 (Conectado todos los VCC a pin 5v, todos los GND al mismo GND de arduino, trigger y echo a 6 PWM de arduino pines del 4 al 9).
• Modulo para manejar motores L298n (Puente H, alimentado por Vin al Vin del modulo, GND a un pin GND exclusivo de arduino y las 4 salidas a otros pines PWM).
• Alimentación: solo con fines de "testeo", fuente ATX de la compu 750W reales. conexión por power jack con los 12v de la fuente.

Ahora bien, estoy usando este código para medir las distancias con los sensores:

long tiempo;
int disparador = 7; // triger
int entrada = 8; // echo
float distancia;

int Sonar(int trigger, int echo)
{
// lanzamos un pequeño pulso para activar el sensor
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);

// medimos el pulso de respuesta
tiempo = (pulseIn(echo, HIGH)/2); // dividido por 2 por que es el
// tiempo que el sonido tarda
// en ir y en volver
// ahora calcularemos la distancia en cm
// sabiendo que el espacio es igual a la velocidad por el tiempo
// y que la velocidad del sonido es de 343m/s y que el tiempo lo
// tenemos en millonesimas de segundo
distancia = float(tiempo * 0.0343);

// y lo mostramos por el puerto serie una vez por segundo
Serial.println(distancia);

delay(100);
return distancia;
}

obviamente que arreglado con las correspondientes asignaciones de pines y demás.

El problema en si que tengo es el siguiente: cuando cargo el sketch y comienza a funcionar (cabe destacar que estoy usándolo conectado a la PC por USB para ver como funcionan los sensores), los sensores de lo bien que están leyendo bien las distancias de repente leen cualquier cosa, x ejemplo... vienen leyendo "10 cm" y de repente saltan a 2 cm o 100 cm, probé darle mas delay entre medidas y pasa igual y no es problema de acoples de señales ya que lo he probado con un solo sensor y me pasa igual, desconozco si estoy haciendo algo mal desde código o desde la alimentación o demás.

PD: la idea es un "auto" que mide distancias en 3 dirección y "saltee" obstáculos a medida que se va moviendo, la velocidad es mínima (tengo seteado los motores con el pin de salida en 150 donde 255 es 0 movimiento y 0 máximo, y estará en unos 0,1 m/s). estoy tratando de simular el comportamiento de las aspiradoras automáticas tipo roomba.

Quien me pueda dar una mano, desde ya muy agradecido.
Saludos.

Excelente proyecto, me encantan estos proyectos por la integración que requieren. Te ponen al dia con muchas cosas a la vez.

El sensor que estas usando a veces hace eso. Hay detalles técnicos sobre como funciona que lo hace vulnerable a falsas lecturas, nada que se pueda hacer desde el hardware. Yo escribí un tutorial que al final explica un poco del tema y dá algunos trucos para solucionarlo, en especial en usos como el que estás intentando darle vos.

Acá te dejo el enlace al tutorial.

Cualquier cosa que necesites podes continuar en este mismo thread (hilo) o sino me podes mensajear por privado y te doy una mano. Soy de Córdoba.

Suerte con ese proyecto!

Marcelo, muchísimas gracias por la pronta respuesta, había pensado promediar un par de medidas o basarme en la mas chica (que en definitiva es la que mas me interesa) pero quería asegurarme de no estar haciendo algo mal jaja.
Esta tarde lo pruebo y aviso si quedo bien.
Saludos desde B.S A.S!
PD: probablemente cuando este un poco mas avanzado en el proyecto vuelva a molestar x aca! :stuck_out_tongue_closed_eyes: