int interrupt = 2;
int teller;
volatile unsigned long current_micros;
volatile unsigned long old_micros;
volatile unsigned long current_millis;
volatile unsigned long old_millis;
volatile bool state;
unsigned long time1;
unsigned long rpm;
unsigned long frequentie;
float periode;
void setup() {
analogWrite(3, 127);
pinMode(interrupt, INPUT);
attachInterrupt(digitalPinToInterrupt(interrupt), toerental, RISING);
Serial.begin(115200);
}
void loop() {
current_millis = millis();
if(current_millis - old_millis >= 1000){
frequentie = teller/2;
rpm = frequentie * 60ul;
Serial.print(teller);
Serial.print(" ");
Serial.print(frequentie);
Serial.print(" ");
Serial.println(rpm);
old_millis = current_millis;
teller = 0;
}
}
void toerental() {
if(micros() - old_micros > 1000){
old_micros = micros();
teller++;
}
}←Falling Bounce
←Clean Rising Signal
←Rising Bounce
←Clean Falling Signal