#include <LiquidCrystal_I2C.h>
#include <stdio.h>
#define PIN_CLK 3
#define PIN_DT 2
#define PIN_SW 4
int encoderPos = 0;
LiquidCrystal_I2C lcd(0x72, 16, 2); // Tu może być potrzebne dostosowanie adresu
int cospisze;
void setup() {
pinMode(PIN_CLK, INPUT);
pinMode(PIN_DT, INPUT);
pinMode(25, OUTPUT);
digitalWrite(25, HIGH);
lcd.init(); // Inicjalizacja wyświetlacza LCD
lcd.backlight(); // Włączenie podświetlenia
lcd.clear(); // Czyszczenie wyświetlacza
attachInterrupt(digitalPinToInterrupt(PIN_CLK), updateEncoder, CHANGE);
attachInterrupt(digitalPinToInterrupt(PIN_SW), switchPress, CHANGE);
lcd.print("Pozycja:");
}
void loop() {
// put your main code here, to run repeatedly:
lcd.setCursor(9, 0); // Ustawienie kursora na wyświetlaczu
lcd.print(encoderPos); // Wyświetlenie pozycji enkodera
delay(500);
}
void updateEncoder() {
bool data = digitalRead(PIN_DT);
bool clk = digitalRead(PIN_CLK);
if(data == clk){
encoderPos++;
digitalWrite(25, HIGH);
}
else{
encoderPos--;
digitalWrite(25, LOW);
}
}
void switchPress(){
Serial.println("Sw press");
}