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.
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
- Sensor de Corrente DC INA219 I2C
- Display LCD 16×2 Backlight Azul
- Módulo Serial I2C para Display LCD Arduino
- Placa Nano V3.0
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.

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.

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.
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.
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.
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”.
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.
/* * DC Current and Voltage Meter - Basic Code * - Use one INA219, an i2c current monitor from TI * with 12 bit ADC, capable to monitor Voltage and * Current * * ------------------------------------------------- * Medidor corrente e tensão DC - Código Básico * - Utiliza um modulo INA219, um monitor de corrente i2c * com um ADC de 12 bit, capaz de monitorar Tensão * e Corrente * * developed by: Haroldo Amaral * 2017/03/26 - v 1.0 */ #include <Wire.h> #include <LiquidCrystal_I2C.h> // lcd i2c lib #include <Adafruit_INA219.h> // ina219 lib // Define some constants used in code const int LED1 = 2; // the number of the LED pin const int LED2 = 3; // the number of the LED pin const int ON = 1; // on state const int OFF = 0; // off state const int LCD_addr = 0x3F; // LCD i2c address const int LCD_chars = 16; // number of characters const int LCD_lines = 2; // number of lines const int INA_addr = 0x40; // INA219 address // set the LCD address to 0x3F for a 16 chars and 2 line display // indica o endereço do LCD - 0x3F, com 16 caracteres e 2 linhas LiquidCrystal_I2C lcd(LCD_addr, LCD_chars, LCD_lines); // set the INA219 to address 0x40 // indica o endereço do INA219 - 0x40 Adafruit_INA219 ina219(INA_addr); // global variables float shuntvoltage = 0; float busvoltage = 0; float current_mA = 0; float loadvoltage = 0; // Prototype of functions void Read_INA219_Values(void); void LCD_Update(void); void Serial_Send(void); void setup() { // configure LED pins pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); // configure the serial to 9600bps Serial.begin(9600); Serial.println("Hello!"); Serial.println("Measuring voltage and current with INA219 ..."); // initialize the INA219 ina219.begin(); // initialize the lcd lcd.init(); lcd.clear(); // Print a message to the LCD. lcd.backlight(); // set the cursor and write some text lcd.setCursor(0,0); lcd.print("Tensao Corrente"); } /* * MAIN LOOP * - change the led state, measure the values and update LCD */ void loop() { // read values from INA219 // lê os valores do INA219 Read_INA219_Values(); // update the LCD // atualiza o LCD LCD_Update(); // send data over the serial // envia os dados pela serial Serial_Send(); // change the value to increase/decrease the update rate // mude o valor para alterar a taxa de atualização delay(250); } /* * Functions */ // Read the values from INA219 // lê os valores convertidos pelo modulo INA219 void Read_INA219_Values(void) { shuntvoltage = ina219.getShuntVoltage_mV(); busvoltage = ina219.getBusVoltage_V(); current_mA = ina219.getCurrent_mA(); loadvoltage = busvoltage + (shuntvoltage / 1000); } // update the LCD with values // atualiza o LCD com os valores void LCD_Update(void) { lcd.setCursor(0,1); lcd.print(busvoltage); lcd.print("V "); lcd.setCursor(7,1); lcd.print(current_mA); lcd.print("mA "); } // Send data over the serial // envia os valores pela serial void Serial_Send(void) { Serial.print("Bus Voltage: "); Serial.print(busvoltage); Serial.println(" V"); Serial.print("Shunt Voltage: "); Serial.print(shuntvoltage); Serial.println(" mV"); Serial.print("Load Voltage: "); Serial.print(loadvoltage); Serial.println(" V"); Serial.print("Current: "); Serial.print(current_mA); Serial.println(" mA"); Serial.println(""); }
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.
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.
/* * DC Current and Voltage Meter - LED test * - Use one INA219, an i2c current monitor from TI * with 12 bit ADC, capable to monitor Voltage and * Current * - In the test, the LEDs and the backlight are * switched to verify the current consumption * * ------------------------------------------------- * Medidor corrente e tensão DC - LED test * - Utiliza um modulo INA219, um monitor de corrente i2c * com um ADC de 12 bit, capaz de monitorar Tensão * e Corrente * - No teste, os led e o backlight são chaveados * para verificar a corrente consumida * * developed by: Haroldo Amaral * 2017/03/26 - v 1.0 */ #include <Wire.h> #include <LiquidCrystal_I2C.h> // lcd i2c lib #include <Adafruit_INA219.h> // ina219 lib // Define some constants used in code const int LED1 = 2; // the number of the LED pin const int LED2 = 3; // the number of the LED pin const int ON = 1; // on state const int OFF = 0; // off state const int LCD_addr = 0x3F; // LCD i2c address const int LCD_chars = 16; // number of characters const int LCD_lines = 2; // number of lines const int INA_addr = 0x40; // INA219 address // set the LCD address to 0x3F for a 16 chars and 2 line display // indica o endereço do LCD - 0x3F, com 16 caracteres e 2 linhas LiquidCrystal_I2C lcd(LCD_addr, LCD_chars, LCD_lines); // set the INA219 to address 0x40 // indica o endereço do modulo INA219 - 0x40 Adafruit_INA219 ina219(INA_addr); // global variables float shuntvoltage = 0; float busvoltage = 0; float current_mA = 0; float loadvoltage = 0; // Prototype of functions void Read_INA219_Values(void); void LCD_Update(void); void Serial_Send(void); void setup() { // configure LED pins pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); // configure the serial to 9600bps Serial.begin(9600); Serial.println("Hello!"); Serial.println("Measuring voltage and current with INA219 ..."); // initialize the INA219 ina219.begin(); // initialize the lcd lcd.init(); lcd.clear(); // Print a message to the LCD. lcd.backlight(); // set the cursor and write some text lcd.setCursor(0,0); lcd.print("Tensao Corrente"); } /* * MAIN LOOP * - change the led state, measure the values and update LCD */ void loop() { // test 1 - backlight on, leds off // teste 1 - backlight aceso, leds apagados digitalWrite(LED1, OFF); digitalWrite(LED2, OFF); Read_INA219_Values(); LCD_Update(); Serial_Send(); delay(2000); // test 2 - backlight off, leds off // teste 2 - backlight apagado, leds apagados lcd.noBacklight(); Read_INA219_Values(); LCD_Update(); Serial_Send(); delay(2000); // test 3 - backlight on, led 1 ON // teste 3 - backlight aceso, led 1 aceso lcd.backlight(); digitalWrite(LED1, ON); Read_INA219_Values(); LCD_Update(); Serial_Send(); delay(2000); // test 4 - backlight on, led 1 and 2 ON // teste 4 - backlight aceso, led 1 e 2 aceso digitalWrite(LED2, ON); Read_INA219_Values(); LCD_Update(); Serial_Send(); delay(2000); } /* * Functions */ // Read the values from INA219 // lê os valores convertidos pelo modulo INA219 void Read_INA219_Values(void) { shuntvoltage = ina219.getShuntVoltage_mV(); busvoltage = ina219.getBusVoltage_V(); current_mA = ina219.getCurrent_mA(); loadvoltage = busvoltage + (shuntvoltage / 1000); } // update the LCD with values // atualiza o LCD com os valores void LCD_Update(void) { lcd.setCursor(0,1); lcd.print(busvoltage); lcd.print("V "); lcd.setCursor(7,1); lcd.print(current_mA); lcd.print("mA "); } // Send data over the serial // envia os valores pela serial void Serial_Send(void) { Serial.print("Bus Voltage: "); Serial.print(busvoltage); Serial.println(" V"); Serial.print("Shunt Voltage: "); Serial.print(shuntvoltage); Serial.println(" mV"); Serial.print("Load Voltage: "); Serial.print(loadvoltage); Serial.println(" V"); Serial.print("Current: "); Serial.print(current_mA); Serial.println(" mA"); Serial.println(""); }
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? Deixe seu comentário logo abaixo.
Boa tarde, estou tentando realizar este projeto utilizando um arduino Mega2560, e apresenta o erro “Erro compilando para a placa Arduino Mega or Mega 2560”
Poderia me ajudar a corrigir isso?
Olá Anderson,
Há mais alguma informação no erro?
Você instalou as bibliotecas LiquidCrystal I2C e Adafruit INA219?
Abraço!
Vinícius – Equipe MakerHero
ok muito bom gostei obrigado! mas quero medir em dc com este circuito acs712.
consigo?
digo ultilizando o mesmo programa.
Moises,
Você pode usar o ACS para medir DC sim, mas teria que usar outro código.
Abraços!
Diogo – Equipe MakerHero
muito bom colega mas com o sensor de corrente quero usar o ACS712 pois é o que eu tenho por favor consegue me ajudar?
desde de ja te agradeço por tudo e boa vontade. com este medidor consigo ler normalmente em dc 26vlts?
Moises,
Dê uma olhada nesse nosso post: https://www.makerhero.com/blog/medidor-de-corrente-ac-acs712-emonlib/
Abraços!
Diogo – Equipe MakerHero
Boa noite, estou usando o esp32, a leitura da tensão está correta mas a da corrente aparecem valores aleatórios, o que pode estar errado? Desde já agradeço.
Em primeiro lugar parabéns pelo projeto. Mas tem como aumentar a precisão, e gravar direto no ecxell,
Eu tenho um projeto que preciso ter a variação de 0,001v, e de 000A?
Cadu,
Obrigado pela visita! Infelizmente não é possível ser tamanha precisão.
Abraços!
Diogo – Equipe MakerHero
Bom dia, precisava de um código pro arduino para medir a corrente, quando passar de 300 mA a corrente, acender um led vermelho e se ficar abaixo de 300 mA acender um led verde. vou ficar testando varias cargas e preciso garantir que nenhuma passe de 300 mA. será que consegui me ajudar ?
Haroldo, parabéns pelo artigo…
minha duvida é, assim como a ultima pergunta do Andre sobre a medição de tensão AC, consegue nos dar uma ajuda de como, usando um transformador abaixador, condicionar a saída e converter o sinal e processá-lo?
Haroldo boa noite, quero fazer um dispositivo que leia ao todo 50 pinos cada um com uma tensão x, porem o Arduíno mega tem 54 portas digitais e 16 ou 14 não lembro, portas analógicas, poderia adicionar um mux ou demux para expandir as portas ??
Sim Lucian, é uma abordagem possível, um mux por entrada analógica do Mega até completar a quantidade de canais necessária
Boa tarde, Diogo!
Troquei o endereço I2C do display para 0x27 (considerado padrão) e ele ressuscitou.
João,
Que bom que deu jeito!
Abraços!
Diogo – Equipe MakerHero
Sabe me dizer qual é a corrente minina que este modulo consegue realizar a leitura?
Andre,
Acredito que seja a de erro percentual dele, que seria por volta de 0,8mA.
Abraços!
Diogo – Equipe MakerHero
Bom dia!
Voce consegue algum modulo com este erro percentual menor de que 0,8mA? Estou precisando de algo próximo de 0,1mA.
Andre,
Verifique esse: https://www.makerhero.com/produto/sensor-de-corrente-acs712-30a-a-30a/
Abraços!
Diogo – Equipe MakerHero
Olá, me parece bem simples tudo. Estou usando um Arduino nano e o sensor INA219 com um resistor um led de carga, apenas não uso o LCD, acompanho apenas pela serial. No entanto não consigo realizar a medida por nada. Meu código trava na inicialização do INA, em “ina219.begin();”.
Já tentei usar outra biblioteca, a ArduinoINA219 (https://github.com/flav1972/ArduinoINA219) e a mesma coisa acontece, ele para no iniciar o INA, em “monitor.begin();”.
Por que isso pode estar acontecendo?
Olá Jaqueline,
Você instalou as bibliotecas corretamente? Acho que isso pode estar sendo seu problema.
Abraço!
Rosana – Equipe MakerHero
Acredito que instalei corretamente. Desinstalei e instalei novamente, fiz vários testes.
Comecei a desconfiar da comunicação I2C. Encontrei um código que verifica os endereços I2C e para minha surpresa esse também para de funcionar em determinada linha de código da comunicação. O programa para de responder em “codigoResultado = Wire.endTransmission();”
Aqui esta o código completo: https://portal.vidadesilicio.com.br/descobrindo-o-endereco-i2c/
Isso pode ser problema de hardware então?
Olá!
Você poderia postar sua dúvida no nosso fórum? Lá seria interessante se você postasse seu código e os erros que estão ocorrendo!
Abraços!
Diogo – Equipe MakerHero
É possível usar mais de um sensor por vez no Arduino com esse módulo ?
Olá Vinícius,
É possível sim 😀
Abraço!
Rosana – Equipe MakerHero
Parabéns pelo seu Trabalho, bem explicado e ótimo pára aulas com arduino.
Carlos Bruni
Instituto Federal da Bahia
Olá,
Eu precisava de um medir de 20v e 3A, esse sensor mede isso? e eu também preciso gravar o que ele está medindo, por uma porta serial ou até mesmo pela internet, poderia me ajudar com isso?
Olá Gustavo!
Esse sensor mede isso sim.
Para gravar os dados pela internet você pode se inspirar por este post:
https://www.makerhero.com/blog/tutorial-ethernet-shield-w5100/
Abraços!
André – Equipe MakerHero
Bom dia, é possível registrar dados utilizando a placa Sensor de Corrente DC INA219 I2C, conforme mostra o projeto Medindo corrente e tensão com o módulo INA219?
Sim, você pode registrar (salvar) os dados utilizando desde a EEPROM do Arduino Uno/Nano até um cartão SD, basta implementar esta funcionalidade ao projeto.
Boa tarde!
Meu nome é Gabriel e estou com uma urgência e preciso de sua ajuda se possível.
Meu projeto precisa fazer a leitura de 0-36v com corrente de 0-10A
comprei com vocês o modulo regulador de corrente 30A e gostaria de saber se com o INA219 é possivel realizar a medição de até 36v realizando algum tipo de alteração no resistor shunt.
Ficarei muito grato caso consiga me responder.
Obrigado!
o INA219 pode monitorar de 0 a 26Vdc. Modificar o shunt permite manipular apenas o range de corrente, mas não o de tensão.
Trocando o resistor shunt é possível ler correntes de até 8A em 15V?
Teoricamente sim, mas você terá que verificar algumas coisas: A tensão sobre o resistor não pode exceder 320mV e você terá que recalcular as constantes internas relacionadas ao calculo da corrente.
Além disso, a placa não foi preparada para uma corrente tão elevada (trilhas finas entre conector e shunt). O ideal seria você montar sua própria placa.
Na verdade eu preciso medir a corrente de um alternador para uma bateria, mas não no carro é para outra aplicação, as correntes não devem passar de 7A – 8A você teria alguma outra sugestão?
Poucas ferramentas vão realizar isso sem algum trabalho externo. o INA219 funciona bem para isso (em DC), principalmente porque ele calcula tudo sozinho. Mas no seu caso você teria que fazer sua própria placa.
Outra possibilidade seria utilizar um ACS712-20A. No caso de usar ele você é quem ficará responsável por realizar todos os cálculos. Se procurar na loja encontrará o componente e também exemplos.
Olá tudo bem? Montei exatamente como seu tutorial e não está lendo a corrente e a tensão só fica em 32V, mesmo eu variando. Poderia me ajudar?
Um problema possível é que os circuitos não estejam compartilhando o mesmo terra e ficando sem referência. Verifique a conexão dos terras.
Outro teste possível é conectar Vin+ e Vin- ao Gnd do circuito, ele deverá ler 0V e 0A ou próximo disso.
Fiz o teste, ligando Vin+ e Vin- ao terra e continuou com o mesmo problema:
Tensão: 32.76 V
Corrente: -0.10 mA
Potência: -0.00 W
Coloquei o mesmo terra e nada.
Será que o sensor está com problema?
Olá.
Estou pensando em um projeto para controlar um enrolador de tecido pequeno. Quando o tecido esticar ele acusará uma corrente maior do que a corrente nominal, assim iria parar o motor. Ligando o motor novamente para enrolar quando a corrente iria diminuir.
Será que eu conseguiria ler esses valores de corrente com esse sensor? Ou uma outra solução…
Olá Rogério.
A ideia pode funcionar sim, mas o circuito com o INA219 funciona apenas para tensão contínua, não sei se seria o caro da sua aplicação. Caso for, será necessário somente adaptar o código.
Caso for em AC existem outros projetos no blog, como este que escrevi
https://www.makerhero.com/blog/medidor-de-corrente-ac-acs712-emonlib/
Muito interessante e bem detalhado, parabéns ! Pergunto se seria possível com um sensor destes, medir condutividade em diferentes águas, como água do mar, estuários, para se aferir a salinidade ?
Que bom que curtiu o artigo Luis.
Talvez com várias adaptações no circuito e código seja possível, mas não é o foco deste componente.
Pessoal boa tarde.
Montei esse projetinho para monitorar outros aduinos e seus respectivos consumos.
Desculpe minha falta de conhecimento, mas poderiam me explicar exatamente qual a diferença entre BUSVOLTAGE e SHUNT VOLTAGE?
Técnicamente eu entendi que um é o que está no “barramento” e outro é oq efetivamente está entrando na carga certo?
Se isso estiver correto, para uma aplicação real isso significa que se por exemplo se eu tenho uma fonte de 5v e meu BUSVoltage está mostrando 1v e meu ShuntVoltage está mostrando 4.5v qual valor devo considerar?
E no caso se for uma fonte variável eu devo aumentar a tensão até que meu ShuntVoltage mostre precisos 5v ?
Poderiam me dar uma explicação mais direcionada a iniciante…rs?
Abss
Boa tarde Raphael.
– BusVoltage é a tensão de alimentação após o resistor shunt, ou seja, a tensão que vai para a carga/circuito, no seu caso o arduino e outros periféricos.
– ShuntVoltage é a tensão sobre o resistor que mede a corrente. Sempre a tensão no resistor shunt será baixa, principalmente se comparada com a alimentação do circuito.
De uma olhada no datasheet do INA219, na figura 13, talvez ajude a entender.
– http://www.ti.com/lit/ds/symlink/ina219.pdf
Se no seu caso estiver mostrando algo estranho, existem duas possibilidades:
– a ligação do sensor está invertida
– a fonte que alimenta o circuito não está com o GND conectado ao Arduino, isso gera erros de medição
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.
Posso ligar um sinal de 4-20mA direto nele ? Ex: ligar um sensor de nível com saída analógica
Bruno, este módulo (INA219) não é adequado para este tipo de medição de sensores/trandutores com saída de 4 a 20mA.
Olá, Haroldo! Tudo bem? Poderia explicar o motivo dele não ser adequado para esse tipo de medição? Grato!
Genial, me serviu 100% . OBRIGADO
Que bom que funcionou 100% João.
Parabéns pelo trabalho apresentado, bem didático e possibilitando aplicar em outros sensores semelhantes.
Muito obrigado Carlos. A ideia é essa, permitir adaptação para outros usos e até sensores.
Achei interessante esse modulo INA219. e o artigo está show, bem explicado.
Fico feliz que tenham gostado André, obrigado pelo feedback!
Tem algum módulo que meça tensão e corrente AC?
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.makerhero.com/produto/sensor-de-corrente-acs712–30a-a-30a/) 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.