Como medir corrente com Arduino? 41

Agora você pode medir correntes de -30A à +30A utilizando o seu Arduino ou outro microcontrolador de sua preferência. Com o módulo Sensor de Corrente ACS714 da Pololu você tem um dispositivo alimentado por 5v e que permite medir essa faixa de corrente com uma margem de erro de apenas ±1,5%.

Sensor de Corrente ACS714

Esse sensor utiliza um CI Allegro ACS714 com sensor de efeito hall (datasheet) para medição da corrente, o que garante um perfeito isolamento do circuito. Nesse post vamos trabalhar com baixa tensão e corrente, mas o ACS714 suporte tensões de até 2.1 kV RMS. Confira o tutorial abaixo!

Medindo corrente e tensão

Antes de mostrarmos de mostrar como medir corrente com Arduino, vamos ver de uma maneira resumida a diferença de procedimento entre medir tensão e medir corrente, já que uma ligação incorreta pode danificar o circuito ou até mesmo o aparelho medidor.

Para medir tensão, veja este exemplo usando um multiteste (multímetro), um circuito com uma lâmpada e uma bateria. Devemos colocar o multiteste na escala de tensão (V), e medir dessa maneira, com as pontas de prova em paralelo ao circuito:

Medição Tensão

Já para a medição da corrente, que é o assunto desse post, devemos ligar um multiteste em série com o circuito, na escala de Ampéres:

Medição Corrente

Ligação do Sensor de Corrente com Arduino

Vamos testar o sensor utilizando um motor DC de 5v, ligado em SÉRIE com o Sensor de Corrente ACS714. O sensor irá enviar os dados ao Arduino por meio do pino analógico A3. A alimentação do sensor é feita pelo próprio Arduino (5v), e para a alimentação do motor utilizamos pilhas comuns. Assim, podemos mostrar o isolamento do circuito do motor em relação ao Arduino e o restante dos componentes:

Circuito Sensor de corrente ACS714

No display LCD 20×4, teremos as informações do valor “puro” lido do sensor (entre 0 e 1024) e o valor da amperagem calculada pelo programa abaixo. A cada ampere de variação na entrada do sensor, a tensão de saída varia 66mV. A atualização é feita a cada 1 segundo.

Para utilização do programa sem precisar de um LCD, os resultados são impressos também na serial, e você pode checar os valores no serial monitor:

Sensor de corrente - Serial Monitor

Gostou? Ajude-nos a melhorar o blog atribuindo uma nota a este tutorial (estrelas no final do artigo). Já conhece a loja virtual FILIPEFLOP? Não? Então confira um pouco sobre nossa confiável trajetória de vendas e Quem Somos.

Posts Relacionados

Deixe uma resposta

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

41 Comentários

  1. BOM DIA SÓ MEDE CORRENTE CONTINUA

    LUIZ BENEDITO CYPRIANO
    1. Luiz Cypriano, o módulo mede corrente contínua ou alternada.

  2. Olá
    Como posso fazer para medir a corrente de um chuveiro.
    Obrigado

    1. Boa noite Luciano,

      Lançaremos em breve um post sobre o sensor de corrente 20A para Arduino, talvez te ajude. Acompanhe as nossas publicações, por favor.

      Grato.

      Adilson – Equipe FILIPEFLOP

  3. Boa tarde Felipe,

    Este sensor mede corrente alternada (AC) também? Qual tensão máxima?

    Att;

    1. Boa tarde Jairo,

      Ja vi projetos que medem corrente alternada, mas ainda não foi testado por aqui.

      Grato.

      Adilson – Equipe FILIPEFLOP

  4. Eu gostaria de um sensor capaz de medir com boa precisão corrente da ordem de mA, alguma indicação?

  5. Bacana o projeto. Precisava fazer algo semelhante para medir correntes até 400A, qual sensor utilizo?
    O circuito seria semelhante?

    1. Boa noite Claudio,

      Depende do sensor que você vai utilizar. Esse do post gera na saída uma variação de tensão de acordo com a corrente medida, e outros sensores geram uma variação de corrente. Nesse caso haveria alteração no circuito.

      Abraço.

      Adilson – Equipe FILIPEFLOP

      1. Olá parabéns pelo excelente trabalho.
        Estou interessado no sensor de corrente não invasivo da loja, seria muito complicado conseguir que o armazenamento dos valores de corrente sejam “guardados” num Sd card, vinculados a hora real para posterior leitura e analise?

        José Luiz Espindola
    2. use primeiro um trasformador de corrente para instrumento tipo 1/20 depois use o sensor da materia.

  6. boa tarde caro, estou projetando um circuito que mede corrente contínua no modo não invasivo, e o meu interesse maior seria nas variação de corrente que ocorre a partir do quarto dígito, por exemplo numa leitura de corrente de 2,0034566 A, me interessa o valor 34566, pergunto eu… seria possível configurar esse tipo de leitura? e para a medição qual sensor você recomendaria? pelo que pesquisei só encontrei este sensor “Sensor de Corrente Não Invasivo 20A SCT-013” e se não me engano é somente da AC.
    Grato
    Lincoln

    1. Boa noite Lincoln,

      Sim, você pode alterar a programação para trabalhar apenas com os dígitos que você precisa. No momento temos apenas o sensor de 20A.

      Grato.

      Adilson – Equipe FILIPEFLOP

    2. Sim é possivel. Tudo permaneçe o mesmo (na leitura da corrente) porém se você quer, de acordo com exemplo que vc passou, os valores apartir de (10^-2) de 2,0034566, por exemplo, vc poderia multiplicar o valor medido por 10^7 e, apartir desse resultado, usar a operação de resto ‘%’, ou seja: (2,0034566 * 10000000) % 100000). É isso!

  7. Boa tarde meu caro!

    Bem bacana o projeto. Usarei o ACS712.
    Não usarei um display, mas usarei o valor da corrente para outras contas.

    Preciso ler 06 desses simultâneos e cada uma das 06 correntes usar em contas distintas.

    Pode me dar uma dica, por favor, de como replicar isso para as 06 unidades?
    long readInternalVcc()
    {
    long result;
    ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
    delay(2); // Wait for Vref to settle
    ADCSRA |= _BV(ADSC); // Convert
    while (bit_is_set(ADCSRA,ADSC));
    result = ADCL;
    result |= ADCH<<8;
    result = 1126400L / result; // Back-calculate AVcc in mV
    return result;
    }

    // Calculate current with Allegro ACS714
    double currentSensor(int RawADC)
    {
    int Sensitivity = 66; // mV/A
    long InternalVcc = readInternalVcc();
    double ZeroCurrentVcc = InternalVcc / 2;
    double SensedVoltage = (RawADC * InternalVcc) / 1024;
    double Difference = SensedVoltage – ZeroCurrentVcc;
    double SensedCurrent = Difference / Sensitivity;
    Serial.print("Sen: ");
    Serial.print(RawADC);
    Serial.print("/1024");
    lcd.setCursor(9,1);
    lcd.print(RawADC);
    return SensedCurrent;
    }

    Muito obrigado.

    Abs,
    Lucas

    1. Lucas tambem estou usando o mesmo sensor entrarem contato comigo que trocamos mais ideais

  8. Preciso fazer monitoramento remoto de grupo gerador, preciso de sensor que mede tensão e outro que mede corrente ambos alternados, tensão 220v e 115A.
    Qual sensor posso utilizar

  9. Bom dia, estou precisando saber como utilizar o sensor não invasivo de 100A , mas não não consigo encontrar a relação de transformação. Você poderia me ajudar?

  10. Bom dia. Eu preciso medir a corrente de um aparelho “Y” para automaticamente acionar um aparelho “X”. Por Exemplo: O aparelho “X” será ligado a tomada, o aparelho “Y” será ligado no aparelho”X”, então o aparelho “X” ficará em “stand by” aguardando o aparelho “Y” ser acionado para então entrar em funcionamento e trabalhar em conjunto com o aparelho “X”. Estava pensando em desenvolver algum circuito para fazer isso eletronicamente, utilizando algum microcontrolador 8051 ou PIC. Alguém pode me ajudar?

  11. Show de bola teus projetos. Esse Sensor de Corrente ACS714 pode ser usado também para medir tensão? Senão, qual posso usar?

    1. Boa tarde Giovan,

      Obrigado. Infelizmente ainda não temos sensores de tensão na nossa loja.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  12. Esse sensor mede corrente apenas em RMS?

  13. Boa noite gostaria de saber se esse sensor consegue realizar leituras em milésimos de segundos e manter a precisão da leitura

    Grato

    1. Boa tarde Vitoriano,

      Não fizemos testes nessa configuração. Neste caso, peço que verifique as informações que constam no datasheet: https://www.pololu.com/file/download/ACS714-Datasheet.pdf?file_id=0J196

      Abraço

      Adilson – Equipe FILIPEFLOP

  14. Olá Amigos !!! Não consigo fazer essa livraria funcionar. Fui no link cliquei em download zip e extrai para a pasta libraries do arduino, porém a livraria não é reconhecida. O que estou fazendo de errado ? Abraços !!!

  15. olá,
    Conseguir fazer a leitura da corrento, com uma ótima precisão, mas preciso de ajuda em um detalhe.
    quando o Vout do sensor não estar conectado na porta A1 do Arduíno, no display aparece uns valores flutuantes., quero saber se tem como fazer com quer exiba no display o valor 0 ( zero) no momento em que o Vout do sensor acs712-5a esteja desconectado?

  16. bom dia, estou com um projeto para controlar 2 motores DC mas quando chega no final do curso programado eu precisaria saber da corrente. Então eu não sei se uso essa placa ou o shild do 298N, pois n sei qual mede a corrente e me dá o valor da corrente. Obs: tenho q usar arduino.
    se alguém puder me ajuda ficarei imensamente grato.

    1. Oi João, Estou com um projeto similar, você conseguiu solucionar seu problema?

  17. boa tarde , esse codigo serveria tb se eu estivesse usando em corrente alternada ?

    1. Amigo, para corrente alternada não daria pra usar esse circuito, nesse caso seria necessário um sensor de efeito hall.

  18. Uma dúvida: se o sensor queimar por causa de passagem de corrente maior que 30A ou por qualquer outro motivo, ele continua passando corrente entre o IP+ e IP- ou ele vira um contato aberto?
    Att Leonardo”

  19. Boa Noite !

    Sou iniciante no assunto.

    Gostaria de saber como faço para incrementar os valores lidos em amperes em uma variável para poder tirar a média da produção de corrente continua por um painel solar. isso a cada 30 min.
    e como transformo os dados lidos em Amperes? uso um sensor de corrente ACS712 30A. O painel solar é de 5V.
    Não sei se deu pra entender direito, mas se puder de alguma forma me ajudar..
    Desde já agradeço !!

  20. boa noite , pode me ajudar a visualizar a corrente medida com este codigo num lcd 16*2 ?

  21. Qual a tensão máxima que o sensor suporta?

  22. Qual tensão máxima que o sensor suporta?

    1. Nesse post vamos trabalhar com baixa tensão e corrente, mas o ACS714 suporte tensões de até 2.1 kV RMS.
      http://www.pololu.com/file/download/ACS714-Datasheet.pdf?file_id=0J196

  23. Boa tarde, a não estou a conseguir mostrar a programação no meu display OSEPP LCD and keypad shield, consigo fazer a simulação através de arduino e está tudo correto.
    Que alternativa de programação posso utilizar?

  24. gostaria de saber como faria a programação com corrente alternada

  25. Qual simulador foi usado ?

    1. Não sei qual foi utilizado, porem uso esse https://circuits.io/ ele tem uma grande variedade de componentes

      Bruno Henrique Biscouto
  26. Amigo, seria possível substituir o Arduino por um ESP? Quais seriam as modificações?