Bom, primeiro já antecipo que testei muitos, mas muitos mesmo, códigos fonte encontrados tanto aqui no LDG quanto em outros locais, também criei meus proprios códigos mas não consigo ter uma leitura satisfatória no sensor de corrente ACS712 de 5 ampere. Estou tentando ler corrente contínua, 12 volts.

A própria leitura crua da porta analógica, testei desde a 0 até a 5, com ou sem carga é a mesma, 14. Testando com outra placa arduino (robocore) o valor se mantem em 18, testei com 5 sensores , sendo quatro de 5 amperes e dois de 20 amperes. Alguma sugestão?

Exibições: 2439

Responder esta

Respostas a este tópico

boa noite Maurivan.

    Só olhei seu código "teste1.ino". O outro não olhei, mas irei ver  logo mais.

    Altere o "loop" no "teste1.ino", como mostro a seguir:

    Isto irá mostrar a média das amostras da leitura "crua" que vc mencionou.

    Maurivan, tá dando "pau" no site, e não consigo anexar o arquivo modificado, por isso coloquei o print.

   Abrçs,

   Elcids

Opa, boa tarde, Vou fazer o teste logo mais e posto resultados aqui.

Obrigado

Aqui o sensor ligado, alimentado por fonte externa, 5 volts, 1,5Amperes, via placa de prototipação, sem carga de consumo.

Sem carga no sensor ACS712 ? - Correto !

1024 / 2 = 512 ( o zero Ampere é igual a 2,5V) 

Essas variações podem ser limitadas com a dicas que eu dei sobre o uso de capacitores. 

Aqui o sensor ligado, alimentado por fonte externa, 5 volts, 1,5Amperes, via placa de prototipação e

como consumo uma lâmpada 12volts de 60watts, logo com 5amperes, alimentada por fonte de alimentação de pc.

Como podem ver, não há variação significativa da leitura, mesmo na capacidade máxima do sensor que é de 5 amperes.

Consumo 5 ampéres = 520  ??

Alguma coisa montada errada !! 

Mostre o diagrama da montagem e envie um foto detalhada. 

ok Maurivan, boa noite.

      Fiz a análise dos valores, considerando a "leitura bruta" (ou "crua" como vc disse), e parecem estar de acordo com o esperado (já fiz uma análise detalhada da questão).

      Por favor, se vc puder postar aqui como está ligado o ACS, a respeito da alimentação do mesmo (ou seja, de onde ela vem), e como estão ligados os  sinais ao Arduino, ajudará bastante a conclusão.

      Uma vez que já fiz uma análise detalhada da questão, logo  mais irei postar aqui uma solução para seu problema, usando o ACS.

       Abrçs,

       Elcids

Bom dia Maurivan, 

Já ajudei vários colegas do Lab com projetos com o ACS712.

Favor informar qual faixa de corrente pretende medir. 

O sensor ACS712 não é muito preciso. E muito ruim para medições de correntes baixas - na faixa de miliamperes. 

A tensão de referência de  5V precisa ser estável e precisa (meça essa tensão no pino AREF do Arduino) . 

Instale um capacitor de 10 uF/16V entre esse pino e o terra. 

Instale um capacitor de 10 nF na entrada analógica do Arduino. 

Aterre as outras analógicas sem uso. 

   Conversor ADC 10 bits do Arduino:

   5 V / 1024 = 4,88 mV    (bit menos significativo) 

   18 x 4,88 mV =  87 mV  (medição sem carga) 

Sensor ACS 712 -5B :

  Sensitividade = 185 mV / A  ( alterou esse valor no seu programa ?) 

  Importante saber que o Zero Ampéres do sensor corresponde à 2,5V na entrada analógica do Arduino. 

  - 5,0  A => aprox 1,5  V

  + 5,0 A => aprox 3,5 V

 Medição =  87 / 185  = 0,47 A ???? sem carga 

Datasheet do ACS 712:

https://www.allegromicro.com/~/media/files/datasheets/acs712-datash...

Minha sugestão :

http://labdegaragem.com/profiles/blogs/m-dulo-sensor-de-corrente-e-...

Favor informar qual faixa de corrente pretende medir -> Pretendo mediar a geração de dois paineis solares, sendo um fixo e outro móvel(controlado com ldr´s), então teremos algo em torno de 15 volts, com a capacidade máxima dos painéis de 10watts (sei que a potência é baixa mas é um projeto de TCC).

Sensitividade = 185 mV / A ( alterou esse valor no seu programa ?) -> Sim, fiz conforme o sensor que estou usando, 4 modelos para 5 amperes e dois modelos para 20 amperes, logo 185 e 100mV.

E muito ruim para medições de correntes baixas - na faixa de miliamperes.-> Justamente, esse pode ser um problema, já que vou medir miliAmperes mesmo.

Se esta fazendo projeto com Painéis solares, esqueça o ACS712 .

Minha sugestão - MAX471 :

http://labdegaragem.com/profiles/blogs/m-dulo-sensor-de-corrente-e-...

bom dia Maurivan.

        Como eu havia dito, fiz a análise do seu problema.

        E devido a alguns resultados que vc obteve, me parece que seu problema não era somente o Programa, ou seja, sou levado a considerar que vc tem algo errado no design do seu Hardware. Mas não tenho como afirmar o que pode ser, uma vez que vc não postou o mesmo aqui (principalmente a ligação do "sense" do ACS ao Painel/Carga, e a ligação da saída do ACS ao Arduino).

       Então o que eu podia fazer era implementar um Condicionamento de Sinal para que fosse possível alcançar um certo nível de precisão na medição, mesmo usando o ACS, o qual possui fundo de escala bem acima daquele que vc precisa. Relembrando a informação que vc passouPainel com Potência de 10W e saída de 15V. Assim fiz o condicionamento considerando essa faixa de potência e tensão, ou seja, para uma corrente entre 0 e 0,67A (sendo 0,67A = 10W/15V), que são os limites mínimo e máximo possíveis para seu Painel.

       O resultado que obtive, ficaram exatamente dentro do que se esperava, conforme pode-se ver pelos prints a seguir (para "zoom" clique nas figuras, ou abra em outra guia do seu navegador):

       1) sem carga ligada ao Painel, resultando uma corrente nula:

       2) "puxando" a máxima corrente permissível do Painel (0,67A para Potência máxima):

       3) "puxando" correntes cada vez menores, para Potências entre 0,625W e 5W. Ver as quatro figuras seguintes:

       Para as menores correntes, note que há algum desvio, mas ainda é possível avaliar a corrente. No entanto pelo que vi no datasheet do ACS, esse desvio é provavelmente devido à menor linearidade do sensor nos extremos de medição (algo muito comum em quase todos os sensores). Esse erro de linearidade pode ser compensado por programa (embora eu não o tenha implementado nesta versão).

      Fiz a variação da Corrente pelo ACS, pela seleção do resistor de carga ("RL") através de uma chave seletora (SW1 no circuito). A verificação do valor da corrente, é feita pela comparação do valor medido pelo Arduino, com a medição indicada por um Amperímetro ligado em série com a malha da carga.

     Observe também que fiz um mecanismo para ajuste do "zero" e do "fundo de escala", assim permitindo compensar erros de offset do circuito de Condicionamento de Sinal. Este mecanismo é composto pelos botões "Zero" e "Full", além do tratamento dos mesmos pelo programa, que recalcula estes limites quando os botões são acionados. Em suma, isto acaba sendo um mecanismo de calibração para o Sistema de Medição.

      Em ambientes muito ruidosos, um Filtro "RC" deve ser inserido entre  a saída de U1A e a entrada "+" de U1B. Este filtro deve ser bem calculado, e embora seja um cálculo simples, diversos aspectos do Sistema devem ser observados para se determinar a frequência de corte do mesmo. Além disso os valores do RC devem casar perfeitamente a impedância entre U1A e U1B (um ponto muito esquecido ou negligenciado por muitos por aí).

      Apesar dos resultados bastante animadores, obviamente há um limite de precisão para o ACS712 (o erro do mesmo no seu "full scale" pode chegar a 1,5%). Observe no entanto, que é um equívoco usar os modelos de 20A e 30A, pois embora a sensibilidade seja de 100mV/A e 66mV/A nestes modelos, o maior "range" de medição resulta em menor precisão (como o range de 20A é 4 vezes  maior que o range de 5A, acaba descompensando totalmente a melhor sensibilidade do modelo de 20A).

      Caso vc ainda esteja trabalhando no seu Sistema de medição, irei postar o resultado completo, com o código e simulação no Proteus.

      Espero estar contribuindo com os resultados que apresentei.

       Abrçs,

       Elcids

Bom dia Elcids, 

Vi que você fez vários testes com o ACS712. Esses testes foram com um simulador ?

Será que o colega Maurivan esta usando o mesmo circuito (com o MCP609) que você apresentou ?

Obrigado

Gustavo

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço