Controlador para paneles solares

Hola a todos. Soy un principiante en el Arduino tema, he encontrado en el código de Internet y construyó un controlador para controlar los colectores de fabricación casera. El proyecto funciona sin problemas en el Arduino Mega y Arduino Mini compilado por Arduino1.6.8. He añadido algunas cosas que está mostrando grados centígrados, he cambiado la pantalla de LCD 20x4 e hice los cambios en la visualización de resultados de la posición en la pantalla LCD. Sin embargo, como el progreso del trabajo me encontré con un gran problema: el menú utilizado en el original - este es el menú presentado por un miembro activo de un foro "wojtekizk" Polaco - muy bien descrito, bien actuando sobre 16x2 pantalla. Quisiera pedirle que se ayuda con la escritura de código o modificarlo para que fuera más fácil de leer Pantalla 4x20. Me gustaría menú se visualiza en la base de este esquema:

//WYŚWIETLACZ// <-POLACO ->ESPANIOL PANTALLA

// USTAWIENIA GLOWNE // //AJUSTES GENERALES//
// UST. POMPA KOLEKTOR // //AJU.BOMBA COLECTOR//
// UST. POMPA.CO // //AJU.BOMBA ENTRE DOS TANQES//
// UST. WYSWIETLACZA // //AJU. PANTALLA//

Para seleccionar los elementos correspondientes en el menú para mover los botones de arriba y abajo (flecha ->)

// USTAWIENIA GLOWNE // //AJUSTES GENERALES //
//UST.POMPY KOLECTOR -> // //AJU.BOMBA COLECTOR -> //
//UST.POMPY.CO // //AJU.BOMBA ENTRE DOS TANQES//
//UST.WYSWIETLACZA // //AJU. PANTALLA //

Por ejemplo,

// USTAWIENIA GLOWNE // //AJUSTES GENERALES //
// UST.POMPA KOLEKTOR // //AJU.BOMBA COLECTOR //
// UST.POMPA.CO -> // //AJU.BOMBA ENTRE DOS TANQES ->//
//UST.WYSWIETLACZA // //AJU. PANTALLA //

O

// USTAWIENIA GLOWNE // //AJUSTES GENERALES //
// UST.POMPA KOLEKTOR // //AJU.BOMBA COLECTOR //
// UST.POMPA.CO // //AJU.BOMBA ENTRE DOS TANQES //
//UST.WYSWIETLACZA -> // //AJU. PANTALLA -> //

// Si se pulsa entrar en el conjunto de flecha se mueve al submenú - KOLEKTOR UST.POMPA - Luego viene la elección del menú

//UST.POMPA COLECTOR // //AJU.BOMBA COLECTOR //
//UST.TEMP ON -> // //AJU. TEMP ON -> //
//UST.TEMP OFF // //AJU. TEMP OFF //
//STAN // // ESTADO //

y de manera similar al entrar en el submenú AJU.BOMBA COLECTOR, AJUSTES BOMBA ENTRE DOS TANQES y AJUSTES DE PANTALLA como antes, por lo que siempre está en la primera línea de la información restante acerca de la ubicación del menú en el que nos encontramos.

Pedimos algunos consejos sobre cómo llegar a un acuerdo con estos cambios. Estoy seguro de que traerá un poco de los aficionados al bricolaje otra oportunidad de presentar sus sistemas basados en el Arduino.

a continuación el código

MenuBackend.h (6.42 KB)

definitions.h (2.57 KB)

Solar_Collector_controler_V001.ino (27.7 KB)

Acá esta en inglés porque en polaco, no se puede seguir el código.

De hecho, tal vez un poco mal he explicado, tal vez sería más fácil estar en Inglés
El prototipo de entrar en el menú de configuración se muestra en 16x2 me gustaría obtener el menú más adaptado a la pantalla de 20x4 y así, por ejemplo:

GENERAL SETTINGS
COLLECTOR SETTINGS
TERMOSTAT SETTINGS
LCD SETTINGS

porque en este momento la pantalla 16x2 encaja sólo las dos primeras líneas de menú

GENERAL SETTINGS
COLLECTOR SETTINGS

Y estoy interesado en un sistema de este tipo:

1 línea - GENERAL SETTINGS
2 línea - COLLECTOR SETTINGS
3 linea - THERMOSTAT SETTINGS
4 linea - LCD SETTINGS

A esto se suma un sistema de selección que creo que es más intuitivo:

GENERAL SETTINGS <- (Simbolo de flecha)
COLLECTOR SETTINGS
THERMOSTAT SETTINGS
LCD SETTINGS

símbolo de flecha que se mueve alrededor de los botones del menú de teclas de arriba y abajo aprobados (por ejemplo, ENTER) y volver a la configuración anterior (por ejemplo, ESCAPE)

Al pulsar el botón (por ejemplo, ENTER) para entrar en un submenú

COLLECTOR SETTINGS
DIFFERENCE ON
DIFFERENCE OFF
MANUAL PUMP

Tal vez ahora será más comprensible. Se necesita crear en polaco. Si voy a tener un menú que describe lo que puedo cambiarlo a cualquier idioma.

Bueno empieza por el punto 1.
cambia lcd.begin(16,2) por lcd.begin(20,4) y muestra que pasa.