Hola, Buenos Días.
Emm. En muchas ocasiones las “librerías” forman parte (en mi opinión muy personal) del facilismo por el cual mi cerebro deja de preguntarse ¿Cómo consigo eso que necesito?
Es cuando salgo a buscar esa librería y… Ahí está; me ha salvado una vez más.
¿Pero si en lugar de adaptarme a ella; hasta encontrar otra mejor que resuelva mi problema, hago el intento de crear una rutina desde cero?Aquí les presento el MENU en CASCADA que les permitirá hacerlo. Es de muy simple y básica programación siendo muy fácil para adaptarlo a cualquier display y MicroControlador; además, en muy pocas líneas, comparándolo con otros que ví y que requieren de una librería para tal fin.
// Menu Opciones con ARRAY
#include <U8g2lib.h>
#include <Keyboard.h>
#include <Mouse.h>
U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0);
String navegax[3]={"Firefox","Google","Opera"};
String siteweb[4]={"Youtube","Taringa","Facebook","Instagram"};
String persona[3]={"Nom.Usuario","Clave","Nueva Clave"};
int columna=1;
int x=0;
String cadenax="";
void setup() {
Serial.begin(9600);
u8g2.begin();
Keyboard.begin();
pinMode(A0,INPUT_PULLUP); // Crs ARRIBA
pinMode(A1,INPUT_PULLUP); // Tcl C
pinMode(A2,INPUT_PULLUP); // Tcl B
pinMode(A3,INPUT_PULLUP); // Tcl A
pinMode(A6,INPUT_PULLUP); // Crs ABAJO
pinMode(A7,INPUT_PULLUP); // Crs IZQUIERDA
pinMode(A8,INPUT_PULLUP); // Tcl OK
pinMode(A9,INPUT_PULLUP); // Tcl DERECHA
u8g2.clearBuffer(); u8g2.setFont(u8g2_font_logisoso16_tr);
u8g2.drawStr(8,29,navegax[0].c_str()); u8g2.sendBuffer();
}
void loop() {
if (analogRead(A3)<500) {mostrando(navegax[0]); columna=1; x=0;} // Salir
if (analogRead(A2)<500) {mostrando("2da B");}
if (analogRead(A1)<500) {mostrando("3ra C");}
if (analogRead(A0)<500) {x--; if (x>=0){mostrando(navegax[x]);}else{x=0;}}
if (analogRead(A6)<500) {x++; if (x<=2){mostrando(navegax[x]);}else{x=2;}}
if (analogRead(A8)<500) {mostrando(siteweb[0]); columna=2; x=0;}
while (columna==2){
if (analogRead(A0)<500) {x--; if (x>=0){mostrando(siteweb[x]);}else{x=0;}}
if (analogRead(A6)<500) {x++; if (x<=3){mostrando(siteweb[x]);}else{x=3;}}
if (analogRead(A8)<500) {mostrando(persona[0]); columna=3; x=0;}
if (analogRead(A3)<500) {mostrando(navegax[0]); columna=1; x=0;} // Salir
while (columna==3){
if (analogRead(A0)<500) {x--; if (x>=0){mostrando(persona[x]);}else{x=0;}}
if (analogRead(A6)<500) {x++; if (x<=2){mostrando(persona[x]);}else{x=2;}}
if (analogRead(A8)<500) {columna=2; x=0;}
if (analogRead(A3)<500) {mostrando(siteweb[0]); columna=2; x=0;} // Salir
}
}
if (analogRead(A7)<500) {mostrando("IZQUIERDA");}
if (analogRead(A9)<500) {mostrando("DERECHA");}
}
void mostrando(String cadenax){
u8g2.clearBuffer();
u8g2.drawStr(8,29,cadenax.c_str());
u8g2.sendBuffer(); delay(250);
return;}
https://youtu.be/Ymxj3RRUg2EEste es mi usual modo de agradecerles la mano que siempre me dán para sacarme del agua. Un Cordial saludo