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

Ir para baixo
Diogo Penha Marques
Diogo Penha Marques
Mensagens : 107
Data de inscrição : 29/02/2024
Idade : 14
Escola : Colégio Estadual da Colônia Murici

Diogo Saraiva Exercício 3.16 Empty Diogo Saraiva Exercício 3.16

Sáb Ago 03, 2024 11:03 am
/*
* CURSO DE ROBOTICA 2019
*
* Exercicio: 3.16
* Tema: Identificação dos numeros ascii
* Atividade: Com base na tabela ascii enviar para o display um numero de 0 a 9 enviado pelo terminal
* Descrição: Receber o caractere pela serial, converter o numero recebido como caractere em seu valor numerico. Exemplo recebe o ASCII - 49 e converte para valor 1
* Hardware: Display ligado RS=>pino D12; EN=>pino D13; D4=>pino D4; D5=>pino D5; D6=>pino D6; D7=>pino D7, o terminal usa a porta USB do arduino
* Comandos: Serial.begin(9600); lcd.print(); Serial.available(); Serial.print();
* Dica1: A configuração da serial usa velocidade padrão de 9600, poderia ser alterado caso necessite maior performance
* Dica2: Na interface do arduino abrir o terminal em ferramentas - Monitor serial ou ctr+shift+M
* Dica3: Enviar para o terminal \n para nova linha ou \r para retorno de carro
* Dica4: na tabela ASCII os numeros são assim: 0=48;1=49;2=50;3=51;4=52;5=53;6=54;7=55;8=56;9=57
* Dica5: Uma forma simples de chegar ao valor numerico é subtrair o valor recebido de 48, o resultado é igual ao numero recebido
* Dica6: Enviar o valor para o terminal e o display
* Dica7: Checar se o valor enviado está correto e enviar mensagem de erro se os valores não forem numeros
*/

//DEFINICOES INICIAIS
#include //Carrega a biblioteca com as funções do display
#define ledVerm 9 //led vermelho ligado no pino 9

//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 caractere; //Variavel usda para guardar a leitura da serial
byte numero; //Variavel usada para guardar o numero recuperado

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //Inicializa a porta serial com velocidade de 9600
lcd.begin(16, 2); //Inicializa o display configurado como 16 colunas e 2 linhas
Serial.println("digite uma letra ou numero "); //Mensagem inicial no terminal
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
if(Serial.available())//Se o numero no Monitor for maior que 0:
{
caractere = Serial.read();//Caracter igual a leitura do monitor em decimal
numero = caractere - 48;
lcd.clear();//Limpa o display
lcd.print("ASCII: ");//Mostra no display "ASCII: "
lcd.print(caractere);//Mostra no display o valor de caracter em forma de ASCII
lcd.setCursor(0,1);// Coloca o cursor na primeira coluna segunda linha
lcd.print("Decimal: "); //Mostra no display ", Decimal: "
lcd.print(numero);//Mostra no display o valor de numero
Serial.print("ASCII: ");//Mostra no monitor "ASCII: "
Serial.print(caractere);//Mostra no monitor o valor de caracter em ASCII
Serial.print(", Decimal: "); //Mostra no monitor ", Decimal: "
Serial.println(numero);//Mostra no monitor o valor de numero
}
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5798
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Diogo Saraiva Exercício 3.16 Empty Re: Diogo Saraiva Exercício 3.16

Sáb Set 14, 2024 1:35 pm
muito bom, nota 10.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos