Para estar empezando te has metido en un proyecto algo complejo, espero que no te desanimes.
Yo tengo que hacer uno para un aparato y aun no me he metido de lleno en ello, pero documentándome encontré un ejemplo muy esclarecedor ¡OJO! NO ES CODIGO es una especie de algoritmo escrito en inglés.
enum States
{
State_MainMenu,
State_SubMenu1,
State_SubMenu2
};int state = State_MainMenu;
void loop()
{
switch (state)
{
case State_MainMenu:
Mainmenu();
break;case State_SubMenu1:
submenu1();
break;case State_SubMenu2:
submenu2();
break;
}
}void Mainmenu()
{
read input
if (user selected option 1?)
state = State_SubMenu1;
else if (user selected option 2)
state = State_SubMenu2;draw main menu
}void submenu1()
{
read input
if (user selected back option?)
state = State_MainMenu;
else if (something else?)
state = some other state;draw submenu1
}etc.
Como verás es prácticamente definir unos estados que cambiarán según unas lecturas, dentro del loop() una estructura switch se encarga de que el menú haga una cosa u otra.