#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Adafruit_SSD1306 display(128, 64, &Wire, -1);

int seleccion = 1;
int num_parametros = 3;

void setup() {
  Serial.begin(9600);

  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println("No se pudo detectar la pantalla OLED. Conecte la pantalla y reinicie el programa.");
    while (1);
  }

  mostrar_menu();
}

void loop() {
  if (Serial.available()) {
    int opcion = Serial.read() - '0';

    switch (opcion) {
      case 1:
      seleccion = opcion;
      mostrar_parametro();
      case 2:
      case 3:
        seleccion = opcion;
        mostrar_parametro();
        break;
      default:
        mostrar_menu();
        break;
    }
  }
}

void mostrar_menu() {
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.println("Menu:"); Serial.println("Menu");
  display.setCursor(0,10);
  display.println("1. Parametro 1");
  display.setCursor(0,20);
  display.println("2. Parametro 2");
  display.setCursor(0,30);
  display.println("3. Parametro 3");
  display.display();
}

void mostrar_parametro() {
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.print("Parametro ");
  display.print(seleccion);
  display.print(": ");

  // Aquí iría el código para leer el valor del parámetro seleccionado
  // y mostrarlo en la pantalla

  display.display();
}