Skip to content

Commit 7bd7a35

Browse files
Actualizar README.md
1 parent 5176773 commit 7bd7a35

File tree

1 file changed

+51
-16
lines changed

1 file changed

+51
-16
lines changed

README.md

Lines changed: 51 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,36 +23,71 @@ Ideal para proyectos que requieren interfaces de usuario compactas y fáciles de
2323
```cpp
2424
#include <Wire.h>
2525
#include <LiquidCrystal_I2C.h>
26-
#include <Encoder.h>
27-
#include <SimpleMenu.h>
26+
#include "SimpleMenu.h"
2827

28+
// Inicializar LCD I2C (0x27, 20x4)
2929
LiquidCrystal_I2C lcd(0x27, 20, 4);
30-
Encoder encoder(4, 5);
31-
MenuSystem menu(lcd, 6);
3230

31+
// Funciones para las opciones del menú
3332
void accion1() {
3433
lcd.clear();
35-
lcd.print("Accion 1");
34+
lcd.print("Accion 1 ejecutada");
3635
}
3736

37+
void accion2() {
38+
lcd.clear();
39+
lcd.print("Accion 2 ejecutada");
40+
}
41+
42+
void submenuOpcion1() {
43+
lcd.clear();
44+
lcd.print("Submenu opcion 1");
45+
}
46+
47+
void submenuOpcion2() {
48+
lcd.clear();
49+
lcd.print("Submenu opcion 2");
50+
}
51+
52+
void salir() {
53+
lcd.clear();
54+
lcd.print("Saliendo...");
55+
}
56+
57+
// Definición del menú
3858
std::vector<MenuItem> menuRoot = {
39-
{ "Opcion 1", accion1, {} },
40-
{ "Salir", nullptr, {} }
59+
{ "Accion 1", accion1, {} },
60+
{ "Accion 2", accion2, {} },
61+
{ "Submenu", nullptr, {
62+
{ "Subopcion 1", submenuOpcion1, {} },
63+
{ "Subopcion 2", submenuOpcion2, {} },
64+
{ "Volver", nullptr, {} }
65+
}
66+
},
67+
{ "Salir", salir, {} }
4168
};
4269

70+
// Pines botones: UP, DOWN, SELECT
71+
SimpleMenu menu(lcd, 4, 5, 6);
72+
73+
// Estado general mostrado cuando no se está en menú
74+
void mostrarEstadoGeneral() {
75+
lcd.clear();
76+
lcd.print("Sistema Operativo");
77+
lcd.setCursor(0,1);
78+
lcd.print("Menu listo...");
79+
lcd.setCursor(0,2);
80+
lcd.print("Use botones");
81+
lcd.setCursor(0,3);
82+
lcd.print("para navegar");
83+
}
84+
4385
void setup() {
44-
pinMode(6, INPUT_PULLUP);
4586
lcd.init();
4687
lcd.backlight();
47-
48-
menu.setRootMenu(&menuRoot);
49-
menu.resetPosition();
50-
menu.setOldPosition(0);
51-
menu.showMenu();
88+
menu.begin(&menuRoot, mostrarEstadoGeneral);
5289
}
5390

5491
void loop() {
55-
long pos = encoder.read() / 5;
56-
bool btn = (digitalRead(6) == LOW);
57-
menu.update(pos, btn);
92+
menu.update();
5893
}

0 commit comments

Comments
 (0)