#define ENCODER_CLK 5
#define ENCODER_DT 6
#define ENCODER_SW 7
int position=0;
int lastClk = HIGH;
void encoder_position(int newClk);
void setup() {
Serial.begin(115200);
pinMode(ENCODER_CLK, INPUT);
pinMode(ENCODER_DT, INPUT);
pinMode(ENCODER_DT, INPUT_PULLUP);
}
void loop() {
encoder_position(digitalRead(ENCODER_CLK));
if(position>11){
position=0;
}
if(position<0){
position=10;
}
if(digitalRead(ENCODER_SW)){
position=0;
}
Serial.println("position: "+String(position));
}
void encoder_position(int newClk)
{
if (newClk != lastClk) {
// There was a change on the CLK pin
lastClk = newClk;
int dtValue = digitalRead(ENCODER_DT);
if (newClk == LOW && dtValue == HIGH) {
Serial.println("Rotated clockwise ⏩");
position+=1;
}
if (newClk == LOW && dtValue == LOW) {
Serial.println("Rotated counterclockwise ⏪");
position-=1;
}
}
}
Loading
esp32-s3-devkitc-1
esp32-s3-devkitc-1