Código ultrasonido

buenas tardes todos, tengo un problema.
estoy intentando hacer un radar de velocidad con un Arduino uno, una pantalla lcd con interfaz y el ultrasonido y necesito ayuda con el código

// 

#include <LiquidCrystal_I2C.h> // Debe descargar la Libreria que controla el I2C
#include<Wire.h>

LiquidCrystal_I2C lcd(0x3F, 16, 2);

long distancia;
long tiempo;
double dist1;
double dist2;
double vel;
int triger = 7;
int echo = 6;


void setup(){
    lcd.backlight();
    lcd.init();
    lcd.begin(16, 2);
    Serial.begin(9600);
    pinMode(triger,OUTPUT);
    pinMode(echo, INPUT);
    
}

void loop(){
    
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print( "RADAR DE" );
    lcd.setCursor(0,1);
    lcd.print( "VELOCIDAD" );
    dist1 = 0;
    dist2 = 0;
    vel = 0;
    digitalWrite(triger,LOW);      //Apagamos el pulso ultrasónico
  delayMicroseconds(5);     //Pequeña pausa de estabilización
  digitalWrite(triger, HIGH);    //Envío del pulso ultrasónico
  delayMicroseconds(10);    //Pequeña pausa de estabilización
  tiempo = pulseIn(echo, HIGH);    //Función para medir el tiempo que transcurrido entre el envío del pulso ultrasónico y cuando el sensor recibe el rebote
  distancia= int(0.017*tiempo); //Fórmula para calcular la distancia usando la velocidad del sonido como constante
   Serial.print("Distancia "); Serial.print(distancia);  Serial.println(" cm");  //Sacamos el resultado por el monitor serial
  delay(1000);     //Pequeña pausa antes de reiniciar el ciclo
    while(distancia < 60) //esperar hasta que la distancia sea menor a 60 cm
    {
        loop();
    }
    digitalWrite(triger,LOW);      //Apagamos el pulso ultrasónico
  delayMicroseconds(5);     //Pequeña pausa de estabilización
  digitalWrite(triger, HIGH);    //Envío del pulso ultrasónico
  delayMicroseconds(10);    //Pequeña pausa de estabilización
  tiempo = pulseIn(echo, HIGH);    //Función para medir el tiempo que transcurrido entre el envío del pulso ultrasónico y cuando el sensor recibe el rebote
  dist1= int(0.017*tiempo); //Fórmula para calcular la distancia usando la velocidad del sonido como constante
    delay(0.1);
    digitalWrite(triger,LOW);      //Apagamos el pulso ultrasónico
  delayMicroseconds(5);     //Pequeña pausa de estabilización
  digitalWrite(triger, HIGH);    //Envío del pulso ultrasónico
  delayMicroseconds(10);    //Pequeña pausa de estabilización
  tiempo = pulseIn(echo, HIGH);    //Función para medir el tiempo que transcurrido entre el envío del pulso ultrasónico y cuando el sensor recibe el rebote
  dist2= int(0.017*tiempo); //Fórmula para calcular la distancia usando la velocidad del sonido como constante
    vel = ((dist1) - (dist2)) / (0.1);
    delay(0.5);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print( "SU VELOCIDAD ES DE" );
    lcd.setCursor(0,1);
    lcd.print( vel );
    lcd.setCursor(4,1);
    lcd.print( "cm/s" );
    delay(50);
    
    loop();
}


void _loop(){
    
}

este es el código y estoy intentando hacer lo siguiente

que en la pantalla muestre radar de velocidad y se quede así hasta que digamos que un carro de juguete lanzarlo a el y que guarde una distancia en una variable esperar 0.1 segundos y que guarde otra distancia en otra variable y así hacer la conversión hallando la velocidad promedio.

quisiera saber si hay una forma de guardar el dato en una variable

eso es todo por ahora, muchas gracias a los que leas y respondan.
un saludo

Vamos a replantear el código pero comencemos por algunos detalles.

delay(0.1); es un error
delay requiere valores enteros, no decimales. Lo mínimo que puedes usar es 1 milisegundo.
Si quieres menos de 1 milisegundo debes usar micros()

He hecho algunas correcciones teniendo en cuenta esto y eliminé el _loop() que no hacia nada.

#include <LiquidCrystal_I2C.h> // Debe descargar la Libreria que controla el I2C
#include <Wire.h>

LiquidCrystal_I2C lcd(0x3F, 16, 2);

long distancia;
long tiempo;
double dist1;
double dist2;
double vel;
int triger = 7;
int echo   = 6;


void setup(){
    lcd.backlight();
    lcd.init();
    lcd.begin(16, 2);
    Serial.begin(9600);
    pinMode(triger,OUTPUT);
    pinMode(echo, INPUT);
}

void loop(){
    
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("RADAR DE");
    lcd.setCursor(0,1);
    lcd.print("VELOCIDAD");
    dist1 = 0;
    dist2 = 0;
    vel   = 0;
    
	distancia = ultrasonico();
	Serial.print("Distancia "); Serial.print(distancia);  Serial.println(" cm");  //Sacamos el resultado por el monitor serial
	delay(1000);     //Pequeña pausa antes de reiniciar el ciclo
    
    while (distancia > 60) { //esperar hasta que la distancia sea menor a 60 cm
           // no hace falta poner nada, seguirá asi mientras distancia :60
           // cuando sea menor que 60 sale del while
           distancia = ultrasonico(); 
           Serial.print("Distancia "); Serial.print(distancia);  Serial.println(" cm");  //Sacamos el resultado por el monitor serial
    }
    dist1 = ultrasonico();
	micros(100);
	dist2 = ultrasonico();
    vel   = ((dist1) - (dist2)) / (0.1);
    micros(500);
    muestroDatos();
}

int ultrasonico() {
    digitalWrite(triger,LOW);       // Apagamos el pulso ultrasónico
	delayMicroseconds(5);     		// Pequeña pausa de estabilización
	digitalWrite(triger, HIGH);    	// Envío del pulso ultrasónico
	delayMicroseconds(10);    		// Pequeña pausa de estabilización
	tiempo = pulseIn(echo, HIGH);   // Función para medir el tiempo que transcurrido entre el envío del pulso ultrasónico y cuando el sensor recibe el rebote
	return int(0.017*tiempo); 		// Fórmula para calcular la distancia usando la velocidad del sonido como constante
}

void muestroDatos() {
	lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("SU VELOCIDAD ES DE");
    lcd.setCursor(0,1);
    lcd.print( vel );
    lcd.setCursor(4,1);
    lcd.print("cm/s");
    delay(50);
}