Pages: [1]   Go Down
Author Topic: Meu primeiro menu em arduino  (Read 2068 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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!
Logged

Portugal
Offline Offline
Edison Member
*
Karma: 37
Posts: 1545
Pretending you know everything then you will learn nothing.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

« Last Edit: January 25, 2013, 04:58:01 pm by HugoPT » Logged

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


Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Valeu, hugo! Vou tentar aqui! Obrigado!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


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
Logged

Brazil
Offline Offline
Sr. Member
****
Karma: 0
Posts: 381
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

 smiley-lol
Logged

????????????????????

Pages: [1]   Go Up
Jump to: