Codigo para calcular velocidad. Agregar Cronometro

Hola tengo este código que me calcula la distancia y me da velocidad pero la velocidad no es correcta lo que necesito es agregar un cronometro que empiece y se detenga con un pulso para aplicar bien la fórmula solo que no se mucho sobre programar y quisiera que me ayudaran a decirme como le puedo agregar ese cronometro.

#include <LiquidCrystal.h>
// PIN 7 -> RS
// PIN 8   -> Enable
// PINS 9-12 -> D4-7
LiquidCrystal lcd(7, 8, 9, 10, 11 , 12);
long velocidad;
long distancia;
long tiempo;
void setup(){
  Serial.begin(9600);
  pinMode(4, OUTPUT); /*activación del pin 9 como salida: para el pulso ultrasónico*/
  pinMode(5, INPUT); /*activación del pin 8 como entrada: tiempo del rebote del ultrasonido*/
  lcd.begin(16, 2);
  lcd.setCursor(0,0);
  lcd.print("Distancia ");
  lcd.setCursor(0,1);
  lcd.print("velocidad ");
}

void loop(){
  digitalWrite(4 ,LOW); /* Por cuestión de estabilización del sensor*/
  delayMicroseconds(10);
  digitalWrite(4, HIGH); /* envío del pulso ultrasónico*/
  delayMicroseconds(10);
  tiempo=pulseIn(5, HIGH); /* Función para medir la longitud del pulso entrante. Mide el tiempo que transcurrido entre el envío
  del pulso ultrasónico y cuando el sensor recibe el rebote, es decir: desde que el pin 12 empieza a recibir el rebote, HIGH, hasta que
  deja de hacerlo, LOW, la longitud del pulso entrante*/
  distancia= int(0.017*tiempo);/*fórmula para calcular la distancia obteniendo un valor entero*/
  velocidad= int(distancia/0.017);
  /*Monitorización en centímetros por el monitor serial*/
  lcd.setCursor(10,0);
  lcd.print(distancia);
  lcd.print(" cm");
  delay(500);
  lcd.setCursor(10,10);
  lcd.print(velocidad);
  lcd.print("m/s2");
  delay(500

);
}

ese es el código agradecería mucho su ayuda

Porque vuelves a preguntar lo que se discutió en tu post : Crear codigo para calcular velocidad con arduino uno y ultrasonico ?
Es el mismo tema!!

si es sobre lo mismo el tema pero en el post pasado aun no tenia nada de el código y preguntaba como lo podia realizar en este post cómo puedes ver ya tengo avanzado el codigo solo me falta lo q estoy preguntando para terminar

Hola, me parece que tu error únicamente esta en la formulas que empleaste para sacar la velocidad.

Primero que nada la velocidad se expresa en m/s no en m/s^2, lo segundo es para aceleración.

La velocidad aproximada de este sensor es de 340m/s de ida y vuelta, en esta parte te has equivocado: distancia= int(0.017*tiempo), seria 0.34*tiempo, ya que lo vas a expresar en cm/s.

La formula para Velocidad es V=Distancia/Tiempo, entonces la formula seria V=2D/T, recordemos que hay dos distancias recorridas (ida y vuelta).

Espero haberte ayudado.
:slight_smile:

No debes crear un nuevo hilo hasta resolver el anterior.
En el anterior no pusiste SOLUCIONADO entonces hasta resolverlo se sigue alla y no se crea un nuevo.
Vuelve a leer las normas del foro por favor.

surbyte:
No debes crear un nuevo hilo hasta resolver el anterior.
En el anterior no pusiste SOLUCIONADO entonces hasta resolverlo se sigue alla y no se crea un nuevo.
Vuelve a leer las normas del foro por favor.

Disculpas de nuevo ya volví a leer las normas espero ya nunca tener más problemas con esto.