Controlar ventilador tacómetro y temperatura

Hola:

Quiero hacer varios ejemplos con un ventilador de PC que tiene tacómetro. Suele tener tres cables, el de alimentación rojo +, negro - y el amarillo es el de tacómetro.

Estos ventiladores son de 12 V. Cada vuelta que de, en el cable amarillo proporciona un pulso de 5 V, así se puede conectar directamente a Arduino sin ningún problema.

Quiero empezar poco a poco. Debo lograr desde Arduino UNO r3, que en el LCD 16x2 muestre con un pulsador las veces que lo pulso, como si fuera un contador. O intentar hacer un contador con un microinterruptor. Este ejemplo no se hacrelo.

Partiendo del ejemplo de arriba, el tacómetro hace de ese pulsador y se pone a contar de manera muy rápida, luego quiero saber sus RPM que lo indique en el LCD.

Precisamente tengo esta Shield.

Un pequeño ejemplo que he encontrado pero no se si es el más adecuado.

/*
 --------------------------------------------- 
  Contador de pulsos
 ---------------------------------------------
 
  Programa que muestra por pantalla (consola serial) el número 
   de veces que el pulsador ha sido presionado, se realiza un 
   proceso que de acuerdo al número de pulsaciones se enciende 
   un LED,
 
 Cosas de Mecatrónica y Tienda de Robótica
 
*/
 
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
//--------------------------------------------------
int conta = 0;  //Variable para guardar el conteo de los pulsos
 
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
  Serial.begin(9600);   //Inicia comunicación serial
  pinMode(2,INPUT);     //Configura el pin 2 como una entrada, pulsador
  pinMode(13,OUTPUT);   //Configura el pin 13 como una salida, LED
}
 
//------------------------------------
//Funcion ciclicla
//------------------------------------
void loop() // Esta funcion se mantiene ejecutando
{           //  cuando este energizado el Arduino
 
  // Si el pulsador esta oprimido
  if ( digitalRead(2) == HIGH ) 
  {
      // Si el pulsador no esta oprimido, flanco de bajada
      if ( digitalRead(2) == LOW )
      {
         conta++;               //Incrementa el contador
         Serial.println(conta); //Imprime el valor por consola
         delay (100);           // Retardo
      }
  }
 
  // Si el valor del contador es 5
  if (conta==5)
  {
    digitalWrite(13,HIGH);  //Enciende el LED
  }
 
  // Si el valor del contador es 8
  if (conta==8)
  {
    digitalWrite(13,LOW);  // Apaga el LED
  }
 
}
 
//Fin programa

http://tdrobotica.co/tutoriales/arduino/296-arduino-basico-t17ab-contador-de-pulsos

Un saludo.

si no quieres perder pulsos ,yo lo haria con interrupciones:
http://arduino.cc/en/Reference/AttachInterrupt