Medindo Corrente Alternada com Arduino e ACS712

Veja nesse pequeno projeto como usar o sensor ACS712 para medir corrente alternada com Arduino.


ACS712
ACS712

O sensor de corrente ACS712 é uma ótima alternativa para realizar medições da corrente elétrica com Arduino de maneira fácil e segura.
Vejamos algumas de suas características:

  • Utiliza o efeito hall para realizar a medição e gerar no pino de saída uma tensão proporcional à corrente detectada;
  • Pode ser utilizado com corrente alternada (AC) e corrente contínua (DC) ;
  • Seus bornes são isolados do microcontrolador;
  • Ótima opção para instalações permanentes, dada a sua característica invasiva, ou seja,  precisamos interromper o circuito para realizar a medição, diferente de outros sensores em que você deve apenas envolver um dos fios do circuito para medir a corrente;
  • Disponível em vários modelos, de acordo com a faixa de amperagem a ser detectada (5, 20 e 30A).

Hardware necessário

  • Arduino Compatível (nos meus testes, usei o Arduino Mega);
  • Sensor ACS712 (Nos testes, usei o modelo de 30A);
  • Extensão elétrica e um aparelho elétrico com potência ou corrente conhecidas (no meu caso, usei uma lâmpada de 15 Watts).

Onde Comprar:
Curto Circuito – Componentes Eletrônicos e Acessórios

Software Necessário

Para facilitar a programação e evitar a realização de muitos cálculos, utilizei a library ACS712-arduino disponível no seguinte endereço:

https://github.com/rkoptev/ACS712-arduino

 Esquema de ligação

ACS712 Ligação com Arduino
ACS712 Ligação com Arduino

Vídeo Demonstração

Let’s Sketch!

#include "ACS712.h"

// Estou usando ACS de 30A. Mude para o modelo que está usando. Valores possíveis: 5,20 e 30
// Sensor ligado na porta analópgica A0
ACS712 sensor(ACS712_30A, A0);

void setup() {
  // É necessário calibrar o sensor antes de usar a primeira vez com o método abaixo
  Serial.begin(9600);
  Serial.println("Aguarde. Calibrando..."); 
  sensor.calibrate();
  Serial.println("Fim da calibração");
}

void loop() {
  // A frequência da corrente alternada no Brasil é 60 Hz. Mude caso necessário
  // A voltagem, no meu caso é 127
  delay(5000);
  float V = 127;
  float I = sensor.getCurrentAC(60);
  float P = V * I;

  Serial.println(String("Corrente = ") + I + " A");
  Serial.println(String("Potência  = ") + P + " Watts");

}

Referências

Conclusão

Para finalizar, queria alertar que este projeto deve ser realizado com extremo cuidado, pois envolve o uso de alta tensão.

A medição de corrente nem sempre é fácil, pois envolve vários fatores que podem interferir. Por isso, nem sempre o resultado é extremamente preciso.

Uma modificação que poderia ser feita é a inclusão de um sensor de tensão em paralelo com a lâmpada. Dessa forma o resultado seria mais próximo da realidade, devido às variações da rede elétrica.
Em breve, faremos isso aqui no blog.

Até a próxima!!!

 

12 comentários em “Medindo Corrente Alternada com Arduino e ACS712”

  1. caro José Cintra

    eu li a biblioteca nova e refiz meu projeto baseado no código que você disponibilizou neste artigo, que ficou muito bom, só que o meu sensor é o ACS712 5A, ele está oscilando demais sem passar nenhuma corrente, saberia me dizer o que eu posso ter feito de errado?

    agradeço desde já

      1. #include “ACS712.h”

        // Estou usando ACS de 30A. Mude para o modelo que está usando. Valores possíveis: 5,20 e 30
        // Sensor ligado na porta analópgica A0
        ACS712 sensor(ACS712_05B, A0);

        void setup() {
        // É necessário calibrar o sensor antes de usar a primeira vez com o método abaixo
        Serial.begin(9600);
        Serial.println(“Aguarde. Calibrando…”);
        sensor.calibrate();
        Serial.println(“Fim da calibração”);
        }

        void loop() {
        // A frequência da corrente alternada no Brasil é 60 Hz. Mude caso necessário
        // A voltagem, no meu caso é 127
        delay(5000);
        float V = 127;
        float I = sensor.getCurrentAC(60);
        float P = V * I;

        Serial.println(String(“Corrente = “) + I + ” A”);
        Serial.println(String(“Potência = “) + P + ” Watts”);
        }

        já utilizei vários códigos, mas um deles é este código que vc apresentou logo acima, mas mudei apenas o tipo de amperagem do meu que é 5 A e mesmo assim não funcionou

    1. Olá pessoal!
      Gostaria de saber qual seria o código caso necessite medir a tensão alternada.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *