Senzorů a modulů pro Arduino existuje opravdu hodně. Některé měří teplotu, jiné vlhkost, světlo, tlak nebo vzdálenost. Tentokrát se podíváme na modul INA219, který slouží k měření napětí, proudu a výkonu.
Na první pohled je to malý nenápadný modul s několika piny, ale pro různé pokusy je hodně užitečný. Díky němu můžeme zjistit, kolik proudu odebírá LED pásek, motor, Arduino projekt, malý solární panel nebo třeba zařízení napájené z baterie.
Velká výhoda INA219 je v tom, že neposílá do Arduina jen nějakou neurčitou analogovou hodnotu. Komunikuje přes sběrnici I2C a hodnoty dostaneme rovnou jako napětí, proud a výkon. Pro začátečníka je to tedy docela jednoduchý způsob, jak si začít hrát s měřením spotřeby.
V článku si ukážeme, co modul INA219 umí, jak se zapojuje, proč se musí připojit do série se zátěží a jak si naměřené hodnoty zobrazit v Arduino IDE.


Co je INA219
INA219 je obvod určený pro měření proudu, napětí a výkonu v elektrickém obvodu. Nejčastěji se prodává jako malý hotový modul, na kterém je samotný čip INA219, měřicí odpor a několik dalších součástek.
Modul umí měřit:
- napětí na napájené větvi
- proud protékající obvodem
- výkon vypočítaný z napětí a proudu
Díky tomu se hodí třeba pro sledování spotřeby různých Arduino projektů, měření odběru motorů, LED pásků, senzorů, bateriových zařízení nebo malých solárních pokusů.
Důležité je pochopit jednu věc: INA219 se nezapojuje stejně jako voltmetr.
Napětí měříme paralelně, ale proud se měří v sérii se zátěží. To znamená, že modul musí být vložený přímo do cesty, kterou proud teče.

Jak INA219 měří proud
Na modulu je malý přesný odpor, kterému se říká bočník nebo také shunt resistor. Proud protéká přes tento odpor a na odporu vznikne velmi malý úbytek napětí.
Čip INA219 tento malý úbytek změří a podle něj vypočítá proud.
Zjednodušeně řečeno:
Čím větší proud teče přes měřicí odpor, tím větší úbytek napětí na něm vznikne.
INA219 tedy neměří proud „přímo“, ale měří malé napětí na známém odporu. Z toho potom spočítá proud.
To je také důvod, proč má modul svorky nebo piny označené například VIN+ a VIN−. Tudy prochází měřený proud.
High-side měření
INA219 se často označuje jako high-side current sensor. To znamená, že se obvykle zapojuje do kladné větve napájení, tedy mezi plus zdroje a plus zátěže.
To je praktické, protože nemusíme přerušovat zemní vodič. Zem zůstane společná a měří se proud v kladné větvi.
Arduino je k modulu připojené přes napájení a I2C sběrnici. Měřený proud ale neteče přes Arduino, teče přes svorky VIN+ a VIN− na modulu.
Zapojení modulu
Modul INA219 má obvykle tyto piny:
| Pin INA219 | Význam |
|---|---|
| VCC | napájení modulu |
| GND | zem |
| SDA | datová linka I2C |
| SCL | hodinová linka I2C |
| VIN+ | vstup měřeného proudu od zdroje |
| VIN− | výstup měřeného proudu ke zátěži |

U Arduina UNO a Nano je I2C sběrnice obvykle na pinech:
| INA219 | Arduino UNO / Nano |
|---|---|
| VCC | 5 V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
U Arduina Mega je I2C sběrnice na pinech:
| INA219 | Arduino Mega |
|---|---|
| VCC | 5 V |
| GND | GND |
| SDA | 20 |
| SCL | 21 |
Měřená část se zapojí do série se zátěží:
| Vodič | Zapojení |
|---|---|
| plus zdroje | VIN+ |
| VIN− | plus zátěže |
| minus zátěže | minus zdroje |
Tady je dobré dát si pozor. Pokud modul připojíme jen přes VCC, GND, SDA a SCL, bude sice komunikovat s Arduinem, ale žádný proud zátěží měřit nebude. Měřený obvod musí opravdu procházet přes VIN+ a VIN−.

Instalace knihovny
Pro práci s modulem použijeme knihovnu Adafruit INA219.
V Arduino IDE otevřeme Manažera knihoven, do vyhledávání zadáme Adafruit INA219 a nalezenou knihovnu nainstalujeme.
Arduino IDE se může zeptat také na instalaci dalších potřebných knihoven od Adafruit. Ty necháme nainstalovat také, aby knihovna správně fungovala.
První testovací program
Nejdřív si nahrajeme jednoduchý program, který bude vypisovat naměřené hodnoty do Serial Monitoru.
#include <Wire.h>
#include <Adafruit_INA219.h>
Adafruit_INA219 ina219;
void setup() {
Serial.begin(9600);
while (!Serial) {
delay(1);
}
Serial.println("Test modulu INA219");
if (!ina219.begin()) {
Serial.println("Modul INA219 nebyl nalezen. Zkontroluj zapojeni.");
while (1) {
delay(10);
}
}
Serial.println("INA219 nalezen.");
}
void loop() {
float shuntVoltage = 0;
float busVoltage = 0;
float current_mA = 0;
float loadVoltage = 0;
float power_mW = 0;
shuntVoltage = ina219.getShuntVoltage_mV();
busVoltage = ina219.getBusVoltage_V();
current_mA = ina219.getCurrent_mA();
power_mW = ina219.getPower_mW();
loadVoltage = busVoltage + (shuntVoltage / 1000);
Serial.println("-------------------------");
Serial.print("Napeti sbernice: ");
Serial.print(busVoltage);
Serial.println(" V");
Serial.print("Ubytek na bocniku: ");
Serial.print(shuntVoltage);
Serial.println(" mV");
Serial.print("Napeti zateze: ");
Serial.print(loadVoltage);
Serial.println(" V");
Serial.print("Proud: ");
Serial.print(current_mA);
Serial.println(" mA");
Serial.print("Vykon: ");
Serial.print(power_mW);
Serial.println(" mW");
delay(1000);
}
Po nahrání programu otevřeme Serial Monitor a nastavíme rychlost na 9600 baudů. Pokud je vše správně zapojené, měly by se začít vypisovat hodnoty napětí, proudu a výkonu.

Co znamenají vypsané hodnoty
Program vypisuje několik údajů.
Napětí sběrnice
To je napětí měřené na napájené větvi za měřicím odporem. V praxi nás bude často zajímat jako napětí zátěže.
Úbytek na bočníku
To je malé napětí, které vzniká na měřicím odporu. Běžně půjde o milivolty. Právě z této hodnoty se počítá proud.
Proud
To je proud, který protéká přes modul ze zdroje do zátěže. Hodnota je vypsaná v miliampérech.
Výkon
Výkon je vypočítaný z napětí a proudu. Program ho vypisuje v miliwattech.
Zjednodušeně platí:
výkon = napětí × proud
Pokud tedy zařízení odebírá 5 V a 100 mA, jeho příkon je přibližně 0,5 W.
Měření odběru Arduina nebo jiného modulu
INA219 se hodí i na měření spotřeby hotového zařízení. Můžeme přes něj napájet například Arduino, ESP modul nebo jiný obvod.
Tady už je ale potřeba dávat pozor na proud. Běžné moduly INA219 mají na desce malý měřicí odpor a nejsou určené pro velké proudy. Pro malé projekty, senzory a běžné Arduino pokusy je to v pořádku, ale pro silné motory, dlouhé LED pásky nebo výkonné spotřebiče už to vhodné být nemusí.
Běžné breakout moduly s odporem 0,1 Ω se často uvádějí zhruba do 3,2 A, ale vždy záleží na konkrétním modulu a jeho provedení.
Na co si dát pozor
U INA219 je několik věcí, které je dobré si pohlídat.
Modul se zapojuje do série
Toto je nejčastější začátečnická chyba. Pokud chceme měřit proud, musí proud přes modul opravdu téct.
Nestačí připojit jen I2C piny k Arduinu.
Pozor na maximální proud
Malý modul není univerzální ampérmetr pro cokoliv. Je určený pro menší proudy. Pokud přes něj pustíme příliš velký proud, může se měřicí odpor zahřívat nebo poškodit.
Pozor na maximální napětí
INA219 se často používá pro měření napájecích větví do desítek voltů. U běžných modulů se často uvádí maximum kolem 26 V. Pro Arduino pokusy s 5 V nebo 12 V je to obvykle v pohodě, ale u vyšších napětí je potřeba ověřit konkrétní modul.
Společná zem
Arduino a měřený obvod by měly mít společnou zem. Jinak může být měření nespolehlivé nebo nemusí komunikace správně fungovat.
Úbytek napětí na měřicím odporu
Protože proud teče přes měřicí odpor, vzniká na něm malý úbytek napětí. Většinou je malý, ale u citlivých nebo proudově náročnějších obvodů s ním musíme počítat.
Kde se INA219 hodí
Modul INA219 se hodí hlavně tam, kde chceme sledovat spotřebu nebo výrobu energie.
Například:
- měření odběru Arduino projektu,
- sledování spotřeby ESP8266 nebo ESP32,
- měření proudu LED pásku,
- měření malého solárního panelu,
- kontrola vybíjení baterie,
- porovnání spotřeby různých režimů zařízení,
- zjištění, kolik bere motor naprázdno a při zatížení.
Pro začátečníka je to dobrý modul i proto, že na něm jde pěkně pochopit rozdíl mezi napětím, proudem a výkonem.
Závěr
INA219 je šikovný modul pro každého, kdo si chce u Arduino projektů začít měřit spotřebu. Umí měřit napětí, proud i výkon a díky komunikaci přes I2C se s ním pracuje velmi jednoduše.
Nejdůležitější je správně pochopit zapojení. Měřený proud musí téct přes svorky VIN+ a VIN−, takže modul zapojujeme do série se zátěží. Jakmile je toto jasné, je použití INA219 poměrně jednoduché.
Pro běžné pokusy s Arduinem, LEDkami, malými moduly nebo solárním panelem je to velmi užitečný pomocník. Místo odhadování spotřeby dostaneme konkrétní čísla, se kterými se dá dál pracovat.
V dalších pokusech se dá modul použít třeba pro sledování vybíjení baterie, měření malého solárního systému nebo porovnání spotřeby zařízení v různých režimech.
Tento senzor zakoupíte na Laskakit.cz přímý odkaz je ZDE.
Další díly ze začátečnické série o modulech najdete zde:
- Arduino a klávesnice M5 Stack
- Arduino a modul RTC DS3231
- Měření světla s Arduinem: senzor VEML7700
- Rotační enkodér s tlačítkem a Arduino
- Měření proudu a napětí s Arduinem: senzor INA219 (právě jste dočetli)
- Servo: malý motor, který ví, kam se má otočit
