Control de emisoras de radioaficionado con Arduino [3]: Flujo de Menús

Para la activación y desactivación de todas las interconexiones, además de la configuración de los distintos tiempos. Se usara un menú en un LCD controlado por un encoder, la idea es que mediante tres botones del encoder: izquierda, derecha y centro, se pueda controlar todas las funciones.

Desde la pantalla principal se mostrara los dispositivos activos del Grupo de relés A y B (ó 1 y 2), en caso de que la pantalla fuera de 4 líneas de texto se podría añadir más información. Si estando en esa pantalla se pulsa el botón central del encoder, se accederá al menú de configuración, desde ahí se podrá navegar entre las distintas pantallas pulsando izquierda o derecha, y para salir habrá que ir a la pantalla «Salir» y pulsar el botón central.

Para el ajuste de las configuraciones habrá que desplazarse a la pantalla que nos interese y pulsar el botón central para activar la edición de la configuración, después con los botones izquierda y derecha permitirá cambiar el valor por uno de los disponibles y con el botón central se confirmara el cambio. Esto sucederá en la 1ª, 2ª, 4ª y 5ª pantalla, en el caso de la 3ª pantalla, la llamada «Relé Msg» es algo más compleja ya que cuenta con más opciones de configuración, por ello requerirá seleccionar la opción que queramos editar, pulsar en ella el botón central y seleccionar el nuevo valor con los botones izquierda y derecha, para aplicar el nuevo valor se ha de pulsar el botón central, y para salir se deberá de pulsar en «Cerrar»

Menus

En general queda un menú bastante sencillo de manejar y con todo lo necesario que hay que ajustar. Por otro lado, para facilitar la programación mientras se esté dentro del menú dejara de funcionar el resto de tareas (mensajes temporizados, pedal temporizado, etc.), quizás se añada como extra el cierre automático del menú pasado un tiempo.

Actualización: 2015/02/01

Después de pensarlo mas detenidamente, para facilitar la programación del código, y para intentar que sea útil para mas gente, he decidido que el menú sea lineal, es decir que todas las opciones posibles estén en un único menú, para cambiar entre las opciones se hará desde el encoder que permitirá mover el cursor arriba y abajo, según se desplazca aparecerán y desaparecerán las opciones que no entren por pantalla.

Una vez escogida la opción de la cual queramos cambiar su valor se usara el botón central del encoder para entrar y salir del submenú, dentro del submenú se cambiaran los valores posibles con el encoder desplazándolo a la izquierda y derecha.

Menus2

Este submenú sera único para todas las opciones, es decir que siempre sera el mismo. Para que esto sea posible se recibirán N parámetros que indiquen qué se ha de pintar en ese submenú y el rango de valores posibles para esa opción. En este caso ese rango sera siempre para números enteros que servirá tanto para booleanos tanto como para enteros, en caso de decimales, texto, etc. hará falta otros submenús.

Escriba aquí su comentario