مبنای کد دومت اینتراپته
این رو تست کن ببین جواب میگیری:
کد:


unsigned long count = 0;
unsigned long timep, t, etime;


void setup() {


  Serial.begin(9600);
  pinMode(3, INPUT); //Channel A
  attachInterrupt(1, transition, CHANGE);
  timep = micros(); //Set the initial time


}


// the loop routine runs over and over again forever:
void loop() {
  voltageRead();
  rpmRead();
}


void voltageRead() {


  int sensorValue = analogRead(A0);
  float voltage = sensorValue * (5.0 / 1023.0 * 4.86) * sensorValue * (5.0 / 1023.0 * 4.86) / 4;
  delay(300);
  Serial.println(voltage);


}


void rpmRead() {
  t = micros();
  etime = t - timep;
  if (etime > 100000)
  {
    Serial.println(count * 0.33);
    count = 0;
    timep = t;
  }
}


void transition()
{
count++;
}