Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const byte interruptPin = 13;
- const unsigned long sampleTime = 2000;
- int rpmMaximum = 0;
- void setup() {
- Serial.begin(115200);
- pinMode(interruptPin, INPUT);
- }
- int getRPM()
- {
- int count = 0;
- boolean countFlag = LOW;
- unsigned long currentTime = 0;
- unsigned long startTime = millis();
- while (currentTime <= sampleTime)
- {
- if (digitalRead(interruptPin) == HIGH)
- {
- countFlag = HIGH;
- }
- if (digitalRead(interruptPin) == LOW && countFlag == HIGH)
- {
- count++;
- countFlag=LOW;
- }
- currentTime = millis() - startTime;
- }
- Serial.println(count/2);
- int countRpm = int(60000/float(sampleTime))*int(count/2);
- return countRpm;
- }
- void loop() {
- delay(100);
- int rpm = getRPM();
- Serial.print("An interrupt has occurred. Total: ");
- Serial.println(rpm);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement