Вопросы по тахометру на дисплее 128х64

Нет ответов
Makkov
Offline
Зарегистрирован: 23.11.2014

Нужно мерять обороты редуктора двигателя, до 500 об/мин. Желательно точно, с шагом 1-2 оборота. Данный скетч в принципе работает, но выводит через 60 оборотов. Убавляю от 60000 один ноль, растет число импульсов на оборот. Подскажите, что можно сделать чтоб мерял нормально

#include "U8glib.h"
U8GLIB_ST7920_128X64_4X u8g(10,11,12,  U8G_PIN_NONE);
#define RPMpin 2
float value=0;
float rev=0;
int rpm;
int oldtime=0;
int time;
void isr() 
{
rev++;
}

void setup()
{
attachInterrupt(0, isr, FALLING);
}

void loop(){ 
u8g.firstPage();
{
delay(1000);
detachInterrupt(0);          
time=millis()-oldtime;       
rpm=(rev/time)*60000;       
oldtime=millis();           
rev=0;
u8g.setFont(u8g_font_fub14n);
u8g.setPrintPos(2, 22);
u8g.print(rpm);
u8g.setFont(u8g_font_7x13);
u8g.setPrintPos(50, 22);
u8g.print("RPM");
attachInterrupt(0,isr,RISING);

}
while(u8g.nextPage());  
}