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!
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
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
Valeu, hugo! Vou tentar aqui! Obrigado!
HugoPT:
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?
edifrancl:
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?
Veja um exemplo criado pelo Marcelo Boeira!
http://arduino.cc/forum/index.php/topic,78203.0.html
XD