Crear codigo para calcular velocidad con arduino uno y ultrasonico

Hola tengo poca experiencia en arduino quisiera saber si me pueden ayudar en esto:

Tengo que hacer un proyecto el proyecto trata calcular la velocidad de un objeto específicamente un carro tengo arduino uno y un sensor ultrasónico lo que hare es una pequeña pista de un metro y calcular velocidad con eso el problema es que no se mucho sobre programar arduino y quiero hacer un código que con la distancia que detecte el ultrasonido más el tiempo calcular velocidad.

Ósea quiero desarrollar un código que calcule la distancia con el ultrasónico y que tenga un cronometro que cuente el tiempo y con una formula me dé la velocidad.

Agradecería mucho su ayuda.

Eso es lo que hace el sensor, ya se sabe su velocidad de la onda ultrasonica y solo se obtiene la distancia con el sensor asi se puede calcular la velocidad del objeto, al menos espero que sepas fisica. Siempre he querido de esos sensores para probar pero creo que van funcionando asi.

V=D/T

Se conoce la velocidad de la onda. Pero no la distancia, el tiempo es la variable a medir al disparar la onda esta rebotara en el objeto y regresara al emisor, el timer se detendra y con un despeje te dara la distancia.
Si tienes el objeto alejandose de ti conociendo estos datos puedes calcular la velocidad, si sabes a que distancia esta y el tiempo que le toma a la onda rebotar podras calcular la velocidad. Bueno asi deberia ser en principio.

/Aqui se configuran los pines donde debemos conectar el sensor/
#define TRIGGER_PIN 12
#define ECHO_PIN 11
#define MAX_DISTANCE 200 /Calibracion de distancia

/Crear el objeto de la clase NewPing/
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

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

void loop() {
// Esperar 1 segundo entre mediciones
delay(1000);
// Obtener medicion de tiempo de viaje del sonido y guardar en variable uS
int uS = sonar.ping_median();
// Imprimir la distancia medida a la consola serial
Serial.print("Distancia: ");
// Calcular la distancia con base en una constante
Serial.print(uS / US_ROUNDTRIP_CM);
Serial.println("cm");
}

Con ese codigo obtienes distancia y tiempo. Ya solo es un depeje y tienes tu velocidad.

Si quieres medir la velocidad de un carro en un tramo de un metro usa dos barreras IR, cuando atraviesa una arracas un contador y cuando atraviesa la segunda detienes el contador.
Puedes usar millis() y tener una precisión de 1mseg.
Lograrás una calidad de medicion que no tendrás con un sensor ultrasónico.

es una diferencial viejo, de tu sensor puedes obtener 3 cosas Velocidad de rafaga, Distancia que recorrio la rafaga y el tiempo que tardó en recorrer esa distancia, tu necesitas 2 cosas de esas la Distancia t el Tiempo.

Al principio tu auto se encontrara a una distancia X1 de tu sensor dicha distancia sera recorrida en un tiempo T1, despues tu auto se movera a una distancia X2 de tu sensor y le tomara un tiempo T2 para alcanzar a tu auto,

Teniendo esto la distancia que recorrio tu auto sera dX=X2-X1 y el tiempo que tardo en recorer dicho espacio sera dT=T2-T1, recordando que la velocidad es la primer derivada de la distancia con respecto del tiempo tendremos que la velocidad del auto sera V=dX/dT.

solo necesitas un par de variables donde almacenar el tiempo y otro par para almacenar la distancia, aplicas un calculo como este

V=(X2-X1)/(T2-T1);

las variables deben de ser actualizadas en cada loop

mastero101:
Eso es lo que hace el sensor, ya se sabe su velocidad de la onda ultrasonica y solo se obtiene la distancia con el sensor asi se puede calcular la velocidad del objeto, al menos espero que sepas fisica. Siempre he querido de esos sensores para probar pero creo que van funcionando asi.

V=D/T

Se conoce la velocidad de la onda. Pero no la distancia, el tiempo es la variable a medir al disparar la onda esta rebotara en el objeto y regresara al emisor, el timer se detendra y con un despeje te dara la distancia.
Si tienes el objeto alejandose de ti conociendo estos datos puedes calcular la velocidad, si sabes a que distancia esta y el tiempo que le toma a la onda rebotar podras calcular la velocidad. Bueno asi deberia ser en principio.

/*Aqui se configuran los pines donde debemos conectar el sensor*/

#define TRIGGER_PIN  12
#define ECHO_PIN     11
#define MAX_DISTANCE 200 /Calibracion de distancia

/Crear el objeto de la clase NewPing/
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

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

void loop() {
 // Esperar 1 segundo entre mediciones
 delay(1000);
 // Obtener medicion de tiempo de viaje del sonido y guardar en variable uS
 int uS = sonar.ping_median();
 // Imprimir la distancia medida a la consola serial
 Serial.print("Distancia: ");
 // Calcular la distancia con base en una constante
 Serial.print(uS / US_ROUNDTRIP_CM);
 Serial.println(“cm”);
}



Con ese codigo obtienes distancia y tiempo. Ya solo es un depeje y tienes tu velocidad.

Hola muchas gracias por tu atencion si se fisica de echo el proyecto es para la materia de fisica iva a hacer pruebas con tu codigo pero me marca varios errores y ya investige e intente solucionarlo pero no e podido te dejo los errores aver si me puedes ayudar de nuevo porfavor.

Arduino:1.6.6 Hourly Build 2015/09/29 07:43 (Windows 10), Placa:“Arduino/Genuino Uno”

fisica:8: error: ‘NewPing’ does not name a type

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

^

C:\Users\HECTOR RAMIREZ\Documents\carrduino\fisica\fisica.ino: In function 'void loop()':

fisica:18: error: 'sonar' was not declared in this scope

  int uS = sonar.ping_median();

           ^

fisica:22: error: 'US_ROUNDTRIP_CM' was not declared in this scope

  Serial.print(uS / US_ROUNDTRIP_CM);

                    ^

exit status 1
'NewPing' does not name a type

 Este informe podría tener más información con
 "Mostrar salida detallada durante la compilación"
 activala desde Archivo > Preferencias

Pregunta y como obtienes los tiempos del sensor?