tachometer, review of methods

i have added some serial print to show you the behaviour of the sensors:

volatile byte rpmcount;
unsigned int rpm;
unsigned long timeold;

void setup() {

  Serial.begin(115200);

  rpmcount = 0;
  rpm = 0;
  timeold = 0;

}

void loop()
{

  if (rpmcount >50){
  detachInterrupt(digitalPinToInterrupt(3));
  rpm = 30 * 1000 / (millis() - timeold) * rpmcount;
  timeold = millis();
  rpmcount = 0;  
  }
  attachInterrupt(digitalPinToInterrupt(3), rpm_fun, FALLING);
  Serial.print("rpmcount:  ");
  Serial.print(rpmcount);
  Serial.print("  |  sensor:  ");
  Serial.print(digitalRead(3));
  Serial.print("  |  rpm:  ");
  Serial.println(rpm);
}

void rpm_fun() {
  rpmcount++;
}

i have two ir sensors

ir-08h that i am not using


because it has mounted a HC00AG and on page 4 fig 1 shows that has a "time delay" so i thought it was less correct to use it

and then the ir sensor that i am using is this:

i wasn t able to find any shematics... but here there aren t any capacitator, the potentiometer is used to adjust the sensibility distance

so the output of this sensor is this, i am coping only relevant parts:

rpmcount:  0  |  sensor:  1  |  rpm:  0
rpmcount:  0  |  sensor:  1  |  rpm:  0
rpmcount:  0  |  sensor:  1  |  rpm:  0
rpmcount:  9  |  sensor:  0  |  rpm:  0
rpmcount:  9  |  sensor:  0  |  rpm:  0
rpmcount:  9  |  sensor:  0  |  rpm:  0

rpmcount:  9  |  sensor:  0  |  rpm:  0
rpmcount:  9  |  sensor:  1  |  rpm:  0
rpmcount:  16  |  sensor:  1  |  rpm:  0
rpmcount:  16  |  sensor:  1  |  rpm:  0

rpmcount:  16  |  sensor:  1  |  rpm:  0
rpmcount:  16  |  sensor:  1  |  rpm:  0
rpmcount:  16  |  sensor:  1  |  rpm:  0
rpmcount:  22  |  sensor:  0  |  rpm:  0
rpmcount:  22  |  sensor:  0  |  rpm:  0
rpmcount:  22  |  sensor:  0  |  rpm:  0
rpmcount:  22  |  sensor:  0  |  rpm:  0
rpmcount:  30  |  sensor:  1  |  rpm:  0
rpmcount:  30  |  sensor:  1  |  rpm:  0
rpmcount:  30  |  sensor:  1  |  rpm:  0


rpmcount:  30  |  sensor:  1  |  rpm:  0
rpmcount:  30  |  sensor:  1  |  rpm:  0
rpmcount:  30  |  sensor:  1  |  rpm:  0
rpmcount:  30  |  sensor:  1  |  rpm:  0
rpmcount:  30  |  sensor:  1  |  rpm:  0
rpmcount:  43  |  sensor:  0  |  rpm:  0
rpmcount:  43  |  sensor:  0  |  rpm:  0
rpmcount:  43  |  sensor:  0  |  rpm:  0
rpmcount:  43  |  sensor:  0  |  rpm:  0
rpmcount:  43  |  sensor:  0  |  rpm:  0
rpmcount:  0  |  sensor:  1  |  rpm:  364
rpmcount:  0  |  sensor:  1  |  rpm:  364
rpmcount:  0  |  sensor:  1  |  rpm:  364
rpmcount:  0  |  sensor:  1  |  rpm:  364


rpmcount:  0  |  sensor:  1  |  rpm:  0
rpmcount:  0  |  sensor:  1  |  rpm:  0
rpmcount:  0  |  sensor:  1  |  rpm:  0
rpmcount:  24  |  sensor:  0  |  rpm:  0
rpmcount:  24  |  sensor:  0  |  rpm:  0
rpmcount:  24  |  sensor:  0  |  rpm:  0
rpmcount:  24  |  sensor:  0  |  rpm:  0
rpmcount:  24  |  sensor:  1  |  rpm:  0
rpmcount:  47  |  sensor:  1  |  rpm:  0
rpmcount:  47  |  sensor:  1  |  rpm:  0
rpmcount:  47  |  sensor:  1  |  rpm:  0


rpmcount:  47  |  sensor:  1  |  rpm:  0
rpmcount:  47  |  sensor:  1  |  rpm:  0
rpmcount:  47  |  sensor:  1  |  rpm:  0
rpmcount:  58  |  sensor:  0  |  rpm:  0
rpmcount:  0  |  sensor:  0  |  rpm:  754
rpmcount:  0  |  sensor:  0  |  rpm:  754
rpmcount:  0  |  sensor:  0  |  rpm:  754
rpmcount:  0  |  sensor:  0  |  rpm:  754
rpmcount:  0  |  sensor:  0  |  rpm:  754
rpmcount:  0  |  sensor:  0  |  rpm:  754
rpmcount:  0  |  sensor:  0  |  rpm:  754
rpmcount:  0  |  sensor:  0  |  rpm:  754
rpmcount:  11  |  sensor:  1  |  rpm:  754
rpmcount:  11  |  sensor:  1  |  rpm:  754
rpmcount:  11  |  sensor:  1  |  rpm:  754

now i am going to try your suggestions

P.S: i would rather do ir with ir sensor not hall effect