Go Down

Topic: Meu primeiro menu em arduino (Read 2351 times) previous topic - next topic

Bom dia a todos! Galera sou novo com C e tenho sentindo dificuldades em fazer um menu para o arduino! No meu projeto, vao existir 3 botoes: um pra cima, um pra baixo e outro pra selecionar a opcao!   Alguem teria um exemplo de como fazer o menu ou dica de algum livro?  Agradeco a ajuda de todos!

HugoPT

#1
Jan 25, 2013, 10:47 pm Last Edit: Jan 25, 2013, 10:58 pm by HugoPT Reason: 1
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 :smiley-mr-green:
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

Quote


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

Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

Valeu, hugo! Vou tentar aqui! Obrigado!



Claro que tens de prever o Debouncing dos botoes.



E eu pensando que ia ser mais facil! kkkk Vc nao teria um exemplo ou nome de um livro que explicasse isso de uma maneira mais leiga?  :smiley-mr-green:

Kotch


E eu pensando que ia ser mais facil! kkkk Vc nao teria um exemplo ou nome de um livro que explicasse isso de uma maneira mais leiga?  :smiley-mr-green:



Veja um exemplo criado pelo Marcelo Boeira!

http://arduino.cc/forum/index.php/topic,78203.0.html

XD
????????????????????

Go Up