Robótica Livre
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Ir para baixo
avatar
Guilherme Kautzmann
Mensagens : 65
Data de inscrição : 27/02/2024
Escola : Juscelino Kustkech

Exercicio 3.13 Empty Exercicio 3.13

Ter Ago 27, 2024 8:28 am
/*
* CURSO DE ROBOTICA 2019
*
* Exercicio: 3.13
* Tema: Menu no display com rolamento
* Atividade: Criar um menu de 5 opções e apresentá-lo no display, o rolamento será comandado por duas teclas up e down
* Descrição: Os pinos do display são RS-EN-D4-D5-D6-D7 e serão ligados nos pinos digitais do arduino assim como as teclas
* Hardware: Ligar da seguinte forma: RS=>pino D12; EN=>pino D13; D4=>pino D4; D5=>pino D5; D6=>pino D6; D7=>pino D7, as teclas serão ligados em pinos digitais
* Comandos: LiquidCrystal(12,13,4,5,6,7); lcd.print();
* Dica1: Será necessário a biblioteca com as funções do LCD, #include
* Dica2: O comando LiquidCrystal(12,13,4,5,6,7); deve ser declarado como variável antes da função setup()
* Dica3: Na função setup() é necessario inicializar o display indicando as colunas e linhas do display lcd.begin(16, 2);
* Dica4: Detectar qual tecla foi pressionada e deslocar o texto no display, usar uma função para apresentação usando switch / case
* Dica5: Na função principal incrementa a variavel menu e na função auxiliar mostra o resultado no display
* Dica6: Usar uma variavel tipo int para armazenar o temporizador para deslocamento enquanto a tecla pressionada
* Dica7: O tempo de pressionar a tecla antes de iniciar o deslocamento, vamos chamar de tempo de detecção
* Dica8: O tempo do deslocamento é o intervalo entre cada salto que o texto vai dar no display
* Dica9: O tempo de detecção deve ser maior que o tempo de deslocamento
*/

//DEFINICOES INICIAIS
#include  //Carrega a biblioteca com as funções do display
#define teclaUp 3 //tecla que desloca display para cima
#define teclaDown 2 //tecla que desloca display para baixo

//DECLARAcAO DE VARIAVEIS GLOBAIS
LiquidCrystal lcd(12,13,4,5,6,7); //Setup conforme as ligações realizadas RS-EN-D4-D5-D6-D7
byte menu = 1; //variavel que guarda a posição do menu que será apresentada
int timer; //variável que guarda o temporizador
int opcao;
//INICIALIZAÇÃO DO HARDWARE
void setup() {
lcd.begin(16, 2); //Inicializa o display configurado como 16 colunas e 2 linhas

pinMode(teclaUp, INPUT_PULLUP); //programa a tecla como entrada pull up
pinMode(teclaDown, INPUT_PULLUP); //programa a tecla como entrada pull up
}

//FUNÇÕES COMPLEMENTARES


void loop{
}
switch(menu){//switch inciado
case(1)://bloco um
lcd.clear();//limpa o display
lcd.setCursor(0,0);//carrega o cursor 0
lcd.print(">1 - Menu1");//texto
lcd.setCursor(0,1);//carrega cursor na linha 1
lcd.print("2 - Menu2");//texto
break;//para o progama
case(2)://bloco dois
lcd.clear();//limpa o display
lcd.setCursor(0,0);//carrega o cursor 0
lcd.print(">2 - Menu2");//texto
lcd.setCursor(0,1);//carrega cursor na linha 1
lcd.print("3 - Menu3");//texto
break;//para o progama
case(3)://bloco tres
lcd.clear();//limpa o display
lcd.setCursor(0,0);//carrega o cursor 0
lcd.print(">3 - Menu3");//texto
lcd.setCursor(0,1);//carrega cursor na linha 1
lcd.print("4 - Menu4");//texto
break;//para o progama
case(4)://bloco quatro
lcd.clear();//limpa o display
lcd.setCursor(0,0);//carrega o cursor 0
lcd.print(">4 - Menu4");//texto
lcd.setCursor(0,1);//carrega cursor na linha 1
lcd.print("5 - Menu5");//texto
break;//para o progama
case(5)://bloco cinco
lcd.clear();//limpa o display
lcd.setCursor(0,0);//carrega o cursor 0
lcd.print(">5 - Menu5");//texto
break;//para o progama
}
////////////////parte dois
if(!digitalRead(teclaUp)){///se teclaup for precionada
opcao ++;//encrementa
if(opcao == 6) opcao = 5;//se opocao for == 6 = 5 executa o while
while(!digitalRead(teclaUp)){//Quando teclaup for precionada
delay(20);//delay
}
}

if(!digitalRead(teclaDown)){ ///se teclaDown for precionada
opcao --;//decrementa
if(opcao == 0) opcao = 1;//se opocao for == 6 = 5 executa o while
while(!digitalRead(teclaDown)){//Quando teclaDown for precionada
delay(20);//delay
}
}
delay(1000);//tempo entre as acoes
}






Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5715
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercicio 3.13 Empty Re: Exercicio 3.13

Ontem à(s) 12:14 am
Oi Guilherme, viu que abriu o loop() e fechou na outra linha? Daí tudo que foi escrito depois ficou no limbo
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos