CCCPaste

de70a1b1e81ea

#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>

//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);
}
}