#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_ADDR 0x3C
Adafruit_SSD1306 display(128, 64, &Wire, -1);
int i = 0;
void IRAM_ATTR clk(){
if(digitalRead(35) == 0) {
i--;
}
else {
i++;
}
if(i < 0) i = 2;
if(i > 2) i = 0;
}
void setup() {
// put your setup code here, to run once:
display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR);
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(2);
Serial.begin(115200);
Serial.println("Hello, ESP32!");
attachInterrupt(34, clk, FALLING);
pinMode(35, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println(i);
switch(i){
case 0:
display.clearDisplay();
display.setCursor(10, 10);
display.println(">Option 1");
display.setCursor(10, 30);
display.println(" Option 2");
display.setCursor(10, 50);
display.println(" Option 3");
display.display();
break;
case 1:
display.clearDisplay();
display.setCursor(10, 10);
display.println(" Option 1");
display.setCursor(10, 30);
display.println(">Option 2");
display.setCursor(10, 50);
display.println(" Option 3");
display.display();
break;
case 2:
display.clearDisplay();
display.setCursor(10, 10);
display.println(" Option 1");
display.setCursor(10, 30);
display.println(" Option 2");
display.setCursor(10, 50);
display.println(">Option 3");
display.display();
break;
}
}