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)
...
Читать дальше »