AMPERÍMETRO AC 20 AMPERES- C/ PIC 18F1220 E ACS712ELCTR-20A-T (REF318)

1

Medindo corrente alternada na faixa de 100mA a 20 Amperes com o módulo ACS712-20…

Medir corrente alternada nem sempre é fácil de ser feito. Nesta montagem, com ajuda de um sensor hall ACS712-20 e um PIC18F1220 poderemos obter uma medição em corrente alternada, muito útil para gerenciar algumas aplicações conectadas a rede elétrica (CA).
Veja o esquema elétrico abaixo:

Um possível método de obter a medição de corrente alternada é obter o valor de pico e depois converter para corrente RMS multiplicando o resultado de pico por 0.707. A versão 1, que pode ser obtida na pasta zipada do projeto, no final deste artigo, utiliza esta forma. Mas o problema é que a fórmula somente funciona com onda puramente senoidal.Em termos de corrente AC dificilmente isto acontece em virtude das variações da rede (ruídos) e da própria carga medida (ex. fonte chaveada). Em certas aplicações, creio que não haveria problemas em usar este tipo de abordagem para leitura de corrente alternada.
O processo de leitura envolve obter a média de 32 valores de picos, sendo cada valor de pico obtido por meio de 180 amostragens da senoide presente no pino 1 do PIC (capturando apenas o maior valor de uma das 180 amostras).
O método mais confiável é feito obtendo o valor RMS e depois obter o valor de pico por multiplicar pela raiz quadrada de 2 (ou seja 1.4142). Isto é feito na versão 2, que também pode ser obtida na pasta zipada do projeto, no final deste artigo.
Neste método obtemos 32 valores de amostragem de um único semiciclo positivo. O início da amostragem é sincronizada.
Esta sincronização é feita quando uma leitura da tensão no pino 1 ultrapassa o valor 512 (ou maior que 2,5 Volts) depois de ter ficado abaixo de 512 por um tempo (semiciclo negativo). O timer 0 determina os tempos de amostragem com precisão. Os valores das amostragens são individualmente elevadas ao quadrado e somadas. Em seguida obtemos a média por dividir esta somatória por 32. O valor RMS da corrente é obtido por extrair a raiz quadrada desta média. O valor de pico é obtido multiplicando a corrente média por 1.4142.
Nota: O valor de carga do timer 0 sendo de ‘0’ nos dá um valor de 255us se rodar direto, ou seja, sem ocorrer carga de valores. Como temos de fazer a carga, a uma perda de 2us neste processo. Também ocorre uma perda na verificação do flag do timer0 que poderá acrescentar um atraso de 2 ou 3 us. Isto totalizará 259 ou 260 us. O valor ideal p/ tempo exato para amostragem de um semiciclo positivo com frequência de rede de 60 Hz é obtido nesta fórmula:
0.5/(60*32) = 260 us.
O valor de carga do timer0 estará bem próximo do valor ideal (Isto se estes meus cálculos estiverem corretos, claro!).
Nota importante:
O último dígito poderá indicar ocasionalmente 0,04A, mesmo sem haver qualquer carga ligada no amperímetro. Isto acontece porque na conversão do ADC existe uma tolerância de mais ou menos 1 bit.
Ex.Suponha que a conversão sem nenhuma corrente no sensor ACS712 obteve 513 (para 2.5 volts de saída do ACS712). Subtraindo a ‘fator zero’= 512 o que resulta em 1.
Usando a fórmula:
corrente_rms= res * V_VCC / (RESOLUCAO_ADC * VAL_SENSITIVITY);
Substituindo valores: res= 1 * 5000 / (1023 * 100)
Obtemos: res= 0,048775.

Sendo mostrado no LCD apenas 2 casas após a vírgula: 0,04A . Note que toda leitura feita será sempre múltiplo deste valor. Portanto, a medição com carga poderá também oscilar em mais ou menos 0,04.
Esta montagem, portanto, não é indicada quando você desejar precisão nas casas após a vírgula.
Sobre o uso em frequência de rede de 50 Hz:
Caso necessite alterar para 50 Hz então terá que mudar a configuração do timer0 para trabalhar com o ‘prescaller’, dividindo por 2. Também deverá alterar o valor de carga do timer 0 para que resulte em 312 us de delay entre amostragens, conforme a fórmula abaixo:

0.5/(50*32) = aprox. 312 us.

Se for o caso poderá alterar em 2 pontos do programa:
t0con=0b11000000; //liga tmr0 c/prescallers div/2
#define VALOR_T0 0x64 (confira se está certo, pois não foi testado ainda)
Quanto a uso da Flash por este programa: 100% (não dá para acrescentar mais nada infelizmente).
Obs. Esta montagem é experimental, sendo de caráter didático, montada apenas em placa experimental (do tipo “Breadboard”), sujeita a “bugs” ainda não detectados. Está sendo fornecido os arquivos para que cada hobista possa alterar o programa segundo suas necessidades.

Segue pasta zipada com os arquivos da montagem:

AMPERIMETER_AC_ACS712.zip

Manuais:
PIC18F1220 DATASHEET
ACS712 DATASHEET

Curiosidades:
Glaucoma — distúrbio que provoca perda da visão
Você tem daltonismo?
Pontos que flutuam diante dos olhos?
Como conviver com a esclerose múltipla
Acidente de automóvel: ‘Só acontece com os outros’?

Outros assuntos:
Vamos nos sentir seguros algum dia?
Tragédias – O que fazer quando sua vida esta em risco?
O que eu preciso saber sobre abuso sexual – parte 2
Quando seu filho tem uma deficiência
O que você deve saber sobre transtornos mentais

Vídeos:
O que acontece quando morremos?
Por que Deus criou a Terra?
“Quem está do lado de Jeová?”
Você Pode Ter uma Família Feliz!

Até o próximo artigo!

1

Leave a Reply