Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
LEOPUENA

Estabilizar leitura de ADC

Recommended Posts

Oi pessoal,,,,

Estou com esse problema já há muito tempo, e até agora não consigo resolver. Quando faço uso dos ADC do PIC tenho sempre problemas de estabilidade. Por exemplo ao fazer um termometro a temperatura fica a variar + ou - 5º, o que é muito!! O caso mais recente é o de um amperimetro usando o ACS712, tentei varias formas mas não consegui fixar a corrente num unico valor.

No proteus tudo funciona perfeitamente, tudo começa quando passo pra proto. Creio que não seja erro no programa, até porque alguns deles foram sugeridos aqui mesmo no CDH.

????? Alguem tem alguma sugestão ?????

Obs: Todos esses circuitos foram feitos usando o CCS, com varios PICs diferentes (16F e 18F)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste o trecho do código que faz a leitura.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • O problema acontece em varios casos. o codigo abaixo é a função de leitura de um amperimetro usando o APC712.


    #include <18F4520.h>
    #device adc=10

    float sinal,sinal2,OFFSET=1.71;

    float conversao(){

    sinal = read_adc();
    sinal2 = (sinal*5.0)/1023;
    return ((sinal2-OFFSET)*8);

    }

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Faça a leitura pela média:

    #include <18F4520.h>
    #device adc=10

    float Media,sinal,sinal2,OFFSET=1.71;

    float conversao(){

    Media = 0;
    for(y=0;y<=38;y++){
    delay_us(100);
    Media = Media + read_adc();
    }
    sinal = (media / 38);
    sinal2 = (sinal*5.0)/1023;
    return ((sinal2-OFFSET)*8);

    }

    Editado por vtrx

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Ok :cool: resolveu o problema.

    O amperimetro estava com uma variação acima 1A. Usando essa técnica a variação passou pra + ou - 0.03A. Sendo a leitura maxima = 30A essa variação por agora é aceitavel.

    De momento não tenho como testar o termómetro. Assim que tiver o LM35 vou testar com essa técnica, e levando em conta a dica do neto_e_khelen que tambem ja vi em alguns topicos.

    Valeu pela ajuda vtrx.

    Mas antes de fechar..... há alguma forma de resolver o problema da leitura por hardware???

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Ok :cool: resolveu o problema.

    O amperimetro estava com uma variação acima 1A. Usando essa técnica a variação passou pra + ou - 0.03A. Sendo a leitura maxima = 30A essa variação por agora é aceitavel.

    De momento não tenho como testar o termómetro. Assim que tiver o LM35 vou testar com essa técnica, e levando em conta a dica do neto_e_khelen que tambem ja vi em alguns topicos.

    Valeu pela ajuda vtrx.

    Mas antes de fechar..... há alguma forma de resolver o problema da leitura por hardware???

    E ae Leo.. estou fazendo um circuito para leitura de corrente também utilizando o acs712 30...você poderia passar o seu circuito no proteus e algumas dicas para eu ter uma precisao..

    Valeu brigadao

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Complementando,

    Mesmo fazendo as médias, se existir algum mínimo ruído, será capturado pelo conversor, e fará que existam sempre pequenas leituras estranhas.

    Sempre tem de caprichar no aterramento da parte analógica do microcontrolador, evitando loops de correntes nele, e se possível, ligar o terra e o sinal dos sensores o mais próximo possível do microcontrolador.

    Isto exige um lay-out cuidado e separação dos terras analógicos e digitais dos microcontroladores.

    Por exemplo, usando conversão normal de 10 bits, com 5v máximo, temos menos de 5 milivolts de resolução, e se realmente quisermos obter uma leitura muito estável, temos de garantir que o ruído sobreposto ao sinal do sensor seja inferior a 5 milivolts, o que é bem difícil de se fazer, pois exige técnicas de blindagem e aterramento muito eficientes. Caso isso não seja possível, diminua os bits válidos para 9 ou até mesmo 8 bits, ajuda muito em diminuir a sensibilidade aos ruídos, porém implicando em uma menor resolução.

    Paulo

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Sempre tem de caprichar no aterramento da parte analógica do microcontrolador, evitando loops de correntes nele, e se possível, ligar o terra e o sinal dos sensores o mais próximo possível do microcontrolador.

    Isto exige um lay-out cuidado e separação dos terras analógicos e digitais dos microcontroladores.

    Não percebi esse aterramento da parte analogica. O microcontrolador tem apenas um terminal GND, certo? Como seria essa separação da parte analogica da digital?

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Um microcontrolador bem projetado tem o cuidado de ter bem separados os sitemas internos digitais e os sistemas internos analógicos.

    Vela o exemplo de um simples ATMEGA8, ele possui do lado esquerdo as alimentações e terra do sistema digital, e no lado direito estão a alimentação e terra da parte responsável por informações analógicas !

    Veja : +V DIGITAL = PINO 7 TERRA DIGITAL = PINO 8

    +V ANALÓGICO = PINO 20 TERRA ANALÓGICO = PINO 22

    Essa separação dos lados é feita justamente para poder facilitar o lay-out, e separar as trilhas de alimentação e terra justamente para que qualquer variação de corrente na parte digital, como um LED aceso por uma porta de i/O, NÃO INFLUA no sistema de referência de terra E de alimentação dos sistemas analógicos, como os conversores A/D e os comparadores analógicos.

    Cada família de microcontrolador tem dicas de design específicas para ter mais imunidade a ruídos , na dúvida procure pelos design notes no site do fabricante.

    Paulo

    post-464954-13884966507715_thumb.gif

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Nos microcontroladores, PIC, que uso não têm esse pino AVcc. Será que os pinos de tensão de referência (com as configurações necessárias) podem ser usados com o mesmo efeito?

    2008122721847335.jpg

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Se não me engano, voce pode usar também os pinos 4 e 5 para essa finalidade, o pino 4 vai ao terra "analógico" , e o pino 5 ao +V "analógico".

    Mas repare que o mesmo princípio do ATMEGA está aí , lado esquerdo do PIC sinal digital e lado direito sinal digital E é a mesma técnica que expliquei no post acima, ok ?

    Paulo

    Editado por aphawk

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Os pinos 4 e 5 são os pinos da tensão de referência. Notei agora que em outros PICs menores só vem a a tensão de referencia positiva, e fica sempre no lado oposto ao Vcc. Interessante :cool:

    Nesse caso uso duas fontes para alimentar o circuito?

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Leo,

    Legal de você reparar, sempre temos de pensar que um CI sempre tem motivos para ser como é..... Alguns possuem dois pios de terra, dois de vcc, quando na verdade não custaria nada interligar esses pinos DENTRO do CI.

    O pessoal de Engenharia faz o trabalho direito ao criar um novo CI, se usamos como eles projetaram, é uma coisa totalmente diferente !

    Não precisa usar duas fontes, o que pode ser feito è a partir da tensão normal da fonte, isto é, aquela que normalmente ligamos em todos os CI's, Leds, etc, colocamos uma baita filtragem, com indutores, capacitores de filtro e até um pequeno resistor, e assim esta tensão se torna bem independente de pequenas variações na tensão normal.

    Quando projetamos o PCB, criamos dois "terras" , claro que ambos são conectados juntos no ponto de menor impedância ( por exemplo, saem diretamente do pino GND do regulador de tensão ), assim usamos o terra analógico apenas nas referências da parte de conversão analógica, e o outro terra vai ao resto de todo o circuito.

    A tensão de alimentação extremamente bem filtrada vai apenas alimentar a parte analógica dos conversores a/d , assim a conversão será bem estável.

    E o layout tem de levar o sinal dos sensores até a entrada do conversor a/d com aterramentos e blindagens, planos de terra, etc, assim garantimos o menor ruído nas medidas que faremos.

    Paulo

    Editado por aphawk

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    recomendo usar as tensões de referencia

    se não usar os pinos de tensão de referencia, a referencia fica sendo a tensão da alimentação, o que não da boa estabilidades de pendendo da nossa fonte, e isso que causa oscilação nas leituras. Exemplo, você usa o lm35 e faz a regra de 3 com uma tensão de referencia de 5V mas ai conforme oscila sua tensão, a grandes distorções nos valores, pois a tensão de referencia foi perdida

    sempre uso so pinos de tensão de referencia, e nunca tive grandes distorções nas leituras, na referencia negativa uso o proprio gnd e na positiva uso uma tensão de referencia coletada de um diodo zener

    flowww

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Para um CAD com 8 bits, a tensão de referência tem que ter a precisão de 1/2 bit menos significativo.

    Para uma tensão de referência de 5V, o valor deve estar entre

    4,99V e 5,01V. Nem zener tem precisão e a variação com a temperatura não é pequena.

    Use o TL431, que tem precisão e é estável.

    Se você montou seu circuito em protoboard (matriz de contatos), também não é legal.

    Se o seu CAD for de 10 bits, então:

    4,9976V <= Vref <= 5,0024

    MOR_AL

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • O pessoal de Engenharia faz o trabalho direito ao criar um novo CI, se usamos como eles projetaram, é uma coisa totalmente diferente !

    Não precisa usar duas fontes, o que pode ser feito è a partir da tensão normal da fonte, isto é, aquela que normalmente ligamos em todos os CI's, Leds, etc, colocamos uma baita filtragem, com indutores, capacitores de filtro e até um pequeno resistor, e assim esta tensão se torna bem independente de pequenas variações na tensão normal.

    ....

    E o layout tem de levar o sinal dos sensores até a entrada do conversor a/d com aterramentos e blindagens, planos de terra, etc, assim garantimos o menor ruído nas medidas que faremos.

    Paulo

    Realmente na engenharia nada é por acaso. Nunca havia reparado esses detalhes. Vou fazer os testes usando a tensão de referência e ver como fica o desempenho. O problema é que estou a testar na breadboard e sei que isso prejudica mais ainda.

    Use o TL431, que tem precisão e é estável.

    Valeu pelas dicas MOR, difícil será encontrar esse regulador.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    difícil será encontrar esse regulador

    Não sei em Angola,mas aqui no Brasil,se acha em qualquer esquina.

    É muito utilizado em fontes de tvs.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • O mercado aqui é dominado por amplificadores de audio (parece que todo mundo gosta de ouvir musica alta....). Mas vou procurar nos radio-técnicos.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×