Electric unicycle speedometer

I want to measure the speed ( km/h) of my electric unicycle using one of the wire from the hall sensor. It has 47 pluses for a wheel of 88cm circumference.

The problem is the speed never resets, and does not seem go more than o.o1 on the lcd. Could someone please help me troubleshoot? I just got into Arduinos

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  // LCD pins connection

const int Pulseinput = 6;   //pulse input pin
float EUCspeed = 0;  //speed calculated in it its float
int counter = 0;            //counter to triger step

void setup() {
  // put your setup code here, to run once:
  lcd.begin(16, 2);        //initiate lcd type
  pinMode(Pulseinput, INPUT); //input mode for the pin
  lcd.setCursor(0,0);         //set the cursor for the lcd
  lcd.print("Speed = ");      //write to the lcd
  lcd.setCursor(0,9);         //set the cursor for the lcd
  lcd.print(EUCspeed);        //initiate the speed will be 0 meter
  Serial.begin(9600);

}

void loop() {
  // put your main code here, to run repeatedly:
  while(digitalRead(Pulseinput)!= 0)  //if there is pulses will count them
  {
    counter++;
    delay(10);
    
      EUCspeed = (counter*0.018)/(10*100*60*60); //equation to calculate the speed each 29cm happen in 47 pulses then the distance of one pulse will be 0.006m and i put the time accurecy to calculate that is 10ms
      lcd.setCursor(0,9);         //set the cursor for the lcd
      lcd.print(EUCspeed);        //initiate the speed will be 0 meter
  }
}

The problem is the speed never resets

You never reset it. At some point, you have to set "counter" back to zero.

To calculate speed requires knowing the time, i.e. revolutions per minute. Use millis() to get the time.