Medindo corrente e tensão com o módulo INA219 11

Durante o desenvolvimento de algum dos seus projetos você já deve ter tido a necessidade de medir a tensão ou a corrente consumida pelo seu projeto ou parte dele. Normalmente utilizamos um multímetro e medimos uma grandeza por vez (algo não muito prático). Neste artigo veremos como montar um simples e prático medidor de tensão e corrente DC utilizando como componente principal o current monitor módulo INA219 da Texas Instruments.

Medidor de corrente e tensão com INA219

Para apresentar as leituras utilizaremos um Display de LCD 16×2 com um adaptador i2c, o que irá minimizar bastante a quantidade de pinos necessários, se comparado a tradicional utilização com interface paralela, seja de 4 bits ou 8 bits.

PRINCIPAIS MATERIAIS UTILIZADOS

O SENSOR DE CORRENTE DC MODULO INA219

O INA219 é um componente extremamente versátil para o monitoramento de grandezas elétricas DC. Permite o monitoramento de linhas com alimentação de 0 a 26 Vdc, corrente com limite máximo dependente do resistor shunt utilizado, conversor ADC interno de 12 bit e interface i2c para comunicação. O método de medição de corrente utilizado é o high-side, onde o resistor shunt é colocado entre a fonte de alimentação e a carga. Este método permite que o dispositivo meça tanto a corrente circulante, como a tensão na carga. O datasheet do componente pode ser encontrado neste LINK.

Medição de corrente com Current Monitor
Medição em High-Side e Low-Side

Como mencionado anteriormente, a medição da corrente é realizada através de um resistor shunt, ou seja, nossa boa e velha Lei de Ohm. Lembre-se que quando uma corrente elétrica atravessa um resistor surge em seus terminais uma diferença de potencial, ou seja, surge uma tensão que é proporcional a corrente circulando através do resistor.

 U = R x I

Ao medirmos a tensão sobre um resistor qualquer, de posse da resistência do mesmo podemos substituir os valores na equação e com isso obter a corrente elétrica.

A placa Sensor de Corrente DC INA219 I2C facilita muito os projetos envolvendo este componente pois já engloba o circuito integrado, os componentes passivos necessários para seu funcionamento, um resistor shunt de 0.100R (100 miliOhm) que permite medição de correntes máximas de +- 3,2 A (tensão máxima de +-320 mV no resistor shunt) e também terminais para conexão com o microcontrolador e com a fonte que irá alimentar a carga a ser monitorada. A placa possui também dois conjuntos de pads/jumpers que permitem modificar o endereço i2c do dispositivo, ou seja, podemos utilizar até 4 dispositivos ao mesmo tempo em uma mesma linha i2c.

Placa com o INA219
Placa INA219 DC Current Sensor

A alimentação do módulo INA219 é realizada através dos terminais Vcc e Gnd, podendo variar de 3 V a 5,5 Vdc, ou seja, dentro dos limites da maiorias das placas disponíveis atualmente, incluindo a placa Nano V3.0 utilizada neste projeto.

Os pinos Sda e Scl são referentes a comunicação i2c, e devem ser conectados respectivamente aos pinos A4 e A5 da placa Nano. Os pinos Vin+ e Vin- presentes tanto na barra de pinos, como no conector parafusável, são utilizados para monitorar a carga. A fonte que alimenta a carga (com tensões de 0 a 26 V) entra no terminal Vin+, atravessa o resistor shunt e sai pelo terminal Vin-, indo para a carga a ser monitorada. Aqui fica uma dica, para cargas que consumam pouca corrente você pode utilizar os terminais na barra de pinos inferior, na dúvida, utilize o terminal parafusável superior.

Uma consideração importante, o Gnd do nosso circuito de medição deverá estar conectado ao Gnd da nossa carga, por exemplo, se você estiver monitorando o consumo de um motor conectado a uma bateria de 9V, o terminal “” da bateria deverá ser conectado ao Gnd geral. Isto garante que os circuitos operem sob mesmo referencial, ao mesmo tempo que assegura que a tensão será medida corretamente.

DISPLAY DE LCD 16X2 E ADAPTADOR I2C

Iremos utilizar um tradicional display LCD 16×2 para apresentar as medições. nativamente este display utiliza uma interface paralela, necessitando de pelo menos 6 pinos na versão 4 bits, conforme pode ser visto neste artigo do blog,  ou até 11 pinos na versão 8 bits.

LCD 16x2

Para minimizar a quantidade de pinos necessários iremos utilizar um Módulo Serial I2C para Display LCD. Este módulo permite comunicar com o LCD através da interface serial I2C, utilizando apenas 2 terminais (SDA e SCL). O módulo pode ser soldado diretamente ao display de LCD ou então pode-se cortar e soldar uma barra de pinos fêmea. permitindo que você altere a interface de acordo com suas necessidades.

Adaptador i2c para LCD

CIRCUITO MODULO INA219 COM ARDUINO

Para montagem básica precisaremos de uma protoboard, uma fonte para alimentar nosso circuito e alguns jumpers. Indico utilizarem jumpers rígidos pois além da estética melhor, eles acabam evitando problemas de mau contato.

Iremos alimentar as linhas superior e inferior do protoboard com 5 V. Essa alimentação será útil para alimentar a placa Nano, o módulo INA219 e também nosso LCD via adaptador i2c.

Os pinos SDA e SCL, tanto da placa INA219 como do adaptador i2c deverão ser conectados respectivamente os pinos A4 e A5, que neste projetos serão utilizados para comunicação i2c.

O circuito a seguir apresenta as conexões básicas necessárias.

Circuito Arduino e Módulo INA219

Veja que é um circuito bastante simples, restando apenas conectar a fonte que irá alimentar a carga ao conector Vin+, conectar Vin- a carga e lembrar de interconectar o Gnd dos circuitos.

BIBLIOTECAS NECESSÁRIAS

Para realização deste projeto será necessário adicionar duas novas bibliotecas, a Adafruit_INA219 e a LiquidCrystal_I2C. Aconselho utilizar o utilitário de gerenciamento de bibliotecas para facilitar o processo. Clique em Sketch >> incluir Biblioteca >> Gerenciar Bibliotecas…. No campo de busca insira o nome das bibliotecas Adafruit INA219 e LiquidCrystal I2C. Na lista que aparecer, selecione a biblioteca indicada e então clique em “Instalar”.

Instalando as bibliotecas

CÓDIGO FONTE

As bibliotecas utilizadas para o INA219 e para o LCD via i2c possuem exemplos de sua utilização que serviram como base para este projeto.

A seguir é apresentado o código que une as funcionalidade do nosso sensor de corrente e tensão e do nosso LCD via serial I2C.

Com o exemplo rodando serão apresentadas no LCD a tensão e corrente da carga. Neste exemplo utilizei 1 LED vermelho como carga teste.

UM SEGUNDO TESTE COM O MODULO INA219

Para fixarmos os conceitos irei demonstrar um exemplo medindo a tensão e a corrente consumida por todo o circuito de medição e mais dois LED’s controlados pela própria sketch.

Como queremos medir o consumo da placa Nano, do Display LCD e de mais dois LED’s, serão necessárias alguma modificações pontuais no circuito. A principal delas é que a alimentação de 5V fornecida pela fonte ajustável, será conectada apenas as linhas de alimentação superiores, na parte interior iremos deixar o jumper da fonte na posição “off”. A alimentação de 5V será aplicada ao pino Vin+ e o pino Vin- será conectado a linha de alimentação inferior, permitindo alimentar a placa Nano e também o Display de LCD.

O circuito de teste é apresentado a seguir.

Circuito de teste com leds

CÓDIGO FONTE

Neste teste o código irá controlar o backlight e os dois leds para demonstrar a medição de tensão e corrente. Inicialmente é mostrada a medição com backlight aceso e com os leds apagados, após um delay o backlight é apagado, o backlight é novamente aceso e um dos LEDs também, o segundo LED é aceso. Entre cada etapa ocorre a leitura dos valores medidos pelo INA219, atualização do display e geração de um delay de 2 segundos.

O código é apresentado a seguir.

O resultado deste teste você confere na imagem do início do post, e os arquivos deste projeto (sketches e esquemático do Fritzing) podem ser baixados no meu repositório GitHub.

Gostou do Medidor de tensão e corrente DC com módulo INA219? Ajude-nos a melhorar o blog atribuindo uma nota a este tutorial (estrelas no final do artigo), comente e visite nossa loja FILIPEFLOP!

Posts Relacionados

11 Comentários

  1. Tem algum módulo que meça tensão e corrente AC?

    1. Infelizmente para medição de corrente e tensão AC não existe nenhum módulo pronto, apenas CI’s dedicados a metrologia, mas que dependem de toda uma circuitaria externa.

      Para medição de correntes AC/DC você pode utilizar o “Sensor de Corrente ACS712 -30A a +30A” (https://www.filipeflop.com/pd-304251-sensor-de-corrente-acs712-30a-a-30a.html?ct=&p=1&s=1) disponível na loja. Sua saída é em formado analógico, ai será necessário apenas utilizar o ADC do uC e depois processar o sinal.

      Para medir a tensão AC de uma maneira segura você pode utilizar uma transformador abaixador e condicionar sua saída. após isso também será necessário converter o sinal e processá-lo.

  2. Achei interessante esse modulo INA219. e o artigo está show, bem explicado.

    1. Fico feliz que tenham gostado André, obrigado pelo feedback!

  3. Parabéns pelo trabalho apresentado, bem didático e possibilitando aplicar em outros sensores semelhantes.

    1. Muito obrigado Carlos. A ideia é essa, permitir adaptação para outros usos e até sensores.

  4. Genial, me serviu 100% . OBRIGADO

    1. Que bom que funcionou 100% João.

  5. Posso ligar um sinal de 4-20mA direto nele ? Ex: ligar um sensor de nível com saída analógica

    1. Bruno, este módulo (INA219) não é adequado para este tipo de medição de sensores/trandutores com saída de 4 a 20mA.

  6. Para converter sinal de 4 – 20mA em 0 -10V coloque o mresistor de 250 Ohms em serie e meça a tensao com modulos o Arduino por ex. 5V coloque 2 resistores em paralelo.

Deixe uma resposta

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