Подсчет оборотов двигателя по времени между началом и концом оборота
Пытаюсь сделать счетчик оборотов на ардуино в реальном времени.
Имеется время 1 оборота двигателя (в микросекундах), двигатель дает 1 импульс на 1 оборот.
Как высчитать кол-во оборотов в минуту, зная лишь время 1 оборота?
Код:
#include <Arduino.h>
long lastRpmDetectedTime = 0;
long lastRPM = 0;
double rpm = 0;
void rpmDetected(){
detachInterrupt(digitalPinToInterrupt(2));
lastRPM = micros() - lastRpmDetectedTime;
rpm = lastRPM; // нужна какая-то магия превращения разницы во времени в обороты в минуту
lastRpmDetectedTime = micros();
attachInterrupt(digitalPinToInterrupt(2), rpmDetected, RISING);
}
void setup() {
Serial.begin(9600);
attachInterrupt(digitalPinToInterrupt(2), rpmDetected, RISING);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println(rpm);
delay(1000);
}
Ответы (1 шт):
Автор решения: Вадим
→ Ссылка
Поделить минуту на микросекунды и поделить на время оборота(тоже в микросекундах).