#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define RESET_PIN -1
const int btn_putih = 6;
const int btn_hitam = 7;
const int btnOpen = 5;
const int btnClose = 4;
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, RESET_PIN);
void setup() {
Serial.begin(115200);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("SSD1306 allocation failed");
for (;;);
}
pinMode(btn_putih, INPUT_PULLUP);
pinMode(btn_hitam, INPUT_PULLUP);
pinMode(btnClose, INPUT_PULLUP);
pinMode(btnOpen, INPUT_PULLUP); // Add this line to set the btnOpen pin mode
mainMenu();
}
void loop() {
// Removed the loop content since mainMenu contains its own loop
}
void mainMenu() {
display.clearDisplay();
int cursor = 0;
while (1) {
byte READ_FIRST_BUTTON = digitalRead(btn_putih);
if (READ_FIRST_BUTTON == 0) {
cursor++;
delay(500);
}
byte READ_SECOND_BUTTON = digitalRead(btn_hitam);
if (READ_SECOND_BUTTON == 0) {
cursor--;
delay(500);
}
if(cursor == 0) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("> Setting ");
display.println(" Calculator ");
display.println(" Contact ");
display.display();
byte READ_THIRD_BUTTON = digitalRead(btnOpen);
if (READ_THIRD_BUTTON == 0) {
menuSettings();
}
}
if(cursor == 1) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(" Setting ");
display.println("> Calculator ");
display.println(" Contact ");
display.display();
byte READ_THIRD_BUTTON = digitalRead(btnOpen);
if (READ_THIRD_BUTTON == 0) {
menuKalkulator();
}
}
if(cursor == 2) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(" Setting ");
display.println(" Calculator ");
display.println("> Contact ");
display.display();
byte READ_THIRD_BUTTON = digitalRead(btnOpen);
if (READ_THIRD_BUTTON == 0) {
menuContact();
}
}
}
}
void menuKalkulator() {
while(1) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("Ini adalah kalkulator");
display.println("> Back");
display.display();
byte READ_FOUR_BUTTON = digitalRead(btnClose);
Serial.println(READ_FOUR_BUTTON);
if (READ_FOUR_BUTTON == 0) {
mainMenu();
}
}
}
void menuContact() {
while(1) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("Ini adalah Contact");
display.println("> Back");
display.display();
byte READ_FOUR_BUTTON = digitalRead(btnClose);
Serial.println(READ_FOUR_BUTTON);
if (READ_FOUR_BUTTON == 0) {
mainMenu();
}
}
}
void menuSettings() {
while(1) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("Ini adalah Settings");
display.println("> Back");
display.display();
byte READ_FOUR_BUTTON = digitalRead(btnClose);
Serial.println(READ_FOUR_BUTTON);
if (READ_FOUR_BUTTON == 0) {
mainMenu();
}
}
}