Ir ao conteúdo
  • Cadastre-se

Estabilização de Sinal via software


Queiros19

Posts recomendados

boa noite, tenho uma pequena duvida hoje, estou a fazer um pequeno codigo em C Arduino para estabilizar um sinal recebido via porta analogica, estou constantemente fazendo uma media do sinal, e ele já está bem fixo e bem bonitinho, mas estou com um pequeno problema ainda:

acontece que sempre que eu reinicio o meu controlador, até o valor parar no valor da medição passam prai 5 segundos, e eu queria que o meu programa controla-se isso e analisa-se o valor continuamente e daria um ok depois de 50 leituras com o mesmo valor, ou seja, mais ou menos isto

20, 21, 22, 23, 24, 25, 26, 26, 26, 26, 26,|->| 26, 26

ou seja, quero que ele de ok quando fizer X leituras iguais.

tudo via software,

obrigado

Link para o comentário
Compartilhar em outros sites

Amigo, você quer contar o numero de leituras iguais e imprimir um "OK" quando chegar a certa quantidade é isso??... Já pensou em criar uma variável e incrementar o valor dela a cada leitura igual, depois é só testar os alor e imprimir se for o numero que você quer.... Tipo assim:

 [B]int[/B] Leitura;
[B]char [/B]Conta=0;
Serial.begin(9600);
[B]while[/B](true)
{
Leitura=analogRead(A0);
[B]if[/B](Leitura==26) Conta++; //Não sei que algorítimo estas usando para obter este resultado..
[B]if[/B](Conta==50) Serial.println("OK");
}

dê uma margem de erro na leitura, pois é difícil ter como retorno dois valores iguais, ainda mais 5 vezes....

Não sei com qual IDE você esta trabalhando, este programa que eu fiz foi feito em Processing (linguagem nativa da IDE Arduino), mas nesse caso acho que vale mais o Conceito.rsrs. :D

Link para o comentário
Compartilhar em outros sites

Boa tarde amigos, desde já obrigado pela ajuda e pelo conceito, a ideia esta lá sim, mas o meu problema é que desde que inicializo o microcontrolador, até o valor chegar a sua média podem passar 20seg, e eu queria que ele me apresenta-se a temperatura apenas quando me der 30 valores iguais, e apartar dai apresentaria sempre.

Assim o valor ficaria bem estável e bonito

Obrigado

Queiros19

PS: os 30 valores iguais teriam de ser consecutivos.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

amigo, o problema com esta ideia de valores iguais consecutivos é que como o leitor é muito preciso, 10 bits de conversão, fica muito difícil, praticamente impossivel tirar 30 valores iguais, uma diferença de 0,004V já da diferença na leitura, a temperatura do CI já influencia no valor da sua leitura, os ruídos externos já alteram sua leitura..... ou seja, quase impossível

faça a média de 30 valores que vai ser melhor

flowww

Link para o comentário
Compartilhar em outros sites

boa noite amigo, obrigado pela sua resposta

eu ja estou a fazer uma media de valores


calculo = sensorValue * 0.01;
calculo2 = valorantigo * 0.99;
valor = calculo + calculo2;
valorantigo = valor;
amostra = valor;
Serial.println(valor);
  sensorValue = analogRead(sensorPin);

o valor fica parado nos 23º por exemplo, mas eu preciso de saber quando é que o valor para.

por exemplo, ele começa em 0 e gradualmente sobe até aos 23º por exemplo, e assim que o valor parar nos 23 eu queros saber para começar apresentar o valor, vamos imaginar que estou a mostrar o valor num LCD16x2 e estão 23º e o display esta a dizer 1º e depois diz 2º e depois 3º e isso fica feio e eu não quero, e quando ele parar nos 23º começa apresentar até ai apresenta sempre ---º que é para ficar a espera que me retorne um valor aceitavel

Link para o comentário
Compartilhar em outros sites

Continue calculando as médias, e guarde o resultado delas, pelo menos os ultimos 5 resultados, e veja a variação desses 5 ultimos resultados, quando pararem de variar, é que está estabilizado.

Mas para isso dar certo, tem de ver qual é o intervalo de tempo que voce vai usar para calcular a média e guardar esse resultado. Se for um tempo muito pequeno, vai parecer que estabilizou, mesmo que na realidade ainda esteja subindo.

Paulo

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!