#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#define widthScreen 128
#define heightScreen 64
Adafruit_SSD1306 display(widthScreen, heightScreen, &Wire, -1);
int buttonSatu = 6;
int buttonDua = 5;
int enter = 4;
int back = 3;
void setup() {
Serial.begin(9600);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("OLED gagal terkoneksi");
for (;;);
}
pinMode(buttonSatu, INPUT_PULLUP);
pinMode(buttonDua, INPUT_PULLUP);
pinMode(enter, INPUT_PULLUP);
pinMode(back, INPUT_PULLUP);
}
void loop() {
mainMenu();
}
void mainMenu() {
display.clearDisplay();
int menu = 0;
int submenu = 0;
while (1) {
byte readbuttonSatu = digitalRead(buttonSatu);
byte readbuttonDua = digitalRead(buttonDua);
byte readEnter = digitalRead(enter);
byte readBack = digitalRead(back);
if (submenu == 0) {
if (readbuttonSatu == 0) {
menu++;
delay(200);
}
if (readbuttonDua == 0) {
menu--;
delay(200);
}
if (menu > 3) {
menu = 0;
}
if (menu < 0) {
menu = 2;
}
}
if (readEnter == 0 && menu == 0) {
submenu = 1;
menu = 4;
}
if (readEnter == 0 && menu == 1) {
submenu = 2;
menu = 4;
}
if (readEnter == 0 && menu == 2) {
submenu = 3;
menu = 4;
}
if (readBack == 0) {
if (submenu == 1) {
menu = 0;
}
if (submenu == 2) {
menu = 1;
}
if (submenu == 3) {
menu = 2;
}
submenu = 0;
}
switch (menu) {
case 0:
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0, 0);
display.setTextColor(WHITE);
display.println("> Calculator");
display.println(" Setting");
display.println(" Contact");
display.display();
break;
case 1:
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0, 0);
display.setTextColor(WHITE);
display.println(" Calculator");
display.println("> Setting");
display.println(" Contact");
display.display();
break;
case 2:
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0, 0);
display.setTextColor(WHITE);
display.println(" Calculator");
display.println(" Setting");
display.println("> Contact");
display.display();
break;
}
switch (submenu) {
case 1:
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("Ini Calculator");
display.display();
break;
case 2:
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("Ini Settings");
display.display();
break;
case 3:
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("Ini Contact");
display.display();
break;
}
}
}