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

Ir para baixo
Gigio
Gigio
Mensagens : 68
Data de inscrição : 09/03/2022
Idade : 17
Escola : Colegio Estadual Professor Lindaura Ribeiro Lucas

Exercício 3.8 Empty Exercício 3.8

Qua Ago 31, 2022 3:47 pm
/*
CURSO DE ROBOTICA 2019

Exercicio: 3.8
Tema: Desloca texto no terminal plus
Atividade: Com o texto no display, configurar duas teclas para deslocar o texto para esquerda e direita, porém se manter pressionada a tecla o texto desloca a cada 300ms
Descrição: Os pinos do display são RS-EN-D4-D5-D6-D7 e serão ligados nos pinos digitais do arduino
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.scrollDisplayLeft(); lcd.scrollDisplayRight(); do while();
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 usando as funções lcd.scrollDisplayLeft(); lcd.scrollDisplayRight();
Dica5: Usar uma variavel tipo int para armazenar o temporizador para deslocamento enquanto a tecla pressionada
Dica6: O tempo de pressionar a tecla antes de iniciar o deslocamento, vamos chamar de tempo de detecção
Dica7: O tempo do deslocamento é o intervalo entre cada salto que o texto vai dar no display
Dica8: O tempo de detecção deve ser maior que o tempo de deslocamento
*/

//DEFINICOES INICIAIS
#include //Inclui a biblioteca do LCD,
#define Tecla1 8 //Define a Tecla 1 como pino 8,
#define Tecla2 9 //Define a Tecla 2 como pino 9,

//DECLARAcAO DE VARIAVEIS GLOBAIS
LiquidCrystal LCD(2, 3, 4, 5, 6, 7); //Define o LCD
bool Teclado1, Teclado2; //Variáveis para controlar as Teclas,
int Temporizador; //Variável int para o Temporizador,

//INICIALIZAÇÃO DO HARDWARE
void setup() {
LCD.begin(16,2); //Inicia o LCD,
pinMode(Tecla1, INPUT_PULLUP); //Define a Tecla 1 como INPUT_PULLUP,
pinMode(Tecla2, INPUT_PULLUP); //Define a Tecla 2 como INPUT_PULLUP,
LCD.clear(); //Limpa o LCD,
LCD.print("Testando"); //Manda ao LCD "Testando",

}

//FUNÇÕES COMPLEMENTARES
void Teclas() { //Função para a leitura das teclas:
Teclado1 = !digitalRead(Tecla1); //Teclado é equivalente a leitura inversa da Tecla 1,
Teclado2 = !digitalRead(Tecla2); //Teclado é equivalente a leitura inversa da Tecla 2,
}

//PROGRAMA PRINCIPAL
void loop() {
Teclas(); //Invoca a função Teclas(),
if (Teclado1) { //Se a Tecla 1 for pressionada então:
Temporizador = 600; //O valor da variável Temporizador será 600,
do { //Fazer:
Teclas(); //Invoca a função Teclas(),
LCD.scrollDisplayLeft(); //Roda a tela do LCD à esquerda,
delay(Temporizador); //Pausa com o valor do Temporizador em milissegundos,
Temporizador = 300; //O valor da variável Temporizador será 300,
}
while (Teclado1); //Enquanto o Teclado estiver pressionado,
}
if (Teclado2) { //Se a Tecla 2 for pressionada então:
Temporizador = 600; //O valor da variável Temporizador será 600,
do { //Fazer:
Teclas(); //Invoca a função Teclas(),
LCD.scrollDisplayRight(); //Roda a tela do LCD à direita,
delay(Temporizador); //Pausa com o valor do Temporizador em milissegundos,
Temporizador = 300; //O valor da variável Temporizador será 300,
}
while (Teclado2); //Enquanto a Tecla 2 estiver pressionada.
}
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5788
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 3.8 Empty Re: Exercício 3.8

Qui Set 01, 2022 10:19 pm
Muito bom Giovanni, funcionou corretamente. Nota 10.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos