
volatile int state = LOW;
volatile int RPM = 0;
unsigned long lastflash;
void setup() {
  // put your setup code here, to run once:
  pinMode(13, OUTPUT);
    pinMode(2, INPUT_PULLUP);
    attachInterrupt(0,sens,RISING); //подключить прерывание на 2 пин при повышении сигнала
    Serial.begin(9600);  //открыть порт
}
  void sens() {
    state = !state;
    RPM=60/((float)(micros()-lastflash)/1000000);  //расчет
  lastflash=micros();  //запомнить время последнего оборота
}
void loop() {
//  if(digitalRead(2)) digitalWrite(13,HIGH);
//  else digitalWrite(13,LOW);
//    if(digitalRead(2)) digitalWrite(13,HIGH)
		
		... 
		
			Читать дальше »