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

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

Exercício 4.18 Resolvido Monica Empty Exercício 4.18 Resolvido Monica

Sáb Abr 20, 2024 10:38 am
/*
* CURSO DE ROBOTICA 2021
*
* Exercicio: 4.18
* Tema: Calculo das medias usando Funções
* Atividade: Elaborar um programa utilizando funções para resolver o exercício
* Descrição: Usar um diplay para mostrar os valores recebidos pela serial e calcular as médias
* Hardware: Inicializar a porta serial, LEDS para sinalizar o stus do programa
* Comandos: Serial.begin(9600), lcd.print(), analogRead(), digitalWrite(), if()
* Dica01: Funções são trechos do programa que são executados quando a função é chamada e podem receber dados e sempre retornam algum dado
* Dica02: Vantagem 1: Segmentam o programa tornando-os mais fácil de desenvolver e entender
* Dica03: Vantagem 2: Ajudam a organizar o programa
* Dica04: Vantagem 3: Evitam a repetição de trechos do programa que podem ser executados
* Dica05: Declaração deve ser realizado sempre fora de outras funções ou procedimentos
* Dica06: Para declarar uma função usa-se o nome da função precedido do tipo de dado que vai retornar, podendo ser char, byte, int, long, float, double
* Dica07: Na declaração entre chaves é colocado o tipo de dado e o nome da variável que vai receber o dado para utilizar na função
* Dica08: Ainda na declaração se receber mais de uma variável as demais devem ser separadas por virgula
* Dica09: No final da função é utilizado o comando de retorno e o dado que retornará da função, ex. return(variavel);
* Dica10: A declaração fica no seguinte formato, Ex. int nome{byte var1, float var2}{ 1a.instrução; ... return(variavel); }
* Dica11: declare as funções na área //FUNÇÕES COMPLEMENTARES
* Dica12: As variáveis GLOBAIS podem ser acessadas pelas funções, mas uma boa prática é usar somente variáveis LOCAIS
* Dica13: Variáveis LOCAIS usadas nos procedimentos são liberadas quando o procedimento encerra
* Dica14: Para invocar uma função basta digitar o nome que foi declarado seguido de parenteses com as variáveis e terminando em ponto e virgula Ex. nome(var1, var2);
* Dica15: Resolver o exercício criando funções para receber os dados da serial, outro para escrita no display, outro para calculo da media.
* Dica16: Usar um vetor para guardar os 10 valores e realizar o calculo da média dos valores
*/

//DEFINICOES INICIAIS
#include


//DECLARAcAO DE VARIAVEIS GLOBAIS
LiquidCrystal lcd(12,11,10,9,8,7);//
int num ;//
float media;//
byte count = 0 ;//
int numeros [10];//

//INICIALIZAÇÃO DO HARDWARE
void setup(){
lcd.begin (16,2);//
Serial.begin(9600);//

}
//FUNÇÕES COMPLEMENTARES
int coletaSerial(){
int dado ;//
while (!Serial.available()){
delay(25);//

}
dado = Serial.parseInt ();//
return(dado);//
}
void guardaVetor(int valor){
numeros[count] = valor;//
count ++;//
if(count > 9) count = 0 ;//
}
float calculaMedia(){
float temp;//
for(byte i = 0 ; i <=9; i++){
temp += numeros[i];//
}
temp = temp / 10;
return (temp);//
}

void mostraDisplay (float valor1, int valor2){
lcd.clear();//
lcd.print("Recebido");//
lcd.print(valor2);//
lcd.setCursor(0,1);//
lcd.print("A media é ");//
lcd.print (valor1);//
}

//PROGRAMA PRINCIPAL
void loop() {
num = coletaSerial();//
guardaVetor(num);//
media = calculaMedia();//
mostraDisplay(media, num);//
}
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos