simpleMenu es una biblioteca para Arduino diseñada para crear y gestionar menús de manera sencilla en proyectos que utilizan pantallas OLED y requieren navegación por múltiples opciones de configuración y control. Ideal para proyectos como instrumentos musicales electrónicos, robots y dispositivos DIY.
- Fácil Integración: Diseñada para ser ligera y fácil de incorporar en cualquier proyecto.
- Navegación Intuitiva: Proporciona funciones para navegar hacia arriba, abajo y seleccionar opciones en el menú.
- Personalización: Permite cambiar alineación y temporización de apagado automático.
- Soporte para Submenús: Incluye funcionalidades para gestionar submenús y organizar configuraciones avanzadas.
Probado en tarjetas basadas en Esp32. Pantalla OLED compatible con U8g2lib o Adafruit_GFX. Controladores de entrada (por ejemplo, botones o sensores capacitivos).
- Arduino IDE : Recommended 1.8.10 o superior
- Descargue el archivo ZIP de la biblioteca desde GitHub.
- En el IDE de Arduino, vaya a Sketch > Incluir biblioteca > Agregar biblioteca .ZIP...
- Seleccione el archivo ZIP descargado para instalar la biblioteca.
O puedes extraer el archivo ZIP del paso 1 en el directorio de bibliotecas de Arduino.
Aquí tienes un ejemplo básico de cómo usar simpleMenu:
#define LIBRARY 0 //establecer en 0 para usar U8g2lib y 1 para usar Adafruit_GFX
#include "Arduino.h"
#include <sm.h>
#include <Wire.h>
// Configuración de pantalla OLED y menú
U8G2_SSD1306_128X64_NONAME_F_HW_I2C display(U8G2_R0, U8X8_PIN_NONE);
sm Menu(display);
txtMenu Main[]= {
"Menu",
"opc 1",
"opc 2",
"opc 3",
};
void setup() {
display.begin(); // Inicializa la pantalla
menu.SetAutoOff(30); // Apagado automático del menú en 30 segundos
menu.Root(Main, "Main"); // Define el menú principal
}
void loop() {
menu.Show(); // Muestra el menú
menu.Up(); // Navega hacia arriba
delay(1000);
menu.Down(); // Navega hacia abajo
delay(1000);
menu.Down(); // Navega hacia abajo
delay(1000);
}
- Assign(T (&opt), tipo id, bool title=true): asigna las opciones al menu opt:opciones , id: un identificador para el menu puede ser numerico o texto, title=true si la primera opcion es titulo
- Root(T (&opt), tipo id, bool title=true): se puede establecer un menu raiz, el cual solo se define una vez
- Show(): Muestra el menú actual en la pantalla.
- SetAutoOff(uint8_t timeout): metodo que establece un tiempo de apagado para la pantalla en segundos
- Pause(bool opt): pausa la actualizacion del menu en pantalla, util para imprimir en pantalla estando en un submenu
- Up(): desplaza una opcion arriba en el menu
- Down(): desplaza una opcion abajo en el menu
- fullUp(): desplaza al primer item en el menu
- fullDown(): desplaza al ultimo item en el menu
- Select(uint8_t sel, tipo id): retorna verdadero si se esta seleccionando la opcion actual del menu actual
- Message(String _text,uint8_t align=LEFT,int wait=2000): despliega un mensaje en pantalla, recibe una cadena de caracteres, una lineacion por defecto a la izquierda y un tiempo de espera en pantalla
- GetInterline(): metodo que devuelve el valor de interlinea establecido
Las contribuciones son bienvenidas. Si deseas mejorar simpleMenu, por favor envía un pull request o crea una issue para sugerir cambios.