#include #include #include //display U8G2_SH1107_SEEED_128X128_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); //variables int startx = 0; const int buttonUp = 5; const int buttonDown = 6; const int buttonEnter = 9; const int mainLoopLED = 10; int buttonUpState = 0; int lastButtonUpState = 0; int buttonDownState = 0; int lastButtonDownState = 0; int buttonEnterState = 0; int lastButtonEnterState = 0; int menuIndex = 0; bool mainMenu = true; void setup() { // put your setup code here, to run once: u8g2.begin(); u8g2.clearBuffer(); u8g2.sendBuffer(); pinMode(buttonUp, INPUT); pinMode(buttonDown, INPUT); pinMode(buttonEnter, INPUT); pinMode(mainLoopLED, OUTPUT); } void loadloop() { //u8g2.clearBuffer(); for (int starty = 0; starty <= 255; starty++) { u8g2.clearBuffer(); u8g2.drawArc(64, 64, 25, 0, starty); u8g2.drawArc(64, 64, 26, 0, starty); u8g2.drawArc(64, 64, 27, 0, starty); u8g2.drawArc(64, 64, 35, 0, starty); u8g2.drawArc(64, 64, 36, 0, starty); //starty = starty -1; startx = starty -55; u8g2.sendBuffer(); } } void drawMenu(){ //u8g2.clearBuffer(); u8g2.setFont(u8g2_font_gb24st_t_1); u8g2.setCursor(1, 12); u8g2.print("Menu"); u8g2.drawHLine(0, 15, 128); u8g2.setCursor(5, 34); u8g2.print("LED"); u8g2.setCursor(5, 54); u8g2.print("LED2"); u8g2.setCursor(5, 74); u8g2.print("LED3"); //u8g2.sendBuffer(); } void loop() { while (mainMenu == true) { u8g2.clearBuffer(); drawMenu(); u8g2.sendBuffer(); mainMenu = false; digitalWrite(mainLoopLED, HIGH); delay(1000); } digitalWrite(mainLoopLED, LOW); lastButtonUpState = 0; lastButtonDownState = 0; buttonUpState = digitalRead(buttonUp); buttonDownState = digitalRead(buttonDown); if (buttonUpState == HIGH & lastButtonUpState == 0 & menuIndex >= 0) { digitalWrite(mainLoopLED, HIGH); lastButtonUpState = 1; if (menuIndex == 0) { u8g2.clearBuffer(); u8g2.drawFrame(0, 20, 128, 15); drawMenu(); u8g2.sendBuffer(); } else if ( menuIndex == 1) { u8g2.clearBuffer(); u8g2.drawFrame(0, 40, 128, 15); drawMenu(); u8g2.sendBuffer(); }else if ( menuIndex == 2) { u8g2.clearBuffer(); u8g2.drawFrame(0, 60, 128, 15); drawMenu(); u8g2.sendBuffer(); } if (menuIndex > 0) { menuIndex--; } delay(100); } if (buttonDownState == HIGH & lastButtonDownState == 0 & menuIndex <= 2) { lastButtonDownState = 1; digitalWrite(mainLoopLED, HIGH); if (menuIndex == 0) { u8g2.clearBuffer(); u8g2.drawFrame(0, 20, 128, 15); drawMenu(); u8g2.sendBuffer(); } else if ( menuIndex == 1) { u8g2.clearBuffer(); u8g2.drawFrame(0, 40, 128, 15); drawMenu(); u8g2.sendBuffer(); }else if ( menuIndex == 2) { u8g2.clearBuffer(); u8g2.drawFrame(0, 60, 128, 15); drawMenu(); u8g2.sendBuffer(); } if (menuIndex < 2) { menuIndex++; } delay(100); } }