Página 1 de 1
Conversor AD oscilando o valor e ta 20mv a +

Enviado:
17 Jan 2011 07:57
por cristian
ja estou cansado de problemas com AD do pic, analizem este codigo e vejam se tem algo errado ....
medindo com um multimetro da uma diferença de 20mv , e fica oscilando mesmo pegando 60 amostras do AD .... no teste fica a leitura parada e no pic fica oscilando chega a 10mv de oscilaçao
numa das entradas coloquei um cap elco de 0,47uf ajudou um pouco mas ainda irrita
a fonte é bem estabilizada
tem alguma soluçao ?
compilador mikroc pro
pic 18f4550
cristal 8mhz com pll para usb para 48mhz
- Código: Selecionar todos
void ConverteVolts(unsigned int *buf)
{ float valf;unsigned int res,valI;
valI=*buf/60;
valf=valI *(5000.00/1024);
res=(int)valf;
WordToStr(res,txt);
}
-------------------------------------------------------
if(lerAD)
{
lerAD=0;
if(NumAmostras<=60)
{
delay_ms(10);
buftemp+=ADC_Read(0);
delay_ms(10);
buftemp2+=ADC_Read(1);
NumAmostras++;
}else{
NumAmostras=1;
ConverteVolts(&buftemp);buftemp=0;

Enviado:
17 Jan 2011 10:10
por renatokodaira
Veja qual o erro (precisao) do seu multimetro. Uma diferença de 20mV pode ser menor do que a precisao do seu multimetro. Meu Fluke tem precisao de 0,7% + 2 contagens do fundo de escala, o que em 6V daria 42mV, entao nao saberia dizer qual a medida correta (se a do multimetro ou a do PIC).
Voce tah tirando a media das 60 amostras ?
A referencia de tensao do AD eh estavel ? Eh precisa ?
Nao tem ruido que possa intereferir nas medidas ? (um simples cabo de força passando por perto).

Enviado:
17 Jan 2011 10:30
por cristian
sobre o teste ele é do paraguai ....
minha preocupaçao é mais com a varaiçao do valor do que com os 20mv
como aqui nao acha nada, to pensando em fazer a Vref ligado no LM317 ajsutado para 2,55v mas agora como calibrar ja que o teste nao é de confiança
ou pegar com divisor de tensao usando 2 res de 10k/1%
Voce tah tirando a media das 60 amostras ?
Sim veja o codigo acima.
A referencia de tensao do AD eh estavel ? Eh precisa ?
esta no vdd e é estavel ate onde sei
Nao tem ruido que possa intereferir nas medidas ? (um simples cabo de força passando por perto).
nao

Enviado:
17 Jan 2011 11:11
por _blackmore_
por não conhecer como funcionam as coisas no mikroC eu pergunto.
onde vc associa os valores lidos nos AD com as variáveis?
agora quanto ao seu problema ... já fiz vários e vários firms para conversão AD no PIC e nunca tive problemas como vc diz ... enfrentando tanto problema até ficar de saco cheio do AD do PIC ... eu uso a dita por muitos "porcaria" do CCS.
perguntas ... a divisão por 1024 ... não seria 1023? quantas leituras por segundo vc está fazendo e quantas vezes vc atualiza o display? qual a taxa de atualização dos valores em seu multímetro? qual o erro de seu multímetro?

Enviado:
17 Jan 2011 14:02
por cristian
tem 3 dias q estou emfrentando o problema
nao medir ainda mas deve ser 1 leitura a cada 10ms ai vou somando ao valor anterior depois divido pelo numero de amostras
1023 ou 1024 ja vi formulas usando tatno um como o outro inclusive esta q estou usando é de um post do fabim
sobre o teste nao sei nada vou ver se tem manual ....
mas a minha intriga e com a oscilaçao dos valores
como vou fazer um termometro pra ambiente se fica variando de 28.7c a 31.2 num ambiente sem ventilaçao
o display atualizo no final das leituras isso deve tar dando 1seg pelo q vejo o display mudar

Enviado:
17 Jan 2011 15:22
por MOR_AL
Você tem como ver a forma de onda da tensão que entra no CAD?
Coloca o osciloscópio em CA e 10mV/divisão (vertical) e uma varredura horizontal de 10ms/divisão (horizontal), mas é bom variar a base de tempo, para ver se aparece o tal AC que você mede.
MOR_AL

Enviado:
17 Jan 2011 15:24
por cristian
no canal coloquei um LM35 e no outro um pot ligado ao +5v e ao gnd
o do LM35 oscila assim como no pot

Enviado:
17 Jan 2011 16:20
por renatokodaira
Experimente usar soh um canal do conversor. Esquece a do pot. Leia soh o canal ligado ao LM35. Mude seu programa. Pode haver problema na conversao quando se fica chaveando os canais do conversor.
Sobre dividir por 1023 ou 1024, o correto eh 1023. Sao 1024 valores possiveis, mas 1023 intervalos entre eles. Veja:
valor0 - delta1 -valor1 - delta2 - ..... - valor1022 - delta1023 - valor1023
Logo sao 1023 "deltas", assim o range de valores deve ser dividido por 1023 intervalos.
O ideal seria voce ter uma referencia de tensao de 2,55V e usar somente os 8 bits mais significativos da conversao (o que ajuda a eliminar a oscilaçao nos 2 ultimos bits). Cada degrau teria 2,55V / 255 = 10mV, mas como o LM35 solta 10mV por grau celsius, sua resoluçao do termometro vai ser de apenas 1 grau (de qualquer forma, com 10 bits, voce teria teoricamente soh 0,25 grau de resoluçao e nao teria como medir decimos de grau celsius como deseja).

Enviado:
17 Jan 2011 16:34
por Andre_Cruz
cristian,
Já tive problema com A/D do PIC mutiplexando vários canais, e resolvi aumentando o tempo de conversão do A/D (TAD), e usei um delay de 500uS entre a conversão de um canal e outro.
Experimenta não custa nada !
Abraço