Ir ao conteúdo
  • Cadastre-se

Como medir corrente ac usando pic?


cart

Posts recomendados

Bom dia. Além da dica já dada, você pode pensar em um divisor de tensão na entrada, calculado para o fundo de escala de seu projeto. Então, se você quer medir até 110V, esses 110V serão reduzidos para 5V, logo, 0V a 110V de entrada corresponderão a 0V a 5V no pino do pic. Para proteger o pic, você pode colocar um diodo zener no pino. Se, por alguma razão, a tensão de entrada passar de 110V, o zener vai proteger o pic. Penso que você pode, primeiro, retificar (onda completa) e filtrar a tensão de entrada, pois isso fará a tensão eficaz 110V ir para a tensão RMS, passando dos 110V. Os cálculos, então, do divisor de tensão, serão feitos a partir da "nova" tensão (agora contínua). Imaginemos, então, que a tensão, depois de retificada e filtrada, "subiu" para 140V. Se você precisa que esses 135V sejam reduzidos para 5V, a atenuação será, então, 135/5 = 27. O circuito divisor seria algo do tipo:

+VCC ----|

|

|-|

| | R1

|-|

|

|--------> para o pic

|-|

| | R2

|-|

|

0V ----|

A fórmula mais simples para os cálculos, é:

a = (R1+R2)/R2

em que "a" é a atenuação.

Como o pic precisa de pouquíssima corrente para trabalhar, você "arbitra" o resistor R1 com resistência alta, por exemplo, 220K, o que dará uma corrente de cerca de meio miliampére. Daí, você calcula o R2, fazendo as substituições na fórmula (meça a tensão resultante ANTES de liga-la ao pic).

Bem, isso não isola o circuito da rede, como a dica anterior fará, mas lhe dá a possibilidade de fazer os seus testes e, com as devidas precauções, até ficaria assim definitivamente (rsrs).

Talvez você tenha que colocar um potenciômetro multivoltas no divisor de tensão para fazer o ajuste fino. E, lembre-se: é indispensável o uso do zener no pino do pic. Também, a filtragem da entrada deve ser boa. (Incoveniente: a resposta do projeto para quedas de tensão medida será lenta, por causa da demora na descarga do capacitor. Para amenizar esse incoveniente, pode-se pensar em um resistor em paralelo com o capacitor, para representar uma carga e promover a descarga dele).

Bons trabalhos.

Link para o comentário
Compartilhar em outros sites

Entendi. Sim, perfeitamente. É como uma resistência "shunt". Então, na verdade, você vai medir a queda de tensão sobre ela. O resultado você vai traduzir como medida de corrente. Então, se vai medir 5A, isso representa, sobre um resistor de 0,1ohm, meio volt (V=R*I)(em 110V, neste exemplo). É sempre bom lembrar (até para aqueles que usam o tópico como pesquisa e são mais iniciantes), que o uso disso é idêntico ao uso do amperímetro (e, de fato, é mesmo um amperímetro que está sendo montando), ou seja, vai ter que ligar o aparelho em série com a carga (na verdade, então, somente o resistor "shunt" ficará em série com a carga). Ademais, o resistor "shunt" deve ter potência suficiente, pois vai aquecer. No exemplo que cito aqui, 5A em cima de 0,1ohm representa 2,5W.

Outra coisa: você terá que retificar e filtrar esse sinal medido para o pic interpreta-lo corretamente. Como um diodo introduz uma queda de tensão de 0,7V, penso que você deverá fazer uma retificação em meia onda e, para contornar o "ripple" (penso que inaceitável em seu projeto), você pode fazer uma filtragem melhor, com um capacitor eletrolítico de 2200uF ou mais. Entendo que deva manter um resistor em paralelo com o capacitor, pelas mesmas razões que expus anteriormente. Não vai ficar grande pois, embora a capacitância seja alta, a tensão de trabalho será baixa. Levando isso em consideração, você talvez possa aumentar um pouco a resistência "shunt", para introduzir uma queda de tensão um pouco maior (embora para alguns circuitos de baixa tensão isso possa não ser bom), já que, só pra se ter uma ideia, no esquema que cito agora a queda de tensão no diodo é maior do que a queda de tensão do resistor.

Se você admitir, por exemplo, um resistor "shunt" de 0,25ohm, terá uma queda de tensão de 1,25V. Isso menos 0,7V da junção do diodo, lhe dará 0,55V para trabalhar. Se usar resolução do conversor AD de 10 bits, você terá degraus de 0,000537109V. Isso deve dar-lhe uma boa precisão. Esses cálculos foram feitos aqui rapidamente pensando em um fundo de escala de 5A. Tem que fazer os cálculos com correntes menores para a queda de tensão resultante e, então, se é possível trabalhar com ela no pic. Acredito que sim.

Bons trabalhos.

Link para o comentário
Compartilhar em outros sites

Boa Noite,

Para você converter corrente em tensão, o correto é utilizar o princípio de fonte de tensão de circuitos elétricos, onde é inserido um resistor em paralelo com a fonte de corrente, em seguida basta utilizar a lei de ohm, para determinar o resistor ideal. Por exemplo, se o seu sinal for de 0 a 20 mA, basta inserir uma resistência de 250 ohms em paralelo com a entrada e você terá 0 a 5 V. Para limitar a tensão em 1 a 5 volts será necessário projetar um circuito comparador, limitando a tensão superior a 1 volt, ou apenas desprezar tal valor no momento de programar o microcontrolador. É isso espero ter ajudado. Se precisar tenho um modelo que funciona muito bem, converte 0-20 mA em 0 - 5V.

Link para o comentário
Compartilhar em outros sites

De acordo com as dicas dadas, montei o seguinte circuito com rectificador tipo super díodo, o problema é que não esta funcionando apenas obtenho 2v na saída não alteram com a corrente.

Foi utilizado um resistor 0.5 ohom 5W, no secundário do TC como no desenho.

Onde está o erro?

Circ%20Transformador%20intensidade.jpg

Link para o comentário
Compartilhar em outros sites

Estou fazendo um com o ACS712....

Falta implementar um código melhor pois está dando um pouco de erro no resultado em alta corrente.

Estou querendo comprar o CI para testar na prática.

Veja que com corrente AC, ele me entrega um valor de tensão variante.

exemplo_250mA.png

exemplo_2630mA.png

exemplo_4440mA.png

Ler corrente DC foi mamão com açucar, mas a Ac tô tendo que estudar mais.

Não vou colocar o código pois está em fase de desenvolvimento ainda.

Falou

Link para o comentário
Compartilhar em outros sites

Caro advtec

A Quebra de tensão provocada pelo resistor deveria originar alguns milivolts que variam de acordo com a corrente (A) neste caso ac, em teoria com o esquema que montei o rectificador "tipo super diodo" deveria rectificar essa tensão ac em dc.

Se alguem tiver uma ideia de onde esta o erro gostava de conseguir montar sem usar ci.

Link para o comentário
Compartilhar em outros sites

Sim. Entretanto, como o resistor (o resistor que entrega a "amostra" representada pela queda de tensão) está em paralelo com a fonte de tensão, a queda de tensão sobre este resistor será sempre fixa. No circuito paralelo, a tensão é a mesma para todos os braços do circuito. Cada braço, portanto, terá a sua queda de tensão fixa, dependendo da resistência do braço. A soma das correntes dos braços do circuito será a corrente total. A soma das quedas de tensão em cada braço resultará no valor da tensão da fonte. Por isso, no circuito paralelo, independentemente da carga que você acrescentar à fonte (que estará em paralelo com o próprio resistor do seu circuito), a corrente que circula pelo resistor que lhe entrega a "amostra" será sempre a mesma. É por isso que os resistores "shunt", nos amperímetros, ficam em série com a carga que está submetida ao teste (por isso os amperímetros são colocados em série com a carga). Então, se você trocar o resistor que está aí em paralelo, você vai perceber que a queda de tensão muda (e ficará fixa no novo valor). Só haverá alteração da tensão em cima do resistor se houver variação da tensão da fonte.

Bons trabalhos.

Link para o comentário
Compartilhar em outros sites

Colega advtec, se observar o desenho que fiz o resistor esta em serie com a carga ou seja seria usado um Transformador de corrente (tc) para converter correntes maiores numa escala de 0 a 5 A (ac) e penso que serve de isolamento entre a corrente a medir e a amostra.

Em sua opinião que alterações poderiam ser feitas ao circuito?

Circ%20Transformador%20intensidade.jpg

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...
Estou fazendo um com o ACS712....

Falta implementar um código melhor pois está dando um pouco de erro no resultado em alta corrente.

Estou querendo comprar o CI para testar na prática.

Veja que com corrente AC, ele me entrega um valor de tensão variante.

exemplo_250mA.png

exemplo_2630mA.png

exemplo_4440mA.png

Ler corrente DC foi mamão com açucar, mas a Ac tô tendo que estudar mais.

Não vou colocar o código pois está em fase de desenvolvimento ainda.

Falou

beleza.. Mateus.. passa a dica aê para medir CC, estou querendo colocar em uma fonte que estou fazendo...

Link para o comentário
Compartilhar em outros sites

Circuito:

circuito_saida.png

Código:

#include <16F877A.h>

#device adc=10

#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc > 4mhz
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES BROWNOUT //Reset when brownout detected
#FUSES NOLVP
#FUSES NOCPD //No EE protection

#use delay(clock = 4000000)

#include <LCD.C>

int16 ad_lido;
int16 constante = 512;
int16 corrente;

float temp;

void main()
{
lcd_init();

SETUP_ADC_PORTS(AN0);
SETUP_ADC(ADC_CLOCK_DIV_8);

set_adc_channel(0);
delay_us (20);

while (TRUE)
{
ad_lido = read_adc();

corrente = 264 * (ad_lido - constante);

temp = corrente/10000.0;

printf (lcd_putc, "\fAD=%lu\ni=%fA", ad_lido, temp);
delay_ms (200);
}
}

Veja que possui um pouco de erro. Nao descrobri porque.

Preciso comprar o CI e montar na prática para verificar.

Falou

Link para o comentário
Compartilhar em outros sites

Obrigado pelo código postado, deu pra corrigir o que estava a fazer. Mas o que queria mesmo era uma medição AC (mas nisso posso me virar).

Por outro lado, pelos testes que fiz e pelas imagens que foram postadas vi que o valor minimo na saida do ACS é de 2,5v. será que há alguma maneira de acertar isso pra 0v??

Link para o comentário
Compartilhar em outros sites

Então, de acordo com o Datasheet dele, quando você tem 0A (nenhuma corrente) o sensor te dá VCC/2 na saída dele.

Quando você mede AC, você tem uma senoide que fica oscilando no 2.5V pois a alimentaçao dele é 5V.

Ainda não consegui medir com eficiencia a corrente AC. Ta dando uns 300mA de erro. Muita coisa.

Mas estou usando esse site para me ajudar: PIC interface with ACS712 Current Sensor

Mas sempre dá o erro. Então vou comprar o módulo do CI primeiro para testar na prática. O proteus já está me irritando.

Falou

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...
  • 5 meses depois...

Consegui medir a corrente AC, mas estou com alguns problemas. Antes de medir o sinal pelo PIC rectifiquei-o, o que tira um pouco de "verdade" no sinal alternado, mas dá para o caso. Depois de tentar varias formulas de conversão, fiquei com essa:

float sinal,sinal2;

float conversao(){

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

}

O problema é que o circuito tem uma péssima precisão, e o valor no LCD varia muito, mais ou menos 0,3A, e na pratica essa variação se faz presente mesmo quando não a sinal algum a ser medido.

Alguem tem uma dica para superar isso? Abaixo está uma parte do circuito usado:

154843_3817576096178_814447241_n.jpg

Link para o comentário
Compartilhar em outros sites

  • 5 meses depois...

Olá LEOPUENA, Tive o mesmo problema de variação no LCD em um termomito, depois de tentar de tudo eu fiz uma media de leitura que resolveu meu problema em 99%.


for (i=1;i<=500;i++)
{
set_adc_channel(0);
delay_us(20);
valor = valor+read_adc();
adc=valor/500;

set_adc_channel(1);
delay_us(20);
valor_2 = valor_2+read_adc();
adc_2=valor_2/500;
}

sub = adc - adc_2;
tempe = (1.5 * sub * 5.33) / 1024;


Link para o comentário
Compartilhar em outros sites

Olá LEOPUENA, Tive o mesmo problema de variação no LCD em um termomito, depois de tentar de tudo eu fiz uma media de leitura que resolveu meu problema em 99%.

Ok Mauroviana, também fiz isso, o vtrx passou a dica em um outro tópico. Eliminou uma boa parte do erro, mas continuou a oscilar (minimamente) mesmo sem corrente nenhuma.

estou tentando fazer a leitura de corrente alternada também..mas estou com algumas dificuldades na progamação..voce poderia passar a sua progamação para eu ter a ideis de alguns comandos que você usou e tal..

Então POIN. eu postei a função da conversão, lembrando que fiz alterações como sugerida pelo mauroviana. Mas qual é a sua duvida exactamente? Não sei se posso postar o programa.

A conversão para o ACS712-30A, ficou assim:



////////////////////////////////////////////////////////////////////////////////
float conversao(){

int y;
Media = 0;
for(y=0;y<=120;y++){
delay_us(100);
Media = Media + read_adc();
}
sinal = (media / 120);
sinal2 = (sinal*5.0)/1023; //0-->5v
return ((sinal2-OFFSET)*12); //0--30A
}
float Media, sinal,sinal2;

Link para o comentário
Compartilhar em outros sites

Olá a todos.

Não estudei profundamente este módulo conversor mas, a saída dele, quando sua entrada é submetida à corrente alternada, fornece corrente contínua? Esta corrente contínua já é o resultado da tomada de medidas de pico? Isso porque, se assim não for (principalmente se a saída do módulo for corrente alternada), fazer médias de leituras simplesmente resultará em amostrar a senoide em vários pontos dela, ocasionando oscilações. Neste caso, seria importante o algoritmo amostrar o sinal de pico.

Neste post http://www.asm51.eng.br/phpbb/viewtopic.php?f=10&t=14160 há uma discussão sobre este tema e, mais ao final, um membro tece comentários técnicos sobre a possível explicação da diferença de leitura de 300mA.

Bons trabalhos.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

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

×
×
  • Criar novo...