Go Down

Topic: Meu primeiro menu em arduino (Read 2428 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy