[DUVIDA] Como você estabiliza variações na leitura analogica ?

Olá Galera,

     Já li em alguns lugares que existem formulas para melhorar e estabilizar as oscilações em leituras analogicas no Arduino.

      Conheço e já usei a referencia interna,  mas isso não estabiiza, ao contrario, faz os valores oscilaresm até mais, melhora o resultado da leitura,  mas tambem aumenta as oscilações.

 

     Eu pessoalmente só conheço 2 formas de estabilizar, sendo:

1-Colocar um capacitor paralelo ao pino de leitura e o GND pra ajudar a estabilizar as oscilações.

2-Criar um sketch que lê diversas vezes o resultado e tira a media tipo

 

//  SKETCH PARA LER VALOR DO ANALOGICO MAIS ESTAVEL POR MEDIA

int valorA0=0;

int valor=0;

int valorfinal=0;  // seta variaveis

 

void setup(){

Serial.print(9600);  // inicia serial

}

void loop(){

for (int i=0; i <= 100; i++){   //  cria laço de 100 voltas

valorA0=analogRead(A0);  // lê o valor da porta analogica A0 a cada volta

valor= valor+valorA0;          // Soma os resultados obtidos

}

valorfinal= valor / 100;  //  tira a media dos valores lidos

Serial.print(valorfinal);   // imprime na serial os valores

}

 

 

A DUVIDA É:

 

   Você conheçe outras formas ?       

   Conheçe outros sketchs ou formulas pra melhorar e estabilizar a leitura do analogico ?

Exibições: 6905

Responder esta

Respostas a este tópico

Olá Jose gustavo,

   Cara, eu li si todos os topicos que você colocou, só não vi como utilizar o conceito no atmega328 que é a base do arduino,  o que entendi da leitura é que o conceito é muito utilizado em sonorização, logo, não vi muita coisa sobre leitura de sensores atraves de conversão AD.

   Peço mil desculpas por não ter fornecido antes mais dados,  vamos lá:

Qual tipo de sinal desejo converter :   Estou estudando celular de carga, como sempre falo aqui, costumo dividir meus estudos em tópicos, no momento estou com 3 focos de estudo, 1-celulas de carga, 2-Xbee, 3-Telas TFT.

    A questão da minha duvida aqui é sobre a estabilização do sinal de leitura de uma célula de carga.

    Utilizei um hx711 e ele emite resultados precisos e estáveis, mas o bicho é uma caixa preta,  dai tô tentando obter a leitura utilizando a amplificação do sinal da celula de carga atraves de uma ponte de Wheatstone, amplificado por um LM324,  mas apesar do sistema ser alimentado por uma tensão/corrente continua, a leitura tende a dar oscilações.

Qual a frequencia:  Como dito, estou trabalhando com CC, o sistema é alimentado com CC 5V.

Qual tipo de onda: Não acredito que devido a CC o tipo de onda seja uma senoide,  não estou com um osciloscopio pra verificar,  mas acredito que seja uma onda linear com subidas e descidas brandas de acordo com as oscilações, mas é só suposição.

Tem muito tuido no sinal:  Mais ou menos,  coloquei uma sequencia de filtros passa baixa em sequencia, tipos uns 4,  com um resistor de 560r e um capacitor de 10nF  em cada um,  isso melhorou um pouco o resultado,  mas comparado com o resultado obtido atraves do hx711 ainda é pobre e oscilante.

  

Weider, nunca trabalhei com célula de carga. 

Mas sei que são usados conversores de ADC com alta resolução, para esse tipo de medição. Um conversor de 24 bits (HX711) é de altissima resolução e portanto muito sensível !

Com conversor de ADC do Arduino ( 10 bits) fica inviável para ser usado com célula de carga. Você não terá precisão nas medidas. 

Quando você amplifica o sinal, poderá estar amplificando também o erro. Você terá que usar amplificadores operacionais e resistores de precisão. 

Não existe frequência no sinal de célula de carga. O sinal é CC. Se existe algum sinal AC é porque deve ser ruido.

Você esta fazendo a sua montagem em um Protoboard ? Se sim, deve ser por isso que esta detectando ruido. Devido à sensibilidade do circuito medidor, recomendo que blinde toda a placa e cabos dos sensores. A  simples ação de aproximar a sua mão do circuito, vai induzir ruídos e erros. 

Sim, os estudos são na protoboard.

  Me tira uma duvida Jose gustavo,  você citou que já estudou conversores ad,  existe algum CI conversor AD de alta resolução tipo 24 ou 32bits que você conheça de uso não muito complexo?  tipo,  queria algo pra estudar mesmo, não um modulo pronto tipo os modulos hx711.

   Como fazer depois desse CI converter o dado de analogico pra digital, pra passar esses dados pra o arduino pra poder trabalhar com eles?

Weider , recentemente eu comprei esse ADC na Farnell. Um dos mais baratos 

CIRCUITO INTEGRADO CONVERSOR ADC 1CH 22BIT 5.5V SOIC-8 (MCP3551-E/SN) - (1084625) | 1 | Valor: 28,92

http://ww1.microchip.com/downloads/en/devicedoc/21950b.pdf

Mas não testei ainda. Parece ser simples. 

Weider, boa noite!

Eu quando tenho que ter precisão em alguma leitura analógica, utilizo este circuito que acredito que caiba em seus estudos sobre Celulas de carga pois elas não tem uma variação de tensão muito rápidas,

Na entrada deste circuito eu utilizo um filtro rc "Obs se for para leituras com variações bruscas não recomendo" e como tensão de referencia utilizo um Zener de precisão. segue o esquema.

Para calibrar o circuito vc deve colocar o INPUT   ligada direto no GND  fazer a leitura  e supomos que de 4 ,este valor será seu desvio de offset, 

Em seguida, conecte a entrada INPUT em Aref = 4.096V  e anote a leitura - supomos que de 1018.

Agora é só calcular

 4 corresponde a 0V

1018  corresponde a 4,096V.

1018 - 4 = 1014 = 4,096V.        1014 corresponde 4.096V

Abs

Mauricio Ortega

Ao Jose abreu,

   Interessante o CI indicado,  pelo que vi ele poderia se comunicar com o arduino por SPI não é mesmo?

   Sendo 22bits o valor obtido seria 4194304 e não os 1024 do arduino, o que daria um belo aumento de precisão.

  

   Vou ver se tem outras coisitas mas que eu esteja precisando pra estudar e fazer o pedido na farnell, fico meio sem graça de fazer o pedido de um CIzinho só.

    Enquanto isso vou refazer a montagem e testar as teorias desse tutorial que achei super interessante, veja: http://www.embarcados.com.br/arduino-taxa-de-amostragem-conversor-ad/

Ao Mauricio Ortega,

    Cara, eu já tô utilizando a referencia interna do arduino, que é bem estável em 1.1v  dessa forma vou aproveitar sim esse seu modelo de filtro RC  pra testar,  qualquer resultado te conto.

    mas obrigado.

Mauricio,

   a imagem jpg que você postou não esta aparecendo.

Weider,

Não sei oque acontece.

Abs

Boa tarde, recuperando esse post de 2015. Acredito estar com o mesmo problema. Estou tentando ler condutividade elétrica da água (medindo a resistência dela) usando divisão de tensão com resistores e não estou gostando nada da variação de valores lidos pela entrada analógica do arduino. Tentei colocar um resistor de valor conhecido no lugar do sensor (2 resistores de 10Mohm na divisão de tensão) e o valor varia até uns 15% sendo que eu sei que está errado porque eu fico medindo com o multímetro (estou usando um Fluke zerado) direto a tensão e as resistências. 

Essas soluções propostas ao Weider que queria ler células de carga se aplica ao meu caso que quero ler um valor de resistência mais estável e também mais preciso?

Hélio lembre-se que o conversor AD do uC "micro controlador" tem uma impedância de entrada bem menor que a do seu multímetro.. o ideal é vc usar por exemplo um ampop antes do uC... 

Em qual configuração? pra amplificar ou filtrar o sinal?

Quando eu coloco valores conhecidos(medidos pelo multímetro) na programação como Vcc: 5,02V e R=9,94Mohm, eu espero que a leitura do outro resistor de valor 10,25Mohm fiquei pelo menos próximo disso. A leitura desse resistor feita pelo arduino varia de 8,89 a 11,5Mohm sendo que os resistores são de 5% de precisão e os valores mudam o tempo todo na leitura analógica.

buffer... seguidor! Só para ter uma entrada de alta impedância

Vin vem do ivisor do seu sensor ...Vout vai para o uC...

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2019   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço