Problema con proyecto de Anemometro

Buenas, tengo en mente un proyecto pero soy bastante nuevo con arduino y no se como hacerlo exactamente.

La idea es la siguiente: Quiero usar un anemometro y medir el viento constantemente. Según las especificaciones del producto tiene un imán que al dar una vuelta completa las aspas manda una señal digital. Una vuelta en un segundo equivale a una velocidad de viento de 2.4 km/h.

Lo que no se es como hacer esto ultimo, que me lea en un segundo cuantas veces ha recibido ese 1 digital para poder hacer el calculo del viento. Os pongo el código que he escrito que seguramente no tenga sentido pero como ya he dicho soy un noob.

float vueltas;
#define anemometro 3
int lectura;
float velocidadViento;
int suma;
unsigned long tiempo;
void setup() {
  pinMode(anemometro, INPUT);
  Serial.begin(9600);
}

void loop() {
  //una vuelta al segundo son 2.4kmh
  lectura = digitalRead(anemometro);
  while (lectura == 0) {
    lectura = digitalRead(anemometro);
  }
  if(lectura==1){
    tiempo=millis();
    if(millis()-tiempo<1000){
    lectura = digitalRead(anemometro);
    while(lectura==0){
    lectura=digitalRead(anemometro);
    
    } 
   if(lectura==1){
    suma+=lectura;
    Serial.print("hola");
   }
    }
   
    
  }
  /*velocidadViento = lectura * 2.4;

  if (velocidadViento > 40 && velocidadViento < 87) {
    Serial.print("El viento es fuerte, de: ");
    Serial.print(velocidadViento);
    Serial.println("km/h");
  }
  else if (velocidadViento > 87) {
    Serial.print("El viento es extremo, de: ");
    Serial.print(velocidadViento);
    Serial.println("km/h");
  }
  else {
    Serial.print("El viento es normal, de: ");
    Serial.print(velocidadViento);
    Serial.println("km/h");
  }*/

}

Hola, buen dia
Creo que esto debería funcionar:

#define anemometro 3
bool lecturaSensor, estadoAnteriorLectura;
float velocidadViento;
float vueltasxSegundo;
float factorDeConversion=2.4;        //una vuelta al segundo son 2.4kmh
unsigned long tiempo;

void setup() {
  pinMode(anemometro, INPUT);
  Serial.begin(9600);
}

void loop() {


  lecturaSensor = digitalRead(anemometro);

  if(lecturaSensor && !estadoAnteriorLectura)  //Se detecta el cambio de flanco del sensor
  	    vueltasxSegundo++;
  estadoAnteriorLectura=lecturaSensor;
      
  
  if(millis()-tiempo >=1000UL){
    	  velocidadViento = vueltasxSegundo * factorDeConversion;
     	  Serial.println("velocidad del viento es: " + String(velocidadViento, 1) + " Km/h");
    	  vueltasxSegundo=0;
    	  tiempo=millis();
          }
   
    
  }

Espero te sirva. Saludos

P.D. Ya tienes 6 post en este foro, ya debiste leer las normas y saber que tu pregunta no va en esta sección si no en la de software, lo mas seguro es que muevan tu hilo a la sección correspondiente