#include <Wire.h>
#include <TM1637TinyDisplay.h>
int rpm; // ex float
float value=0;
float rev=0;
int oldtime=0;
int time;
#define CLK 5
#define DIO 3
TM1637TinyDisplay display(CLK, DIO);
void count() {
rev++;
}
void setup()
{
Serial.begin(9600);
pinMode(2, INPUT);
attachInterrupt(digitalPinToInterrupt(2), count, RISING); //RISING or //CHANGE
delay(100); // ?
display.begin();
}
void loop()
{
delay(100);// 2 second delay
detachInterrupt(digitalPinToInterrupt(2)); //detaches the interrupt while calculating
time=millis()-oldtime; //finds the time
rpm=(rev/time)*600; //calculates rpm
oldtime=millis(); //saves the current time
rev=0;
if(rpm>1){
Serial.println(rpm);
}
display.showNumber(rpm);
// display.showNumber(rpm, true, 4, 0);
attachInterrupt(digitalPinToInterrupt(2), count, RISING);
}