Comprobar HC-SR04 SOLUCIONADO

Buenas....
Tengo un sensor ultrasónico HC-SR04 y usando un sencillo código no consigo que funcione....
solo consigo que me de una medida de 51 cm...

#include <Ultrasonic.h>
Ultrasonic ultra1(9,8); // (Trig,Echo)

int dist1;

void setup()
{
Serial.begin(9600);
}

void loop()
{

dist1 = ultra1.Ranging(CM); // mide distancia sensor 1
Serial.println(dist1);
delay(250);

}

no se si el sensor estará defectuoso, o estoy haciendo algo mal, estoy alimentando el sensor con la salida de 5v de la placa arduino uno....y solo tengo dos cables mas....
hay alguna forma de asegurarme que el sensor esta bien?

supongo que has probado a invertir los cables de los pines 9 y 8,no?

prueba de todas formas esto
Serial.println(ultra1.Ranging(CM));

y si le quitas el 1 a el ultra1?

Mira que lo tengas bien conectado y bien definido el sensor, el primero numero es el Trig (9) y el segundo el Echo (8).

Ultrasonic ultra1(9,8); // (Trig,Echo)

Puedes hacer lo que te dice Sergegsx pero elimina la linea

dist1 = ultra1.Ranging(CM); // mide distancia sensor 1
Serial.println(ultra1.Ranging(CM));

Por que si haces dos mediciones seguidas sin un delay(); los echos dan medidas erróneas en la segunda medición

Aunque el código no creo que sea el error, mira que tengas la ultima versión de la librería de ultrasonidos: - GitHub - JRodrigoTech/Ultrasonic-HC-SR04: Ultrasonic HC-SR04 library for Arduino IDE

Un saludo!

HC-SR04.sch.jpg

He actualizado a la ultima version de la libreria, he probado lo que me comentais y nada de nada...
Estara defectuoso.... ( menuda mier.....) esta sin usar... Y no puedo reclamar....
Gracias por la ayuda
Un saludo!

Bueno, hace ya bastante que no se dice nada más en esta hebra, pero es que me acaba de pasar exactamente lo mismo. Siempre me daba 51cm.

51cm es el valor que da cuando hay un timeout en la medida, y en mi caso me daba siempre porque tenía mal seleccionados los pines a los que estaba conectado el sensor y no detectaba ningún tipo de respuesta.

Si estás totalmente seguro de que están bien los pines (incluida la alimentación) ciertamente podría estar fastidiado el cacharro ... pero por si acaso, comento lo que me ha pasado.

Pasa de la librería y mide la respuesta del sensor con el comando pulseIn()... y comprueba las conexiones, que a veces juegan malas pasadas.

Yo tuve problemas con un sensor por que dentro del receptor había una volita minúscula de estaño, cuando el robot se movía devolvía medidas caóticas.


Pero teniendo en cuanta el precio, no creo que pasen un gran test de calidad antes de ser vendidos :cold_sweat:

Un saludo!

La versión 005 de ArduLab, que está apunto de salir, trae muchas novedades, entre ellas un módulo específico para trabajar con sensores de distancia ultrasónicos y de infrarrojos. Una buena manera para poder verificarlos y aprender de su funcionamiento antes en incluirlos en nuestro programa.

Eduardo

Es muy sencillo, amplia el rango!...

en vez de...

Ultrasonic ultra1(9,8); // (Trig,Echo)

coloca...

Ultrasonic ultra1(9,8,29000);

prueba y me dices :wink:

El detector estaba averiado, he probado otro y funciona sin problema..
Gracias a todos ...

marca el titulo como SOLUCIONADO.

Perdón, tienes razón