LØST RPM måler

Hej Mspuare

Du er jo næsten blevet en "tro følgesvend" i mit forsøg på at erober Arduino verdenen. XD

Nå...jeg ændrede variablerne, og aktiverede den indbyggede pullup.

og det hjalp rigtig meget.

Dog kunne jeg stadig godt tænke mig at serial.print af "rpm" bliver opdateret ved hvert "interrupt". Har du nogle forslag ud fra den nye sketch???

volatile int rpm;
 
unsigned long timeold;
unsigned long timenew;
unsigned long timediff;
volatile byte rpmcount;
 

 




void setup()
{
  Serial.begin(9600);
  attachInterrupt(0, rpm_fun, CHANGE);
 
 digitalWrite(2, HIGH);
  rpmcount = 0;
  rpm = 0;
  timeold = 0;
}
 
void loop()
{
  if (rpmcount==1) 
    timeold=millis();
 
  else if (rpmcount >= 20) { 
    //Update RPM every 20 counts, increase this for better RPM resolution,
    //decrease for faster update
    rpm = 30000/(millis() - timeold)*(rpmcount-1);
    //timeold = millis();
    rpmcount = 0;
    Serial.println(rpm);
  }
}
 
void rpm_fun()
{
  rpmcount++;
  //Each rotation, this interrupt function is run twice
}

VH
Lydfanger