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

Ir para baixo
alvaro 123456
alvaro 123456
Mensagens : 481
Data de inscrição : 27/04/2019
Idade : 18

Exercício 4.14 resolvido Empty Exercício 4.14 resolvido

Seg Dez 06, 2021 3:01 pm
/*
* CURSO DE ROBOTICA 2021
*
* Exercicio: 4.14
* Tema: Sensores no Campo
* Atividade: Guardar os dados dos sensores em structs e identificar onde há menor humidade para irrigar a área, fornecer a temperatura média e listar a temperatura de cada sensor.
* Descrição: Declarar uma Struct com os membros, id, local, temp, humid, lux.
* Hardware: Inicializar a porta serial
* Comandos: Serial.begin(9600), Serial.println(); Struct
* Dica1: Struct é uma variável especial que contém diversas oyutras variáveis de diversos tipos, denominados membros da Struct
* Dica2: Primeiro definir o tipo da estrutura e os membros, depois declarar as variáveis da estrutura
* Dica3: O operador . (ponto) é usado para referenciar a variável.membro ,
* Dica4: Pode inicializar a estrutura pode acessar cada membro da estrutura ou usando uma lista
* Dica5: Para ler um dado pode acessar diretamente variável.membro
* Dica6: Usar um vetor como variável da struct para guardar os dados dos sensores
* Dica7: Usar um for() para guardar os dados na struct, e também para acessar os dados,
* Dica8: Enviar os dados pelo terminal para carregar as estruturas, basta copiar e colar no terminal, devem ser separadas por ponto e virgula.
* Dica9: Dados ddos sensores:
1,"Alto Morro",28.5,25,65300
2,"Casa Amarela",28.2,27,64200
3,"Poço",27.6,32,61200
4,"Encruzilhada",27.0,37,57010
5,"Pé de manga",26.5,42,55200
6,"Sede",26.3,47,50750
*/

//DEFINICOES INICIAIS



//DECLARAcAO DE VARIAVEIS
byte count;
//byte sensor[6];
struct dados {
byte id;
char local[10];
float temp;
byte humid;
long lux;
} sensor[6] = {{1,"Alto Morro",28.5,25,65300},
{2,"Casa Amarela",28.2,27,64200},
{3,"Poco",27.6,32,61200},
{4,"Encruzilhada",27.0,37,57010},
{5,"Pe de manga",26.5,42,55200},
{6,"Sede",26.3,47,50750}};

byte idMenorHumid = 0;
byte somaTemp = 0;
byte menorHumid = 100;



//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
//Detecta onde tem menor umidade
for(count = 0; count <= 5; count ++){//e usado para rodar as linha da struct
if (sensor[count].humid < menorHumid){//Se a sua humidade do local identificado for menor que menorHumid quer dizer que o local está seco e entra
menorHumid = sensor[count].humid;//menorHumid vai ser igual ao local
idMenorHumid = sensor[count].id;//o id do sensor[count].id vai ser igual ao idMenorHumid
}
}
Serial.print("O local mais seco e ");//imprime na porta sserial
Serial.println(sensor[idMenorHumid-1].local);//imprime o nome da menorHumid
Serial.print("Onde a humidade e de ");//imprime na porta serial
Serial.println(sensor[idMenorHumid-1].humid);//imprime o valor da humid da menorHumid
Serial.print("\n");//vai pra a proxima linha

//Calculo da temperatura
for(count = 0; count <= 5; count ++){//e usado para rodar as linha da struct
somaTemp += sensor[count].temp;//Vai fazendo a soma da temoeratura e guardndo na somaTemp
}
Serial.print("A média da temperatura e de ");//imprime na porta serial
Serial.print(somaTemp / 6);//efetua o calculo da media
Serial.print("\n");//vai para proxima linha
//Ultima parte
for(count = 0; count <= 5; count ++){//e usado para rodar as linha da struct
Serial.print("A temperatura no");//imprime na porta serial
Serial.println(sensor[count].local);//imprime o nome do local mais seco
Serial.print("e de ");//imprime na porta serial
Serial.println(sensor[count].temp);//imprime o valor do local mais seco
Serial.print("\n");//vai para proxima linha

delay(2000);//time
}
}



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

Exercício 4.14 resolvido Empty Re: Exercício 4.14 resolvido

Sex Mar 11, 2022 11:32 pm
Muito bom Alvaro, nota 10.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos