AD PIC16F688 Variando

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

AD PIC16F688 Variando

Mensagempor jrmanke » 22 Nov 2007 20:24

Olá Pessoal,
Tenho um software com 2 entratras AD monitoranto uma tensão 0-5VCC, estou utilizando a referencia da fonte GND - VCC, mas quando a tensão do AD 1 varia, o AD - 2 varia 3 - 10 pontos, e vice e versa, e quando eu ligo a iluminação do display os dois AD variam cerca de 10 pontos. Detalhe a alimentação da iluminação do display ( LCD 8X2 ) vem da fonte -12VCC, pois se eu alimento com a mesma fonte do pic +5VCC a oscilação é ainda maior. Na entrada AD -1 e 2, coloquei um resisto de 10K para o GND, amenizou o problema mas não resolveu. Fiz um filtro onde eu fasso uma media ( 100 vezes ) da leitura do AD 1 e 2, amenizou mas não resolveu. O tempo de releitura do AD é de 100uS ( estava utilizando 10uS ), aumentando este tempo as oscilações diminuiram.

Alguem já passou por um problema semelhante??
AD 10bits.

Att

Johnny
Johnny Ricardo Manke

Blumenau - Santa Catarina
jrmanke
Byte
 
Mensagens: 114
Registrado em: 19 Out 2006 19:01
Localização: Blumenau - SC

Mensagempor jandom » 22 Nov 2007 22:41

estou tendo o mesmo problema, acrescentei capacitor de tantalo de 1uF, diminuiu tambem, mas continua oscilando; tambem fiz rotina para ler 25 vezes, mas nao resolveu....t'a dificil.........
jandom
Byte
 
Mensagens: 132
Registrado em: 03 Nov 2006 20:40

Mensagempor Maia » 23 Nov 2007 07:35

Parece ser problema de alimentação. Procura usar uma referência de tensão para o AD. Eu uso a MCP1541 da Microchip. Ela é de 4,096 V. Têm alguns exemplos de circuitos usando ela pela Internet.
Abraços,
Maia
Avatar do usuário
Maia
Byte
 
Mensagens: 348
Registrado em: 15 Out 2006 16:25
Localização: Rio de Janeiro

Mensagempor LeandroPIC » 23 Nov 2007 11:36

Coloque um capacitor de 1000uF na alimentação do PIC, o mais prossimo do PIC e um capacitor de 100nF, fassa um filtro passa baixas para cada Canal AD, tire a media da converção

OBservação: Não coloque nenhum resistor do PINO DO AD para o terra, isso gera um divisor resistivo ai sua leitura é falsa.........!!!!!!!!!!!!!!!!!
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Mensagempor jandom » 25 Nov 2007 00:32

LeandroPIC, temos necessidade de medir tensões maiores que 5 volts, então é necessário divisor de tensão!!!???
como fazer esse filtro passa faixa em c-ccs?
jandom
Byte
 
Mensagens: 132
Registrado em: 03 Nov 2006 20:40

Mensagempor Sergio38br » 26 Nov 2007 07:23

Bom dia a todos,

Jandom, para ler tensões maiores que 5 volts , vc precisa usar um divisor resistivo, a tensão máxima de entrada não pode passar de 5 volts, outra coisa, este divisor não pode ter a impedância maior que a permitida, veja o datasheet do pic para ter maior base, uma solução seria fazer um divisor através de resistores atuando na entrada positiva de um amplificador operacional com ganho de um. qualquer coisa posto um esquema no eagle para ilustração.



Abraços

Sergio
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor RobL » 26 Nov 2007 08:48

Caso seu divisor de tensão necessite ter mais que 10K resistivo use um OP na configuração de seguidor de tensão. Haverá um problema com off set e deriva térmica.
A tensão de referência tem que ser puríssima.

Um grande "segredo" é não chavear nehuma das outras portas como saída no momento da leitura do ADC.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor ze » 26 Nov 2007 10:03

use vcc e gnd EXCLUSIVOS para o ad e pic. ou seja não deixe passar corrente por eles. ex. gnd sai do sinal, vai DIRETO pro gnd do pic. não basta apenas a alimentação vcc da iluminação vir de outra fonte. o terra TAMBÉM. Geralmente os terras são unidos no capacitor da fonte. Eu uso um 7805 só pro pic e outro pra gentalha. otra coisa o seu sinal não está REALMENTE variando? veja com osciloscópio.
abrç
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor jandom » 26 Nov 2007 17:08

sim, varia um pouco, pois estou um medindo a tensao em cima de um resistor de 7ohm, vindo de um carrregador de celular. A ideia seria medir a tensao de saida gerada pelo carregador. Este por sua vez, tenta compensar a sua saida na hora que ligo este resistor; mas para acompanhar essa variacao, acompanho via osciloscopio e multimetro digital HP calibrado; essas variacoes nao sao notadas no multi, mas no pic e um absurdo!
jandom
Byte
 
Mensagens: 132
Registrado em: 03 Nov 2006 20:40

Mensagempor phophollety » 26 Nov 2007 17:40

jandom escreveu:sim, varia um pouco, pois estou um medindo a tensao em cima de um resistor de 7ohm, vindo de um carrregador de celular. A ideia seria medir a tensao de saida gerada pelo carregador. Este por sua vez, tenta compensar a sua saida na hora que ligo este resistor; mas para acompanhar essa variacao, acompanho via osciloscopio e multimetro digital HP calibrado; essas variacoes nao sao notadas no multi, mas no pic e um absurdo!



Qual sua taxa de aquisição no pic?

Não tem acesso a um scope? Nem que analógico?
"3 minutes of boring code review means 3 hours less fixing LSD (Little Stupid Detail)" Dr. Mike Smith
"Dê-me um ponto de apoio e uma alavanca e moverei o mundo" Arquimedes
"Quando vejo um Alfa Romeo passar eu tiro o meu chapéu" Henry FORD.
Avatar do usuário
phophollety
Dword
 
Mensagens: 1511
Registrado em: 15 Out 2006 13:00
Localização: Santo André São Paulo, Brasil

Re: AD PIC16F688 Variando

Mensagempor LeandroPIC » 26 Nov 2007 18:36

Tenho um software com 2 entratras AD monitoranto uma tensão 0-5VCC........


LeandroPIC, temos necessidade de medir tensões maiores que 5 volts, então é necessário divisor de tensão!!!???


Se vc ler direito nosso amigo quer medir uma tensão de 0 a 5v, ele disse que colocou um resistor de 10k para o terra, para tentar diminuir as variasões, E SOBRE ISSO QUE ESTOU ME REFERINDO, Se ele colocar o resistor vai fazer um divisor resistivo ai a medida é falsa.......( ENTENDEU )......

Agora se for uma tensão maior que 5v, vai te que ter um divisor!!!!!!!!!!!!!!!
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Mensagempor MOR_AL » 26 Nov 2007 19:38

Olá Johnny.

Vamos fazer algumas considerações:

CAD com 10 bits e referência de 5 V = resolução de 5/(2*1024) = 2,44mV.
Sua referência tem que ter uma variação de menos que 2,44mV, para mais ou para menos.
Exemplo: VRefMáx =< 5,00244V e VRefMín >= 4,99756.

Se sua referência é obtida da própria alimentação do PIC, já é um problema, tanto devido a comutação, como devido a variações de corrente em menor taxa que a comutação.
Se o seu circuito está montado em protoboard ou "aranha", é outro problema. As capacitâncias intereletródicas no protoboard são maiores, ocorrendo maiores interferências que uma montagem normal em PCI. Tudo isso sem falar das "antenas transmissoras" que são os fios com comutações e das "antenas receptoras" que são os fios que concorrem ao CAD.
Coloque o osciloscópio na escala de 5mV (AC) e monitore a tensão de alimentação diretamente no PIC e na entrada do CAD (esta com um valor constante). Coloque o eixo dos tempos em 1ms/div (ou 10 vezes mais lento que a taxa que você estiver fazendo sua aquisição).
Não trige o seu sinal, deixe-o rolar livre. Assim é mais fácil perceber as variações.

Já se passaram 4 dias e você não respondeu. Espero que seja porque você já tenha resolvido o problema. Sendo assim, compartilhe a solução com os colegas do fórum para não passarmos pelo mesmo problema.

MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor jrmanke » 27 Nov 2007 15:55

Desculpe pessoal a demora em responder,

Infelismente ainda não resolvi ( problema de tempo ).
O circuito esta montado em um proto mesmo realmente isso pode interferir muito.
Vou testar as dicas do pessoal esta semana e retorno a todos os resultados.
Também pretendo utilizar a referencia esterna do pic para certificar-se .

Att

Johnny

Ps. vou posta o codgo fonte tmb
Johnny Ricardo Manke

Blumenau - Santa Catarina
jrmanke
Byte
 
Mensagens: 114
Registrado em: 19 Out 2006 19:01
Localização: Blumenau - SC

Mensagempor jrmanke » 28 Nov 2007 20:26

Este é a função que utilizo para fazer a leitura do CAD.

void adc ( int canal )
{
int a = 0;
set_adc_channel (canal);
for(a=0;a<=100;a++)
{
valor_adc += read_adc();
Delay_us( 100 );
}
valor_adc = valor_adc/100;
valor_adc = (valor_adc+1)*500/1024;

return ;

}

Neste fim de semana vou configura-lo com a referencia externa ( +5VCC e GND ) conforme comentado anteriormente.

Ao introduzir um capacitor de 2200uF/35V na alimentação a oscilação reduzio muito ficou aceitavel, mas como o projeto vai ser montado em uma pequena caixa talvez este capacitor atrapalhe, caso esta seja a unica solução pretendo inserir o capacitor.

Sugestões estão abertas hardware ou software.

Obrigado a todos pelas dicas.

Att

Johnny
Johnny Ricardo Manke

Blumenau - Santa Catarina
jrmanke
Byte
 
Mensagens: 114
Registrado em: 19 Out 2006 19:01
Localização: Blumenau - SC

Mensagempor LeandroPIC » 29 Nov 2007 11:32

O capacitor pode ser um valor menor, vc tem que testar um que fique aceitavel..., um filtro passa baixas no pino do AD, e se vc tirar a media vai ficar uma "TETA"....


FALOU
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x