#include "Ai Esp32 Rotary Encoder.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 rotary_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())
{
rotary_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);
}