Как вывести количество общее количество оборотов

Sharlatan
Offline
Зарегистрирован: 12.08.2016
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x20, 16, 2);
int x;
volatile int imp = 0;
volatile int imp2 = 0;
void impuls()
{
  imp ++;                                 
}

void impuls2()
{
  imp2 ++;
}
void setup()
{

  Serial.begin(9600);
  lcd.init();
  lcd.backlight();// Включаем подсветку дисплея
  attachInterrupt(0, impuls, FALLING);
  attachInterrupt(1, impuls2, FALLING);
}

void loop() {
  x = imp2 - imp;                  // общее пройденное растояние 
  lcd.setCursor(0, 0);            
  lcd.print(imp);                  //датчик оборотов крутиться в одну сторону, выводит количество импульсов в первую строку
  lcd.setCursor(0, 1);
  lcd.print(imp2);                 // датчик оборотов крутиться в другую сторону, выводит количество импульсов во вторую строку
  lcd.setCursor(6, 0);
  lcd.print(x);                    //общее пройденое расстояние (рисуется билибирда)
}

как вывести на дисплей общие пройденные обороты( датчик может крутиться в любую сторону)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Если imp, imp2 и x не переполняются, то других проблем я не вижу.

А что там за "билиберда" как Вы изволили выразитьс? Левые числа или вообще грязь? 

Sharlatan
Offline
Зарегистрирован: 12.08.2016

Числа переполняются на дисплее 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Так сделайте их long, а не int