#include <Arduino.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int schetchik = 0;
int schetchik2 = 0;
bool enc_A=true;
bool enc_B=true;
bool enc_C=true;
bool enc_D=true;
void setup() {
  lcd.begin(16, 2);
  lcd.backlight(); //подсветка
  pinMode(11, INPUT);
  pinMode(12, INPUT);
  pinMode(9, INPUT);
  pinMode(10, INPUT);
  pinMode(7, INPUT);
  pinMode(8, INPUT);
}
void loop() {
  // Для первого энкодера
  static bool enc_prev = enc_A;  // Сохраняем текущее состояние энкодера A
  if ((!enc_A) && (enc_prev)) {
    if (enc_B) {
      if (schetchik + 1 > 0)
        schetchik += 1;
    } else {
      if (schetchik - 1 >= 0)
        schetchik -= 1;
    }
  }
  enc_prev = enc_A;  // Обновляем сохраненное состояние энкодера A
  float m = schetchik / 1.00;
  lcd.setCursor(10, 1);
  lcd.print(m);
  // Для второго энкодера
  static bool enc_prev2 = enc_C;  // Сохраняем текущее состояние энкодера C
  if ((!enc_C) && (enc_prev2)) {
    if (enc_D) {
      if (schetchik2 + 1 > 0)
        schetchik2 += 1;
    } else {
      if (schetchik2 - 1 >= 0)
        schetchik2 -= 1;
    }
  }
  enc_prev2 = enc_C;  // Обновляем сохраненное состояние энкодера C
  float m2 = schetchik2 / 1.00;
  lcd.setCursor(10, 0);
  lcd.print(m2);
  if (!digitalRead(7)) {
    schetchik = 0;  // Сброс счетчика schetchik при активации пина 7
  }
  if (!digitalRead(8)) {
    schetchik2 = 0;  // Сброс счетчика schetchik2 при активации пина 8
  }
}