Ajuda para medir corrente alternada ACS712- 30A e ADS1115

Tenho um projeto para realizar leitura de corrente alternada com ACS712-30A e o Arduino UNO, como o conversor analógico/digital do Arduino tem baixa resolução, estou utilizando o ADS1115 para melhorar a precisão, os links dos componentes estão abaixo. Pesquisando encontrei o seguinte código num tópico do Lab (Link tópico método raiz do valor quadrático médio) para medir corrente alternada com ACS721-30A com Arduino: http://pastebin.com/5bGdGEiu. Eu fiz adaptações desse código para utilização com ADS1115, segue o código: http://pastebin.com/CRQ2f00r, a lógica é a mesma do anterior, só mudam os valores para as conversões.

Fazendo leitura com o código que utiliza o conversor analógico do Arduino eu obtive resultados razoáveis, porém, utilizando o código do ADS1115, que era para melhorar a precisão, obtive resultados bem abaixo dos conseguidos pelo conversor analógico/digital do Arduino.

Lendo outro tópico (Link tópico explicação RMS tensão de pico) eu percebi que esse método anterior pode estar incorreto, pois a amostra da tensão alternada pode variar, com isso não conseguiria resultados precisos. Nesse mesmo tópico eu encontrei o método de calcular a corrente alternada através da tensão de pico produzida pelo ACS712-30A, segue o link: http://pastebin.com/8sAQXe6Y. Contudo, com esse método da tensão de pico o resultado ficou maior que o esperado utilizando a porta analógica do Arduino, pois medir a corrente alternada de uma lâmpada num multímetro e logo após com o código acima, os resultados do código de tensão de pico ficaram bem maiores. Pensei em adaptar esse método de medir através da tensão de pico para utilização com ADS115, mas ainda não conseguir fazê-lo funcionar corretamente.

Alguém da comunidade já trabalhou com o sensor ACS712-30A e conseguiu alguma solução para medir corrente alternada?

Link ACS712 30A:http://www.allegromicro.com/~/media/Files/Datasheets/ACS712-Datashe....

Link ADS115: https://learn.adafruit.com/adafruit-4-channel-adc-breakouts?view=all.

Link tópico método raiz do valor quadrático médio: http://labdegaragem.com/forum/topics/ajuda-com-o-codigo-do-sensor-a....

Link tópico explicação RMS tensão de pico: http://labdegaragem.com/forum/topics/ajuda-capturar-valor-sensor-de...

Exibições: 4591

Responder esta

Respostas a este tópico

Bom dia Brenno. 

Primeira dúvida : quais aparelhos elétricos pretende medir a corrente ? 

Lembre-se que a maioria dos aparelhos de uma residência, o consumo é baixo ( em relação ao seu sensor de 30 A). Talvez seja melhor usar um sensor ACS712_05B que mede correntes de até 5 A. 

Como pretende usar um conversor ADC de 16 bits com 4 canais, sugiro que faça testes exaustivos antes com ele separadamente. Faça a montagem com Arduino, coloque um potenciometro na entrada para ajustar a tensão. Conecte esse potenciometro no 5V e com um multímetro de precisão, confira os valores lidos com o seu programa. Depois que o seu programa estiver afinado, ai conecte o sensor ACS712. 

Lembre-se de aterrar (conectar no GND) as outras entradas que não estão em uso.

Por exemplo , a corrente em um chuveiro elétrico pode variar até 50 A , dependendo do modelo e da tensão da rede. 

Com a tensão da rede de 127 Vca, normalmente as correntes são maiores. 

Ex: Chuveiro Lorenzetti 

   - para 127V , Potência de 5500 W , o disjuntor deve ser de 50A

   - para 220V, Potência de 5500W , o disjuntor deve ser de 30 A

http://www.lorenzetti.com.br/storage/upload/pdf/DC0015_arq1.pdf

Considerações importantes na escolha do conversor ADC:

Você informou que esta usando o ADS1115, devido ao maior numero de bits na resolução. Muito bem - 16 bits. 

TAXA DE AMOSTRAGEM: 

Mas você verificou a taxa de amostragem ? Viu que ela pode variar entre somente 8 amostragens/segundo e 860 a/s ?

Levando-se em conta que vai monitorar uma tensão AC de 60 Hz, recomendo que use a maior taxa de amostragem (860 sps)  Samples per second = amostragens por segundo. 

Vamos ver quantas amostragens teremos em um ciclo de tensão da rede. 

Período = 1 / 60 Hz = 16,66 ms 

Taxa de amostragem :

Período = 1 / 860 = 1,16 ms 

16,66 / 1,16 = 13,79 amostras 

Portanto para ciclo de 60 Hz, você poderá ter somente 13 amostras aproximadamente. 

Eu acho pouco !  Existe uma técnica mais complexa de over sampling para sinais constantes, 

mas vai complicar ainda mais e eu não sei se atenderia as necessidades. 

Dependendo do procedimento de leitura da corrente pode dar certo, mas isso tem que ser lembrado. 

Referências :

]http://dan-scientia.blogspot.com.br/2011/10/o-que-e-amostra-em-audi...

http://8ondassonoras.weebly.com/caracteriacutesticas-de-uma-onda-pe...

Aguarde a continuação...

Sim, estava pensando nesse problema, você tem razão. Eu vou comprar o ACS712-5A e procurar uma forma para resolver o problema da amostragem. com ADS1115 

Muito obrigado pela ajuda.

Considerações importantes na escolha do conversor ADC: (continuação) 

Resolução de bits : 

Outro parâmetro importante para a definição de um conversor ADC é a resolução de bits. 

No caso do Arduino, o conversor ADC tem 10 bits de resolução. 

Portanto como vai medir uma variação de 0 a +5V com 10 bits ( 2 elevado a 10 = 1024) , cada medida menos significante (bit) terá o valor de 4,88 mV. 

              5V / 1024 = 0,00488

No caso do Conversor ADS1115 ele tem 16 bits de resolução.

É uma excelente resolução ( 2 elevado a 16 = 65536) .

Mas ele permite medições de tensões positivas e negativas. E tem um amplificador de ganho ajustável. 

No caso do ganho 2/3, o fundo de escala varia entre +6,144 V e -6,144 V.

A variação total é de  2 x 6,144 = 12,288V 

Para medições entre 12,288V  cada bit menos significativo terá então 187,5 micro Volts. 

          12,288 / 65536 = 0,0001875

O ADS1115 permite medições simples ou diferenciais. Ao medir as tensões no sensor ACS712, os dois modos podem ser testados. Só que no modo diferencial eu colocaria em uma das entradas um regulador de tensão de referência. 

Sabendo-se que a tensão de referência do ACS712 é a metade do VCC. Para VCC de 5V, o zero do sensor teria 2,5V. Acho que ficaria bem interessante ! 

AD580 - High Precision, 2.5 V IC Reference

http://www.analog.com/media/en/technical-documentation/data-sheets/...

Entradas de terminação simples medir a tensão entre o canal de entrada analógica (A0-A3) e terra analógico (GND).

Entradas diferenciais medir a tensão entre os dois canais de entrada analógica. (A0 e A1 ou A2 e A3).

Medições diferenciais oferecerem maior imunidade à ruídos electromagnéticos !

Referências:

https://cdn-shop.adafruit.com/datasheets/ads1115.pdf

https://learn.adafruit.com/adafruit-4-channel-adc-breakouts?view=all

Mais uma vez obrigado pela ajuda. Suas considerações são totalmente relevantes, poderia trabalhar da maneira que você explicou com a leitura diferencial, os testes que realizei foram utilizando o modo simples. Contudo, acredito que o problema da amostragem é a minha maior limitação, tenho que encontrar um método para conseguir a amostragem correta da tensão alternada gerada pelo ACS712-30A, o que até agora não obtive sucesso.  

Breno boa noite, esse ACS712 tem me desafiado ! 

Eu também espero conseguir medições de corrente com boa precisão usando o ACS712.

Ainda tenho dúvidas. 

Hoje fiz algumas experiências interessantes com o meu ACS712-05B ( isto é mede até 5A). 

Como as medições de Corrente Alternada são mais complexas, resolvi fazer medições de Corrente contínua com ele. Queria saber com qual precisão esse sensor mede CC. 

Para o teste fiz a seguinte montagem , usei quatro resistores de potência de 12 ohms/10W para servirem de carga para uma bateria de 12 V . Escolhi esse valor para que cada um pudesse consumir 1 ampére aproximadamente. 

    I = V / R = 12V / 12 ohms  = 1 A 

O diagrama mostra somente as ligações em paralelo dos resistores, mas fiz algumas ligações em série também, para medir valores menores de corrente . Usei o meu multímetro Fluke 17B+ ora para medir as tensões e ora para medir corrente. Não usei o Arduino, pois queria ter certeza nas medições. O  Arduino talvez pudesse apresentar algum erro de medição. 

Essa é a tabela que montei com os valores medidos de tensão e corrente. E também calculei a corrente usando a constante de sensitividade , que no caso do ACS712-05B pode variar entre 185 e 190.

O valor de sensitividade que apresentou menor erro foi o de 190. 

  Tensão medida - Vout (sem carga) / sensitividade = I calc 

   Vout (sem carga) = 2,596 V 

Veja que erros são esperados ! Mas estão dentro da faixa especificada pelo fabricante. (até 3% de erro). Perceba que a taxa de erro varia dependendo do valor, isto é , a linearidade da curva. 

Ligações em verde - resistores em série. 

Ligações em creme - resistores em paralelo 

Positivo e negativo, pois inverti os polos da bateria durante os testes. 

Correção ! 

O Erro total na saída (para 25 C) = +- 1,5% . ( e não 3% como havia informado) . 

Legal José, eu também pretendo medir corrente contínua com ACS712-5A (anteriormente estava utilizando o 30A). Você já me deu uma boa explicação de como trabalhar com  esse sensor para corrente contínua, só estou aguardando ele chegar para também começar a testar. Valeu. 

Breno, ontem ao fazer os testes do sensor ACS712-05B com os resistores de carga, dei um curto circuito no sensor devido à falta de atenção ao fazer as ligações. Como eu estava usando uma bateria de 12V que tem um corrente razoável, da plaquinha saiu uma fumacinha e depois descobri que a pista de cobre derreteu !! 

Por sorte minha consegui recuperar a trilha, com ferro de soldar. Mas um sintoma diferente apareceu, apesar que aparentemente não comprometeu os resultados do teste. 

O pino de Vout (sem carga) deveria apresentar a metade da tensão VCC ( essa informação esta no datasheet). Antes do curto-circuito, a tensão era praticamente a metade =>  5,17 V / 2 = 2,586 

Após o curto, essa tensão mudou para o valor de 2,596 (como consta na tabela) . 

Moral da história - ao fazer testes insira um fusível de 5 A ! Assim não correrá o risco de queimar o sensor. 

Olá José, obrigado pela dica. Meu sensor ainda não chegou, mas para não perder tempo vou continuar testando o ACS712-30A, percebi que estava testando com Arduino Nano (caso esteja errado me corrija), pretendo migrar do Arduino Uno para o Nano também, você tem alguma implementação para disponibilizar?

Acho que não te expliquei,  mas meu projeto é montar um sistema para medir grandezas elétricas (tensão contínua, corrente contínua e resistência), a parte de alternada acho que não consigo terminar por conta da dificuldade com o ACS712,  essas grandezas serão enviadas para um aplicativo no Android exibir, isso será feito através do módulo Bluetooth HC-05. Por enquanto tenho o esquema abaixo montado, com o seguinte código: https://github.com/BrennoMello/MultimetroArduino/blob/master/Multim..., o código está meio bagunçado porque ainda estou testando, mas de acordo com as alterações estarei subindo para o repositório.

Bom  dia Brenno, 

O Arduino Nano é similar ao Arduino UNO. Gosto de usar o Nano pois ele pode ser inserido em Protoboard. Mas muito atenção ao ligar a alimentação. Já queimei um por ter ligado 9V no pino 5V. 

https://www.arduino.cc/en/Main/ArduinoBoardNano

Para medições dessas grandezas (tensão contínua, corrente contínua e resistência) foi uma boa escolha optar pelo conversor ADC 16 bits. Já consegue medir tensões com precisão ? 

Já escolheu as faixas de medições para cada grandeza ?

A corrente vai medir com o ACS712, a tensão deve ser com o ADC e a resistência ? Como pretende medi-la? 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço