Go Down

Topic: Como actualizar una variable modificada dentro de un "switch / case" (Read 145 times) previous topic - next topic

fralot

Buenas noches, aqui es la 1 de la madrugada y yo sigo pegado al pc leyendo codigo y codigo para ver si encuentro solucion a mi problema  :smiley-roll-sweat: pero veo que no le encuentro respuesta
Bueno, quiero hacer un menu para arduino, para el diseño de dicho menu he copiado el codigo de internet tal cual, lo he probado, he intentado comprenderlo y he empezado a toquetearlo para ver si lo podia acomodar a lo que quiero. subo el codigo original a parte que es muy largo

tambien comentar que me daba fallo cuando intenta crear el caracter personalizado, lo solucione cambiando la variable de
Code: [Select]
const byte bARROW[]   = {                               // Bits icono flecha
    B00000, B00100, B00110, B11111,
    B00110, B00100, B00000, B00000
};

 por solo byte

Mas o menos he entendido como funciona el codigo y que hay que tocar para cambiar las opciones, y en una de las pruebas, use la misma entrada donde puedes elegir en que punto de la pantalla se va a dibujar la temperatura para intentar hacer el efecto fade de un led pero controlado, no se si me explico, que segun el numero que eligiese en ese submenu, el led se encendiese mas o menos.
cree estas dos lineas:
Code: [Select]
int brillo = brillomax * 17;
analogWrite(led, brillo);

 
(limité el numero que se podia elegir en el submenu a 15 usando la variable "brillomax" y en esta operacion lo multiplicaba por 17, 15*17=255)
el caso que esto solo lo hacia cuando usaba la entrada "guardar y salir" del menu,osea que hacia exactamente lo que buscaba, pero mi idea era que se actualizase a tiempo real esa variable, que segun fuese aumentando o disminuyendo, el led respondiese sin tener que darle a "guardar y salir".
hay alguna forma de hacer esto usando este menu? o tendria que buscar otra forma de hacerlo
(llevo poco con arduino, para mi esto es nuevo y la verdad hay cosillas que las pillo facil solo mirando el codigo, pero en este caso por ejemplo hay varias cosas que me es imposible averiguar su funcionamiento, y ademas me cuesta encontrar informacion sobre ello, supongo que es porque no se buscar bien  ;D )
Pues nada, lo siento de nuevo por esta parrafada, pero me interesa bastante saber como funciona, o si creeis que hay otro tipo de rutina de menu que sea mas "facil" me lo haceis saber Gracias!!^^

StringCGE

Solo busqué algun while dentro del programa.

Cuando entras a un menú o a un submenú, estos esperan hasta que hagas algo, por lo tanto el resto del programa de arduino no está funcionando y el led no cambiará hasta que salgas del menú o submenú con la opción guardar y salir.

Escribiré codigo ejemplo para ilustrar la opción por la que optaría para cambiar el brillo de un led sin tomar tantas consideraciones como el valor máximo o mínimo que debe tener la variable.


Code: [Select]


//SUbmenu ejemplo

void SubMenu (){
    while(true){
    .   analogWrite(LED, BrilloLed);//Esto es lo que controla el brillo y código similar debe estar por fuera
                                                 //del menú del programa que tienes hay.
    .   switch (Var){
    .   .   case a:
    .   .   BrilloLed++;
    .   .   break;
    .   .   
    .   .   
    .   .   case b:
    .   .   BrilloLed--;
    .   .   break;
    .   .   
    .   .   case c:
    .   .   Return;//Con esto sales del método SubMenu
    .   .   break;
    .   .
    .   }
    .
    }

}


Ahora a buscar algo similar en tu programa con este ejemplo.

Espero y sirva la ayuda.


Go Up