Autor Tema: APORTE - Menú de Opciones  (Leído 1493 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado humberto 02

  • PIC16
  • ***
  • Mensajes: 190
APORTE - Menú de Opciones
« en: 05 de Febrero de 2022, 09:42:07 »
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.

Código: [Seleccionar]
// 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/Ymxj3RRUg2E

Este es mi usual modo de agradecerles la mano que siempre me dán para sacarme del agua. Un Cordial saludo