#include "AiEsp32RotaryEncoder.h"
#include "Arduino.h"
int dt = 23;
int clk = 22;
int sw = 21;
int vccpin = -1;
int steps = 4;
AiEsp32RotaryEncoder rotatoryEncoder = AiEsp32RotaryEncoder(dt,clk,sw,vccpin,steps);
void rotatory_onButtonClick(){
static unsigned long lastTimePressed = 0;
if(millis() - lastTimePressed<500){
return;
}
lastTimePressed = millis();
Serial.print("button pressed");
Serial.print(millis());
Serial.println("milliseconds after restart");
}
void rotatory_loop(){
if(rotatoryEncoder.encoderChanged()){
Serial.print("value: ");
Serial.println(rotatoryEncoder.readEncoder());
}
if(rotatoryEncoder.isEncoderButtonClicked()){
rotatory_onButtonClick();
}
}
void IRAM_ATTR readEncoderISR(){
rotatoryEncoder.readEncoder_ISR();
}
void setup(){
Serial.begin(115200);
rotatoryEncoder.begin();
rotatoryEncoder.setup(readEncoderISR);
bool circleValues = false;
rotatoryEncoder.setBoundaries(0,1000,circleValues);
rotatoryEncoder.setAcceleration(250);
}
void loop(){
rotatory_loop();
delay(50);
}