Página 1 de 1
Medição Corrente AC c/ ACS712

Enviado:
05 Nov 2012 08:16
por daniel.sloczynski
Olá!
Estou testando o CI ACS712, porém ainda não tive êxito na leitura.
Quero medir corrente AC com ele. Com o circuito sem carga o conversor AD indica 512 (10 bits), que conforme o datasheet seria o valor de 0 corrente (VCC/2).
O modelo que estou usando é para 20A, tem um resolução de 100mV/A.
O problema é que quando ligo alguma carga o conversor AD não apresenta nenhum valor "fixo", no caso, oscila muito.
Já tentei fazer média do valor, mas mesmo assim, o valor muda consideravelmente a cada média feita.
Liguei a saída dele diretamente no pino AN0 do PIC.
Gostaria de sugestões do pessoal que tiver interessado em trocar uma idéia a respeito.
Desde já agradeço pela atenção.

Enviado:
05 Nov 2012 13:28
por JeanPaul
Olá Daniel,
Antes de mais nada ... como você está fazendo esta média?
Você está tirando a média de um sinal AC?
Que valor você precisa medir ... Irms, Ipico, Imed.
Explique um pouco mais.
[]'s
Jean Paul

Enviado:
05 Nov 2012 13:50
por xultz
Daniel, você já olhou com cuidado a saída do ACS no osciloscópio? Aparece ruído ali? É preciso analisar com cuidado para achar o culpado, que pode ser o ACS ou o PIC.
Você está retificando a saída do ACS?

Enviado:
06 Nov 2012 06:16
por daniel.sloczynski
Primeiramente obrigado pelo interesse de me ajudar, pessoal.
Eu quero medir a Imédia.
Ainda não liguei o osciloscópio, vou ver se faço isso hoje.
Então, eu faço a média lendo o valor 60 vezes, acumulando em uma variável e depois fazendo a divisão.
Acontece que quando ligo uma carga o conversor AD, mesmo com média apresenta valores oscilantes. Aí testei com corrente DC, e funcionou certinho.
Estou ligando a saída do ACS diretamente no canal AD. Pode ser isso?
Estou alimentando meu circuito com bateria.
Re: Medição Corrente AC c/ ACS712

Enviado:
06 Nov 2012 06:26
por andre_luis
daniel.sloczynski escreveu:...Já tentei fazer média do valor, mas mesmo assim, o valor muda consideravelmente a cada média feita...
Daniel,
Qual é a taxa de amostragem que voce configurou o conversor A/D ?
( tipo, quantas amostras cabem por semi-ciclo da senóide... )
Dependendo dessa proporção, isso poderia explicar a disperção no valor da média calculado.
+++

Enviado:
06 Nov 2012 06:27
por MOR_AL
O que o ACS fornece em sua saída? O que consta no manual?
Valor médio de uma senóide é ZERO mesmo.
O valor rms da senóide é o valor equivalente CC, que forneceria a mesma potência para a carga, se a fonte fosse CC. É diferente de zero.
MOR_AL

Enviado:
06 Nov 2012 06:40
por daniel.sloczynski
Hum... Entendi.
É assim que eu estou lendo:
Compilador MPLAB C18
PIC 18F2525 @ 8 Mhz
- Código: Selecionar todos
void init_adc (void)
{
//inicializa conversor AD (detalhes das macros no C18 Libraries)
OpenADC(ADC_FOSC_8 & ADC_RIGHT_JUST & ADC_4_TAD, ADC_CH0 & ADC_INT_OFF & ADC_VREFPLUS_VDD & ADC_VREFMINUS_VSS, ADC_1ANA);
//configura pinos como entradas
TRISAbits.TRISA0=1;
}
//le canal AN0 (faz amostragem de 60 vezes e tira média)
void le_canal_analogico0 (void)
{
SetChanADC(ADC_CH0);
for(CONTADOR_AD1=0,SOMA1=0;CONTADOR_AD1<60;CONTADOR_AD1++)
{
Delay10TCYx(5);
ConvertADC();
while(BusyADC());
RESULTADO1=ReadADC();
SOMA1+=RESULTADO1;
}
SOMA1/=60;
CANAL_AD0=SOMA1;
}
Tô fazendo m...? Sim ou com certeza?
[/code]

Enviado:
06 Nov 2012 07:50
por xultz
Só dá prá saber o tamanho da caca vendo o teu esquemático, se puder postar, fica muito mais fácil de ajudar.

Enviado:
06 Nov 2012 08:57
por daniel.sloczynski
Bom pessoal, tá aí o esquemático.

[/img]

Enviado:
06 Nov 2012 09:10
por xultz
Cara, se no teu ACS tá passando uma corrente senoidal (e eu tenho 99,9% de certeza que sim), na saída do ACS você tem um sinal senoidal também.
Sem a carga, não tinha corrente e você mediu zero certinho. Quando colocou a carga, passou a circular a corrente e teve o sinal na saída.
Este é o motivo de você ter valores oscilando, conforme explicou no primeiro post.
Se observar no datasheet do ACS, na página 12, aplicação 2, tem um circuito com detetor de pico. Na verdade é um retificador feito em cima de um operacional, também chamado de "diodo ideal", porque o operacional consegue eliminar o erro da queda de junção em cima do diodo. Ele também tem um FET para descarregar o capacitor que armazena o valor de pico, isso é importante porque o ideal é medir o pico, descarregar, esperar carregar e depois medir de novo.
Você pode fazer isso em firmware também, ou seja, analiza o valor máximo medido, ciclo a ciclo. O que não adianta fazer é tirar a média de tudo, porque a média de uma senóide é um valor que tende a zero.
Me fiz entender?

Enviado:
06 Nov 2012 09:38
por daniel.sloczynski
Cara, agora eu entendi! hehe
Eu tenho duas opções, ou montar o circuito ou tentar fazer isso por firmware.
No caso, como eu poderia fazer isso por firmware? Não tô conseguindo imaginar o algoritmo na minha cabeça. Sou muito leigo ainda.
Isso se não for pedir demais. Vocês já me ajudaram muito entendendo a questão. Obrigado.

Enviado:
06 Nov 2012 10:44
por xultz
Mais ou menos assim:
- Cria uma variável chamada "pico"
- Atribui zero para "pico"
Loop de medição:
- Faz aquisição do conversor AD
- Leitura é maior que "pico"?
Se sim, guarda leitura em "pico"
- Reinicia Loop
Após várias leituras, "pico" terá o valor máximo medido
Porém, se a corrente diminuir, você ficará com aquele valor de pico. Então, de tempos em tempos (por exemplo, a cada meio segundo), apresenta o valor de "pico" no display, zera ele e recomeça o ciclo

Enviado:
06 Nov 2012 15:10
por daniel.sloczynski
Agora está funcionando. Ainda está com erro de +- 300mA com relação ao multímetro.
Talvez deva fazer algum ajuste fino ainda.
Xultz, muito obrigado pela sua ajuda e também aos demais colegas que se interessaram em sanar minhas dúvidas.

Enviado:
11 Nov 2012 17:31
por Andre_Cruz
daniel.sloczynski,
O xults te ajudou a encontrar o I de pico, que é meio caminho andado.
I médio de um sinal senoidal completo (Os dois semi ciclos) é 0, você pode calcular o I médio de apenas um semi ciclo do sinal basta você multiplicar o I de pico por 0,637.
Como não me lembrava muito bem os valores retirei desse documento
http://pt.scribd.com/doc/36135435/8/VALOR-DE-PICO qualquer dúvida consulte ele.
Acho que isso explica a diferença na leitura entre seu circuito e o multímetro.
Falando em multímetro os bons multímetros leem o RMS do sinal, você pode testar fazer seu circuito fazer a leitura do RMS do teu sinal.
Acredito que exista maneiras mais elaboradas de fazer essa medida mas que eu conheço é essa.
Abraço

Enviado:
11 Dez 2012 09:27
por daniel.sloczynski
Obrigado pelas dica André!
No momento estou com esse projeto parado, mas quando retomar, irei reformular meus cálculos.
Abraço.