#include <LiquidCrystal.h>
#include <Bounce2.h>

#define btnRed 3
#define btnGreen 2
#define btnBlue 1
#define btnToggle 13 
#define LED_PIN 10
#define LCD_RS 9
#define LCD_EN 8
#define LCD_D4 7
#define LCD_D5 6
#define LCD_D6 5
#define LCD_D7 4

int stevec = 0;
bool ledState = false; 
Bounce2::Button tipka1, tipka2, tipka3, tipkaToggle;
LiquidCrystal lcd(LCD_RS, LCD_EN, LCD_D4, LCD_D5, LCD_D6, LCD_D7);

void setup() {
  tipka1.attach(btnRed, INPUT_PULLUP);
  tipka2.attach(btnGreen, INPUT_PULLUP);
  tipka3.attach(btnBlue, INPUT_PULLUP);
  tipkaToggle.attach(btnToggle, INPUT_PULLUP);

  tipka1.interval(10);
  tipka2.interval(10);
  tipka3.interval(10);
  tipkaToggle.interval(10);

  tipka1.setPressedState(LOW);
  tipka2.setPressedState(LOW);
  tipka3.setPressedState(LOW);
  tipkaToggle.setPressedState(LOW);

  pinMode(LED_PIN, OUTPUT);

  Serial.begin(115200);
  lcd.begin(16, 2);
}

void loop() {
  tipka1.update();
  tipka2.update();
  tipka3.update();
  tipkaToggle.update();

  if (tipka1.pressed()) {
    stevec++;
    Serial.println(stevec);
  }
  if (tipka2.pressed()) {
    stevec--;
    Serial.println(stevec);
  }
  if (tipka3.pressed()) {
    stevec = 0;
    Serial.println(stevec);
  }
  if (tipkaToggle.pressed()) {
    ledState = !ledState; 
    digitalWrite(LED_PIN, ledState);
    Serial.print("LED state: ");
    Serial.println(ledState ? "ON" : "OFF");
  }

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(stevec);

  delay(10); 
}