// Frequency Measurement - Arduino Nano (Leading Edge Detection) #define SENSOR_PIN 5 #define SECOND 1000000 #define SEC_PER_MIN 60 float lastTime = 0; float frequency = 0; bool lastState = 0; void setup() { pinMode(SENSOR_PIN, INPUT); Serial.begin(9600); delay(1000); // Allow Serial Monitor to initialize } void loop() { float currentTime = micros(); bool currentState = digitalRead(SENSOR_PIN); // Leading edge detection if ((lastState == 0)&&(currentState == 1)) { frequency = SECOND/(currentTime-lastTime); Serial.print("RPM = "); Serial.println(frequency*SEC_PER_MIN); lastTime = currentTime; } lastState = currentState; }