dear all,
i've taken all coments and advise into consideration. did some extra reading and came up with the following.
/* Alimoestar S.K.
* original code may 2018
* 16 aug 2018 revised
* coments and advise from arduino forum toopic :rpm sensing with proximity sensor
*
*/
const byte interruptPin = 2;
volatile long n=0;
volatile long RPM=0;
volatile boolean flag=0;
long RPMperiod;
unsigned long previoustime=0;
void setup()
{
Serial.begin(9600);
attachInterrupt(digitalPinToInterrupt(interruptPin), sensor, FALLING);
}
void loop()
{
if(flag)
{
RPM=(60000000UL/RPMperiod); //One (1) signal per rotation.
interrupts();
Serial.print("RPM = ");
Serial.println(RPM );
flag=0;
}
}
void sensor()
{unsigned long currenttime=micros();
RPMperiod=float ( currenttime- previoustime);
flag=1;
previoustime = currenttime;
}
in the serial monitor i'm seeing my rpm value and a lot of other things.