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

Ir para baixo
gabriel hoepers
gabriel hoepers
Mensagens : 117
Data de inscrição : 02/07/2022
Idade : 12
Escola : lindaura

exercicio 3.12 Empty exercicio 3.12

Ter Abr 23, 2024 10:47 am
/*
* CURSO DE ROBOTICA 2019
*
* Exercicio: 3.12
* Tema: Caractere no Display
* Atividade: Gerar alguns caracteres especialis e escrever no display
* 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, os sensores serão ligados em pinos analógicos
* Comandos: LiquidCrystal(12,13,4,5,6,7); createChar(); lcd.write();
* 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: O caracere especial é desenhado a partir de um vetor com dados binarios, onde os 5 primriros bits correspondem aos pixem da linha do caractere do display
* Dica5: Como ainda não trabalhamos vetores, para declarar o vetor basta copiar o codigo abaixo:
byte customChar[] = { //o nome do vetor nesse caso customChar pode ser trocado conforme sua vontade
B00000, //o bit que for colocado em 1 vai acender no display
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B00000};
* Dica6: O comando lcd.createChar(0, customChar); // Cria o caractere na do vetor na posição 0 , existem 8 posições de caractere customizado. do 0 a 7
* Dica7: Para escrever no display usa a função lcd.write(0); // No caso escreve no display o caractere da posição 0
* Dica8: Resumindo: 1 - Declara um vetor com o desenho; 2 - Coloca o vetor numa das 8 posições de caractere; 3 - Escreve a posição no display
* Dica9: Nesse site tem uma ferramenta para gerar o codigo do display https://maxpromer.github.io/LCD-Character-Creator/
*/

//DEFINICOES INICIAIS
#include //carrega a biblioteca

//DECLARAcAO DE VARIAVEIS GLOBAIS
LiquidCrystal lcd(12,13,4,5,6,7); //define as ligaçoes no display
byte smile[] = { //primeiro vetor com smile
B00000,
B00000,
B01010,
B00000,
B00000,
B10001,
B01110,
B00000
};
byte retangulo[] = { //segundo vetor com smile
B11111,
B10001,
B10001,
B10001,
B10001,
B10001,
B10001,
B11111
};
byte logo[] = { //terceiro vetor com smile
B11100,
B10000,
B00000,
B11100,
B10100,
B11000,
B10100
};
byte anima1[] = { // quarto vetor com smile
B00000,
B00000,
B00001,
B00010,
B00100,
B01000,
B10000,
B00000
};
byte anima2[] = { // quinto vetor com smile
B00000,
B00000,
B00000,
B00000,
B11111,
B00000,
B00000,
B00000
};
byte anima3[] = { // sexto vetor com smile
B00000,
B00000,
B10000,
B01000,
B00100,
B00010,
B00001,
B00000
};
byte anima4[] = { // setimo vetor com smile
B00000,
B00000,
B00100,
B00100,
B00100,
B00100,
B00100,
B00000
};

//INICIALIZAÇÃO DO HARDWARE
void setup() {
lcd.begin(16,2); //inicializa o disolay na coluna 16 linha 2
lcd.createChar(0, smile); //configura o smile
lcd.createChar(1, retangulo); //configura o retangulo
lcd.createChar(2, logo); //configura o logo
lcd.createChar(3, anima1); //configura o anima1
lcd.createChar(4, anima2); //configura o anima2
lcd.createChar(5, anima3); //configura o anima3
lcd.createChar(6, anima4); //configura o anima4
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
lcd.setCursor(0, 0); //volta tudo denovo
lcd.createChar(0, smile); // coloca o caracter na coluna 0
lcd.write(byte(0)); // coloca o smile no display
delay(100); // uma pausa
lcd.clear(); // Limpa o display
lcd.setCursor(0, 0); //volta tudo denovo
lcd.createChar(1, retangulo); // coloca o caracter na coluna 1
lcd.write(byte(1)); // coloca o retangulo no display
delay(100); // uma pausa
lcd.clear(); // limpa o display
lcd.setCursor(0, 0); //volta tudo denovo
lcd.createChar(2, logo); // coloca o caracter na coluna 2
lcd.write(byte(2)); // coloca o logo no display
delay(1000); // pausa de tempo de 1000 milissegundos
lcd.clear(); // Limpa o display
lcd.setCursor(0, 0); //volta tudo denovo
lcd.createChar(3, anima1); // coloca o caracter na coluna 1
lcd.write(byte(3)); //coloca o anima1 no display
delay(200); // Aguarda 200 milissegundos
lcd.clear(); // Limpa o display
lcd.setCursor(0, 0); //volta tudo denovo
lcd.createChar(4, anima2); // coloca o caracter na coluna 4
lcd.write(byte(4)); // coloca o anima2 no display
delay(200); // uma pausa
}

Monica Moreno
Monica Moreno
Mensagens : 685
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas

exercicio 3.12 Empty Re: exercicio 3.12

Qua Abr 24, 2024 3:33 pm
Boa Tarde Gabriel
Tudo Bem?

Nota 10.0
Parabens
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos