Meu primeiro menu em arduino

Tens uma lib para menus.
http://playground.arduino.cc/Code/Menu
No entanto pode ser um pouco complexa se o teu caso for simples.Outra alternativa é tu proprio criares uma.Calma nao te assustes pois nao é dificil :grin:
Vais usar um LCD?
A maneira de poderes fazer isso é:
Ativas os pull-ips internos nos 3 pinos onde ligas os botoes e configuras esses pinos como entradas.
Depois crias uma funçao que monitoriza todos os botoes à espera que algum deles fique LOW, algo assim

uint8_t botaoUp =1;
uint8_t botaoOK =2;
uint8_t botaoDown =3;
unsigned char posicaoMenu = 0;

void setup(){
Serial.begin(9600);
pinMode(botaoUp, INPUT_PULLUP);
pinMode(botaoOK, INPUT_PULLUP);
pinMode(botaoDown, INPUT_PULLUP);
}

void loop()
{
menu(devolveBotaoPressionado());

}

char devolveBotaoPressionado()
{
if(botaoUp == LOW)return 'U';//BotaoUP pressiionado
if(botaoOK == LOW)return 'O';//Botao OK pressionado
if(botaoDown == LOW)return 'D'; //Botao Down pressionado
if(botaoUp && botaoOK && botaoDown == HIGH)return 'N';//Nada pressionado
}

void menu(char botaoPressionado)
{
switch (botaoPressionado) {
case 'U':
//faz algo com o botao UP
break;
case 'O':
//faz algo com o botao OK
break;
case 'D':
//faz algo com o botao Down
break;
case 'N':
//Foi devolvido o Null salta fora do Menu
break;
}
}

Claro que tens de prever o Debouncing dos botoes.
Nao implementei no codigo para te dar que pesquisar
Nao testei o codigo por isso bugs sao esperados:)
Tenta retirar a idea, reutiliza, modifica, apaga e volta a escrever da tua maneira, assim irás aprender