» AliExpress » Elektroniska komponenter »Kort med INA219-chip för att mäta I och U med I2C-kommunikationsbuss

Kort med INA219-chip för att mäta I och U med I2C-kommunikationsbuss

Jag köpte ett bräde med ett INA219-chip för att mäta jag och U med en I2C-kommunikationsbuss på aliexpress. BLS-anslutningen och stiften levereras med kortet, som antingen kan installeras eller inte installeras på kortet.
Kort med INA219-chip för att mäta I och U med I2C-kommunikationsbuss



Styrelsens huvudparametrar anges på själva kortet.

Huvudelementet på kortet är INA219-chipet. INA219-chipet, trots sin lilla storlek och sitt lilla antal stift, har stora funktioner. Mikrokretsen mäter spänningen vid shunt (vid plintarna Vin + och Vin_) - ett motstånd med lågt motstånd och vid Vin-stiftet i förhållande till GND-stiftet i sin tur. Beräkningsresultaten skrivs i register och överförs sedan till mikrokontrollern via I2C-kommunikationsbussen. Brädet har en shunt med ett motstånd på 0,1 ohm. Spänningen i chipet mäter ADC: s analoga till digitala omvandlare. ADC kan fungera i 9, 10, 11, 12 tibit-lägen. Funktionsläget för chipet konfigureras genom att ändra konfigurationsregistret. Tillverkaren har ett gratis program, INA219 EVM, för att konfigurera INA219-chipet. Programfil - sboc271.zip
sboc271.zip [3,55 Mb] (nedladdningar: 367)

Databladfil på INA291-chipet -
ina219.pdf [1.14 Mb] (nedladdningar: 361)
Visa online-fil:


Mikrokretsen har förmågan att justera noggrannheten i sina mätningar, med andra ord är det möjligt att kalibrera mätresultaten.

För att verifiera kortets funktion på INA219-chipet monterades följande krets.

Ström på kortet med INA219-chipet måste levereras från kortet Arduino eller annan kraftkälla.
För att arbeta med kortet på INA219-chipet i Arduino IDE-programmeringssystemet behöver vi ett bibliotek. Internetsökningar gav ett positivt resultat. Jag hittade flera bibliotek, men det fungerade för mig med bara två.
Det första biblioteket från Adafruit hittades - Adafruit_INA219-master.zip
adafruit_ina219-master.zip [11.97 Kb] (nedladdningar: 177)

Det fungerar, men jag kunde inte ansluta till kortet med INA219-chipet när jag ändrade I2C-bussadressen. Som standard har ett kort med ett INA219-chip en I2C 0x40-bussadress. Det tillåter dig inte heller att konfigurera driftläget för INA219-chipet.
Det andra biblioteket saknade de första bristerna. Det andra arbetsbiblioteket är Arduino-INA219-master.zip
arduino-ina219-master.zip [17.52 Kb] (nedladdningar: 451)

Hur installeras bibliotek i Arduino IDE-programmeringssystemet? Du kan få svaret på den här frågan från mina artiklar eller från information publicerad på Internet.
Jag vill använda kortet med INA219-chipet för experiment. Det kommer att vara bekvämare för mig att arbeta med det om jag löd BLS-kontakten och stiften på kortet.


Jag monterade kretsen, anslöt data (SDA) och Clok (SCL) stiften till Arduino UNO-kortet. Anslut datautgången (SDA) till A4-anslutningen, anslut Clok (SCL) -utgången till A5-anslutningen på Arduino UNO-kortet. Öppna sedan Arduino IDE-programmet. Jag har redan installerat bibliotek. Vi öppnar ett exempel på det första biblioteket.

Jag ändrade rad 9 i koden istället för 115200, inställd 9600. Annars kommer klotter att visas på seriell portmonitor istället för siffror och bokstäver. Jag konfigurerade också datorns com-port till en hastighet av 9600. Detta testades av mig i praktiken.


Vi sammanställer getcurrent-exemplet. Vi läser in data i styrenheten på Arduino UNO-styrelsen. Öppna seriell portmonitorn i Arduino UNO-programmet och se mätresultatet från INA219-chipet.

Mätresultatet för INA219-chipet var korrekt.
Därefter bestämde jag mig för att ändra adressen till I2C-bussen. Och innan det bestämde jag I2C-bussadressen till INA219-styrelsen med hjälp av en skiss, som jag gjorde i artikeln "Hemväderstation på GY-BMP280-3.3 och Ds18b20»

För att ändra kortets I2C-bussadress från INA219-chipet lödde jag bygeln och bestämde en ny I2C-bussadress.


Sedan laddade jag ner exemplet från det andra biblioteket.

För att den sammanställda koden (konverterad till ett formulär som är lämpligt att skriva till mikrokontrollern på Arduino UNO-kortet) ska kunna arbeta med kortet på INA219-chipet med adressen 0x44, måste du ändra raden ina.begin () i exemplet; till strängen ina.begin (68);

Varför 68? Och eftersom 68 = 0 x 44, 68 är ett tal i decimaltalssystemet, är 0 x 44 ett tal i det oktala talsystemet.
För att översätta siffror kan du använda standardräknaren.

Efter att ha ändrat kompileringslinjen i exemplet och blinkat koden i Arduino UNO i seriell portmonitor såg jag följande.

Lycka till alla i era ansträngningar och gärningar!

Kostnad: ~ 80

Lägg till en kommentar

    • lelerxaxaOKdontknowyahoonea
      bossscratchluraJaja-jaaggressivhemlighet
      ledsendansdance2dance3benådningHjälpdrycker
      stoppvännerbragoodgoodvisselpipasvimningsanfalltunga
      rökklapparcraydeclarehånfulldon-t_mentionnedladdning
      hettaRASANDElaugh1mdamötemoskingnegativ
      not_ipopcornstraffalässkrämmalarmrapportersök
      hånthank_youdettato_clueumnikakutöverens
      illabeeeblack_eyeblum3rougeskrytaledan
      censureradepleasantrysecret2hotasegeryusun_bespectacled
      shokrespektlolprevedvälkommenkrutoyya_za
      ya_dobryihjälparene_huliganne_othodiFLUDförbudstänga
3 kommentarer
68 = 0 x 44, 68 är siffran i decimalsystemet, 0 x 44 är numret i det oktala systemet.
0x44 är ett tal i det hexadecimala systemet, inte i oktal. ((
Gäst Vadim
Kopplingsschemat som visas på figuren är felaktigt! Författare, har du någonsin kontrollerat vad du erbjuder? Det ser ut som bevisen har hämtats från bulldozern.
Vad kommer att hända i ett sådant schema med sensoravläsningar utan belastning? Och hur kan sensorn bestämma spänningen på batteriet (BusVoltage) med hjälp av denna krets? Och på last?
Gäst Pavel
Varför inte skriva ina.begin (0x44)?

Vi rekommenderar att du läser:

Räcka den till smarttelefonen ...