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 : 720
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas

Exercicio 4.03 Resolvido Empty Exercicio 4.03 Resolvido

Ter Jun 21, 2022 10:03 am
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 4.3
* Tema: Media de Luminosidade
* Atividade: Leitura da luminosidade captada pelo LDR e apresentar a media dos valores no display
* Descrição: Realizar a leitura do LDR a cada 500ms e armazenar num vetor de 10 posições, usar uma função para calcular a media e apresentar no display
* Hardware: Montar o display e usar o LDR da placa
* Comandos: lcd.print(); for(); if(); Serial.print(), for()
* Dica1: String é uma variável que armazena um conjunto de diversos valores do mesmo tipo
* Dica2: Declaração do vetor int nome_vetor[tamanho]; tipo dos dados, no caso int. Nome do vetor identifica a variável. Entre conchetes vai o tamanho do vetor
* Dica3: A cada 500ms realiza a leitura do valor do LDR e guarda numa posição do vetor, quando chegar na posição 10 volta a guardar na posição 1
* Dica4: Apos a leitura realizar o calculo da media, que é a soma de todos os valores dividido por 10
* Dica5: Apos obter a média escrever no display
*/

//DEFINICOES INICIAIS
#define ldr A0//
#include //

//DECLARAcAO DE VARIAVEIS GLOBAIS
byte Luminosidade[10]={0};//
LiquidCrystal lcd(12,11,10,9,8,7);//
int Count = 0;//
long tempo = 0;//
byte valorLdr;//
int media = 0 ;//

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//
lcd.begin(16,2);//
}
//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print("valor LDR posição");//
Serial.print(Count);//
Serial.print(" = ");//
Serial.print(valorLdr);//
}
//PROGRAMA PRINCIPAL
void loop() {
if(millis() > tempo+300){
tempo = millis ();//
valorLdr = analogRead(A0);//
Luminosidade[Count] = valorLdr;//
debug();//
Count ++;//
if(Count>9)Count = 0;//
for(byte i = 0; i<=9; i++){
media += Luminosidade[1];//
}
media /= 10 ;//
lcd.clear();//
lcd.print("media = ");//
lcd.print (media);//
}
} //fim do loop


Resolvido 4.03 e testado so nao comentei
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

Exercicio 4.03 Resolvido Empty Re: Exercicio 4.03 Resolvido

Ter Ago 02, 2022 10:06 pm
Oi Monica, legal que está evoluindo bem nesse capítulo. Fiz as correções e tenho umas observações:
1 - A lógica está correta, programa sem erros
2 - O resultado deu erradi, diferente das leituras. Isso acontece porque declarou a variável valorLdr como byte, e o valor da entrada analógica vai até 1023
3 - No calculo da média usou um for() para correr o vetor, mas na hora de somar as posições ficou assim media += Luminosidade[1] //ou seja calculando somente a posição 1
4 - Faltou os comentários como já relatado

Então está bem adiantado e fácil de corrigir, seguindo os critérios nota 5.0
Monica Moreno
Monica Moreno
Mensagens : 720
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas

Exercicio 4.03 Resolvido Empty Re: Exercicio 4.03 Resolvido

Sáb Nov 05, 2022 10:32 am
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 4.3
* Tema: Media de Luminosidade
* Atividade: Leitura da luminosidade captada pelo LDR e apresentar a media dos valores no display
* Descrição: Realizar a leitura do LDR a cada 500ms e armazenar num vetor de 10 posições, usar uma função para calcular a media e apresentar no display
* Hardware: Montar o display e usar o LDR da placa
* Comandos: lcd.print(); for(); if(); Serial.print(), for()
* Dica1: String é uma variável que armazena um conjunto de diversos valores do mesmo tipo
* Dica2: Declaração do vetor int nome_vetor[tamanho]; tipo dos dados, no caso int. Nome do vetor identifica a variável. Entre conchetes vai o tamanho do vetor
* Dica3: A cada 500ms realiza a leitura do valor do LDR e guarda numa posição do vetor, quando chegar na posição 10 volta a guardar na posição 1
* Dica4: Apos a leitura realizar o calculo da media, que é a soma de todos os valores dividido por 10
* Dica5: Apos obter a média escrever no display
*/

//DEFINICOES INICIAIS
#define ldr A0//Definido pino A0 como ldr
#include //

//DECLARAcAO DE VARIAVEIS GLOBAIS
byte luminosidade[10]={0};//
LiquidCrystal lcd(12,11,10,9,8,7);//
int Count = 0;//
long tempo = 0;//
byte valorLdr;//
int media = 0 ;//

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//
lcd.begin(16,2);//
}
//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print("valor LDR posição");//
Serial.print(Count);//
Serial.print(" = ");//
Serial.print(valorLdr);//
}
//PROGRAMA PRINCIPAL
void loop() {
if(millis() > tempo+300){
tempo = millis ();//
valorLdr = analogRead(A0);//
luminosidade[Count] = valorLdr;//
debug();//
Count ++;//
if(Count>9)Count = 0;//
//segunda parte calculo da media
for(byte i = 0; i<=9; i++){
media += luminosidade[1];//
}
if(count == 9){
media = 0;
for(byte i = 0;i <= 9; i++);{
media += luminosidade[i];
}
Serial.print(luminosidade[count]);

media /= 10;
lcd.clear();
lcd.print("media = ");
lcd.print(media);
}
} //fim do loop

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

Exercicio 4.03 Resolvido Empty Re: Exercicio 4.03 Resolvido

Sáb Nov 05, 2022 10:38 am
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 4.3
* Tema: Media de Luminosidade
* Atividade: Leitura da luminosidade captada pelo LDR e apresentar a media dos valores no display
* Descrição: Realizar a leitura do LDR a cada 500ms e armazenar num vetor de 10 posições, usar uma função para calcular a media e apresentar no display
* Hardware: Montar o display e usar o LDR da placa
* Comandos: lcd.print(); for(); if(); Serial.print(), for()
* Dica1: String é uma variável que armazena um conjunto de diversos valores do mesmo tipo
* Dica2: Declaração do vetor int nome_vetor[tamanho]; tipo dos dados, no caso int. Nome do vetor identifica a variável. Entre conchetes vai o tamanho do vetor
* Dica3: A cada 500ms realiza a leitura do valor do LDR e guarda numa posição do vetor, quando chegar na posição 10 volta a guardar na posição 1
* Dica4: Apos a leitura realizar o calculo da media, que é a soma de todos os valores dividido por 10
* Dica5: Apos obter a média escrever no display
*/

//DEFINICOES INICIAIS
#define ldr A0//Definido pino A0 como ldr
#include //Carrega a biblioteca com as funções do display

//DECLARAcAO DE VARIAVEIS GLOBAIS
byte luminosidade[10]={0};//
LiquidCrystal lcd(12,11,10,9,8,7); // Setup conforme as ligações realizadas RS-EN-D4-D5-D6-D7
int Count = 0;//Variavel int count=0
long tempo = 0;//Variavel long tempo=0
byte valorLdr;//Variavel valorLdr
int media = 0 ;//VAriavel media=0

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//Inicializaço da porta serial
lcd.begin(16,2); //Inicializa o display configurado como 16 colunas e 2 linhas
}
//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print("valor LDR posição");//
Serial.print(Count);//
Serial.print(" = ");//
Serial.print(valorLdr);//
}
//PROGRAMA PRINCIPAL
void loop() {
if(millis() > tempo+300){
tempo = millis ();//
valorLdr = analogRead(A0);//
luminosidade[Count] = valorLdr;//
debug();//
Count ++;//
if(Count>9)Count = 0;//
//segunda parte calculo da media
for(byte i = 0; i<=9; i++){
media += luminosidade[1];//
}
if(count == 9){
media = 0;
for(byte i = 0;i <= 9; i++);{
media += luminosidade[i];
}
Serial.print(luminosidade[count]);

media /= 10;
lcd.clear();//limpa o displayu
lcd.print("media = ");//Aqui e a mensagem no display
lcd.print(media);
}
} //fim do loop
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

Exercicio 4.03 Resolvido Empty Re: Exercicio 4.03 Resolvido

Qua Nov 16, 2022 11:17 pm
Monica, ainda tem erro, certo? são eles, declarou Count com letra maiuscula e usou no programa com minuscula. Na linha 56 tem um ; que não deveria estar lá. E ainda faltou fechar uma das chaves, faça a conta para ver.
Monica Moreno
Monica Moreno
Mensagens : 720
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas

Exercicio 4.03 Resolvido Empty Re: Exercicio 4.03 Resolvido

Qui Dez 01, 2022 10:31 am
erro


Última edição por Monica Moreno em Ter maio 02, 2023 2:54 pm, editado 1 vez(es)
Monica Moreno
Monica Moreno
Mensagens : 720
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas

Exercicio 4.03 Resolvido Empty Re: Exercicio 4.03 Resolvido

Seg Mar 13, 2023 3:02 pm
Help
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 4.3
* Tema: Media de Luminosidade
* Atividade: Leitura da luminosidade captada pelo LDR e apresentar a media dos valores no display
* Descrição: Realizar a leitura do LDR a cada 500ms e armazenar num vetor de 10 posições, usar uma função para calcular a media e apresentar no display
* Hardware: Montar o display e usar o LDR da placa
* Comandos: lcd.print(); for(); if(); Serial.print(), for()
* Dica1: String é uma variável que armazena um conjunto de diversos valores do mesmo tipo
* Dica2: Declaração do vetor int nome_vetor[tamanho]; tipo dos dados, no caso int. Nome do vetor identifica a variável. Entre conchetes vai o tamanho do vetor
* Dica3: A cada 500ms realiza a leitura do valor do LDR e guarda numa posição do vetor, quando chegar na posição 10 volta a guardar na posição 1
* Dica4: Apos a leitura realizar o calculo da media, que é a soma de todos os valores dividido por 10
* Dica5: Apos obter a média escrever no display
*/

//DEFINICOES INICIAIS
#define ldr A0//Definido pino A0 como ldr
#include //Carrega a biblioteca com as funções do display

//DECLARAcAO DE VARIAVEIS GLOBAIS
byte luminosidade[10]={0};//
LiquidCrystal lcd(12,11,10,9,8,7); // Setup conforme as ligações realizadas RS-EN-D4-D5-D6-D7
int Count = 0;//Variavel int count=0
long tempo = 0;//Variavel long tempo=0
byte valorLdr;//Variavel valorLdr
int media = 0 ;//VAriavel media=0
int i ;//

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//Inicializaço da porta serial
lcd.begin(16,2); //Inicializa o display configurado como 16 colunas e 2 linhas
}
//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print("valor LDR posição");//
Serial.print(Count);//
Serial.print(" = ");//
Serial.print(valorLdr);//
}
//PROGRAMA PRINCIPAL
void loop() {
if(millis() > tempo+300){
tempo = millis ();//
valorLdr = analogRead(A0);//
luminosidade[Count] = valorLdr;//
debug();//
Count ++;//
if(Count>9)Count = 0;//
//segunda parte calculo da media
for(byte i = 0; i<=9; i++){
media += luminosidade[1];//
}
if(Count == 9){
media = 0;
for(byte i = 0;i <= 9; i++);{
media += luminosidade[i];
}
Serial.print(luminosidade[Count]);

media /= 10;
lcd.clear();//limpa o displayu
lcd.print("media = ");//Aqui e a mensagem no display
lcd.print(media);
}
}
}//fim do loop
Ana Clara Leschnhak
Ana Clara Leschnhak
Mensagens : 117
Data de inscrição : 03/03/2023
Idade : 12
Escola : Colégio Estadual Colônia Murici

Exercicio 4.03 Resolvido Empty Re: Exercicio 4.03 Resolvido

Seg Mar 13, 2023 9:26 pm
Oi mô parabéns nota dez🥳!!!
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

Exercicio 4.03 Resolvido Empty Re: Exercicio 4.03 Resolvido

Qua Mar 29, 2023 9:43 pm
Oi Monica, Nesse exerccício esta incrementando a variável count a cada volta, então usa ela para guardar o valor do LDR no vetor.
Daí não precisa daquele primeiro for para guardar os valores.
Usa somente o segundo for() para fazer o calculo da média.

Então a cada volta faz a leitura do LDR e guarda na posição count. Depois roda o for() e calcula a media.
Nota 6.0
Monica Moreno
Monica Moreno
Mensagens : 720
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas

Exercicio 4.03 Resolvido Empty Re: Exercicio 4.03 Resolvido

Ter maio 02, 2023 3:15 pm
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 4.3
* Tema: Media de Luminosidade
* Atividade: Leitura da luminosidade captada pelo LDR e apresentar a media dos valores no display
* Descrição: Realizar a leitura do LDR a cada 500ms e armazenar num vetor de 10 posições, usar uma função para calcular a media e apresentar no display
* Hardware: Montar o display e usar o LDR da placa
* Comandos: lcd.print(); for(); if(); Serial.print(), for()
* Dica1: String é uma variável que armazena um conjunto de diversos valores do mesmo tipo
* Dica2: Declaração do vetor int nome_vetor[tamanho]; tipo dos dados, no caso int. Nome do vetor identifica a variável. Entre conchetes vai o tamanho do vetor
* Dica3: A cada 500ms realiza a leitura do valor do LDR e guarda numa posição do vetor, quando chegar na posição 10 volta a guardar na posição 1
* Dica4: Apos a leitura realizar o calculo da media, que é a soma de todos os valores dividido por 10
* Dica5: Apos obter a média escrever no display
*/

//DEFINICOES INICIAIS
#define ldr A0//Definido pino A0 como ldr
#include //Carrega a biblioteca com as funções do display

//DECLARAcAO DE VARIAVEIS GLOBAIS
byte luminosidade[10]={0};//
LiquidCrystal lcd(12,11,10,9,8,7); // Setup conforme as ligações realizadas RS-EN-D4-D5-D6-D7
int Count = 0;//Variavel int count=0
long tempo = 0;//Variavel long tempo=0
byte valorLdr;//Variavel valorLdr
int media = 0 ;//VAriavel media=0
int i ;//

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//Inicializaço da porta serial
lcd.begin(16,2); //Inicializa o display configurado como 16 colunas e 2 linhas
}
//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print("valor LDR posição");//
Serial.print(Count);//
Serial.print(" = ");//
Serial.println(valorLdr);//
}
//PROGRAMA PRINCIPAL
void loop() {
if(millis() > tempo+300){
tempo = millis ();//
valorLdr = analogRead(A0);//
luminosidade[Count] = valorLdr;//
debug();//
Count ++;//
if(Count>9)Count = 0;//
media = 0;
//segunda parte calculo da media
for(byte i = 0; i<=9; i++){
media += luminosidade[1];//
}
media /= 10;
lcd.clear();//limpa o displayu
lcd.print("media = ");//Aqui e a mensagem no display
lcd.print(media);
}
}//fim do loop
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

Exercicio 4.03 Resolvido Empty Re: Exercicio 4.03 Resolvido

Sex maio 05, 2023 8:48 pm
Oi Monica, o programa está correto, sem erros, legal que usou o millis() para controlar o tempo ao inves do delay().
Nota 10.0
Conteúdo patrocinado

Exercicio 4.03 Resolvido Empty Re: Exercicio 4.03 Resolvido

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