Problema con proyecto para escuela

hola muchachos un gusto, estoy teniendo problemas con un proyecto para la escuela necesito ayuda, el codigo me dice este error:

exit status 1
expected initializer before 'long'

les dejo el codigo para que alguien pueda ayudarme
codigo:

#include <LiquidCrystal.h>

#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>


double angle_rad = PI/180.0;
double angle_deg = 180.0/PI;
double dist1;
double vel;
double dist2;
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
float getDistance(int trig,int echo){
pinMode(trig,OUTPUT);
digitalWrite(trig,LOW);
delayMicroseconds(2);
digitalWrite(trig,HIGH);
delayMicroseconds(10);
digitalWrite(trig,LOW);
pinMode(echo, INPUT);
return pulseIn(echo,HIGH,30000)/58.0;
}

void setup(){
lcd.begin(16, 2);

}

void loop(){

lcd.clear();
lcd.setCursor( 3, 0);
lcd.print( "RADAR DE" );
lcd.setCursor( 3, 1 );
lcd.print( "VELOCIDAD" );
dist1 = 0;
vel = 0;
dist2 = 0;
while(!((getDistance(8,9)) < (50)))
{

dist1 = getDistance(8,9);
delay(0.1);
dist2 = getDistance(8,9);
vel = ((dist1) - (dist2)) / (0.1);
delay(0.5);
lcd.clear();
lcd.setCursor(0, 1);
lcd.print( "SU VELOCIDAD" );
lcd.setCursor(0, 1);
lcd.print( vel );
lcd.setCursor(0, 1);
lcd.print("cm/seg");
delay(3);


void delay(float seconds)
long end time = millis() + seconds * 1000;
while(millis() < endTime)loop();

Si fuera tu profesor comenzaría enseñándote que en todo foro debes leer las normas del mismo.
Los códigos se postean usando etiquetas al igual que los errores.
El código ademas debes presentarse debidamente identado o sea usando sangría (tabulado).

Faltan llaves al final y antes también.

Eso es algo simple que se observa cuando se usa CONTROL-T para darle autoformato y que quede tabulado.

Ahi te darías cuenta que te faltan llaves

Además no puedes definir una función con el nombre delay justamente cuando existe un procedimiento del IDE llamado delay.

Lo cambiaré a delaySeg(int tiempo)

Tampoco tiene sentido que uses float tiempo y le pases por parámetro un entero.

    lcd.setCursor(0, 1);
    lcd.print("cm/seg");
    delay(3);
  } // faltaba llave que cierra while
} // faltaba llave que cierra loop()


void delay(float seconds) { // faltaba llave que inicia rutina
long endTime = millis() + seconds * 1000; // la variable se debe llamar endTime como pusiste abajo
while(millis() < endTime)loop();

} // faltaba llave que termina rutina

El código corregido y no se si funcional

#include <LiquidCrystal.h>

//#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>

double angle_rad = PI/180.0;
double angle_deg = 180.0/PI;
double dist1;
double vel;
double dist2;
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

float getDistance(int trig,int echo) {
  pinMode(trig,OUTPUT);
  digitalWrite(trig,LOW);
  delayMicroseconds(2);
  digitalWrite(trig,HIGH);
  delayMicroseconds(10);
  digitalWrite(trig,LOW);
  pinMode(echo, INPUT);
  return pulseIn(echo,HIGH,30000)/58.0;
}

void setup() {
  lcd.begin(16, 2);
}

void loop(){

  lcd.clear();
  lcd.setCursor( 3, 0);
  lcd.print( "RADAR DE" );
  lcd.setCursor( 3, 1 );
  lcd.print( "VELOCIDAD" );
  dist1 = 0;
  vel = 0;
  dist2 = 0;
  while(!((getDistance(8,9)) < (50.0)))  {

    dist1 = getDistance(8,9);
    delaySeg(0.1);
    dist2 = getDistance(8,9);
    vel = (dist1 - dist2) / 0.1;
    delaySeg(0.5);
    lcd.clear();
    lcd.setCursor(0, 1);
    lcd.print( "SU VELOCIDAD" );
    lcd.setCursor(0, 1);
    lcd.print( vel );
    lcd.setCursor(0, 1);
    lcd.print("cm/seg");
    delaySeg(3);
  }
}

void delaySeg(float seconds) {
  long endTime = millis() + seconds * 1000;
  while (millis() < endTime)loop();
}