LM 35 Utilizando Modelagem de Entrada de Dados

Um fenômeno aleatório pode ocorrer na leitura do seu LM 35, resultando em valores errado na leitura e instabilidade. 

Uma das etapas mais importantes na construção o diz respeito à modelagem dos dados de entrada, no processo de modelagem de dados são feitos os seguintes passos: 

1º- Coleta - o objetivo é garantir que a amostra seja a mais representativa possível do fenômeno

2º- Tratamento - o objetivo é identificar possíveis falhas nos valores amostrados e aumentar o conhecimento acerca do fenômeno.

3º- Inferência - O objetivo é aplicar os conhecimentos de probabilidades para inferir o comportamento  a partir da amostra.

Uma amostra de leitura do sensor LM 35 deve ter no minimo 100 observações e no máximo 200, amostras com menos de 100 observações podem comprometer a identificação do melhor modelo probabilístico, e amostras com mais de 200 observações não trazem ganhos significativos ao estudo.

Na leitura do seu LM35 pode acontecer um outlier,outilier é ponto fora da curva, valores é atípicos ou discrepantes na amostra e precisam ser retirados. 

Segue abaixo o algoritmo de modelagem de entrada de dados para LM35: 

float ModelagemDeDados(int x) //x= numero do pino analógico
{
int leituras[100],i,j,aux,a,q1,q3,TotalDeElementos=100,soma=0;
float MenorOutlier,MaiorOutlier;
for (i=0;i<100;i++) //um segundo de leituras
{
leituras[i]=analogRead(x);
delay(10);
}

//Ordenação do vetor por bubble sort
for(j=100-1;j>=1;j--)
{
for(i=0;i<j;i++)
{
if(leituras[i]>leituras[i+1])
{
aux=leituras[i];
leituras[i]=leituras[i+1];
leituras[i+1]=aux;
}
}
}
//Calculo de Amplitude e Outliers utilizando técnicas de modelagem de entrada de dados
q1=leituras[24];
q3=leituras[74];
a=q3-q1;
MenorOutlier=q1-1.5*a;
MaiorOutlier=q3+1.5*a;
//Retirando os outiliers (Leituras fora de padrão)
for(i=0;i<100;i++)
{
if((float)leituras[i]<MenorOutlier)
{
leituras[i]=0;
TotalDeElementos--;
}
if((float)leituras[i]>MaiorOutlier)
{
leituras[i]=0;
TotalDeElementos--;
}
}
//Media das leituras retirando as leituras foda do padrão
for(i=0;i<100;i++)
{
soma=soma+leituras[i];
}
return (soma/TotalDeElementos); //Valor ainda não convertido em ºC

}

Exibições: 969

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Eduardo castellani em 5 julho 2013 às 10:52

MEU EMAIL É  miragempro@hotmail.com

Comentário de Eduardo castellani em 5 julho 2013 às 10:52

Oi  Wellington Cássio, aceitaria fazer uma vídeo aula sobre a modelagem de dados? me ensinando a faze-la? lhe pago se quiser;

Comentário de Eduardo castellani em 31 maio 2013 às 19:22

OI Wellington Cássio

Depois eu pesquisei e achei essa sua resposta. abraço

Comentário de Wellington Cássio em 30 maio 2013 às 21:49

Eduardo, Modelagem de dados é para deixar suas medições de temperatura mais seguras e confiáveis. 

Comentário de Eduardo castellani em 30 maio 2013 às 18:05

Me diga uma coisa, posso usa-la no ARDUINO?

Comentário de Nitnel em 17 maio 2013 às 8:14

Muito útil esta rotina, fazer apenas a média dos valores absorvendo os "picos" não é suficiente. Parabéns !

Comentário de Wellington Cássio em 14 maio 2013 às 20:14

Obrigado Marcelo! :D

Comentário de Marcelo Mosczynski em 13 maio 2013 às 9:49

Parabéns, muito instrutivo esse artigo.

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço