#define ENCODER_CLK 2
#define ENCODER_DT 3
#define ENCODER_SW 4
#define LED 16
int rotate = 0;
void ARDUINO_ISR_ATTR isr(){
int dtValue = digitalRead(ENCODER_DT);
if (dtValue == HIGH) {
Serial.println("Rotated clockwise ⏩");
rotate ++;
Serial.println(rotate);
}
if (dtValue == LOW) {
Serial.println("Rotated counterclockwise ⏪");
rotate --;
Serial.println(rotate);
}
}
void ARDUINO_ISR_ATTR isr1(){
if (digitalRead(ENCODER_SW) == LOW) {
Serial.println("button pressd");
digitalWrite(LED, LOW);
delay(100);
}
else{
digitalWrite(LED, HIGH);
}
}
void setup() {
pinMode(ENCODER_CLK, INPUT_PULLUP);
pinMode(ENCODER_DT, INPUT);
pinMode(ENCODER_SW, INPUT_PULLUP);
pinMode(LED, OUTPUT);
digitalWrite(LED, HIGH);
attachInterrupt(digitalPinToInterrupt(ENCODER_CLK), isr, FALLING);
attachInterrupt(digitalPinToInterrupt(ENCODER_SW), isr1, FALLING);
}
void readEncoder() {
int dtValue = digitalRead(ENCODER_DT);
if (dtValue == HIGH) {
Serial.println("Rotated clockwise ⏩");
}
if (dtValue == LOW) {
Serial.println("Rotated counterclockwise ⏪");
}
}
void loop() {
// Do whatever
}