» AliExpress » Elektroniske komponenter »Board med INA219-brikke for måling av I og U med I2C kommunikasjonsbuss

Tavle med INA219-brikke for måling av I og U med I2C kommunikasjonsbuss

Jeg kjøpte et brett med en INA219-brikke for å måle jeg og U med en I2C kommunikasjonsbuss på aliexpress. BLS-kontakten og pinnene leveres med brettet, som enten kan installeres eller ikke installeres på brettet.
Tavle med INA219-brikke for måling av I og U med I2C kommunikasjonsbuss



Hovedparametrene til styret er angitt på selve brettet.

Hovedelementet på brettet er INA219-brikken. Til tross for sin lille størrelse og lite antall pinner, har INA219-brikken gode muligheter. Mikrokretsløpet måler spenningen på shunten (ved terminalene Vin + og Vin_) - en motstand med lav motstand og på Vin-pinnen i forhold til GND-pinnen, i sin tur. Beregningsresultatene blir skrevet inn i registre, deretter overføres de til mikrokontrolleren via I2C kommunikasjonsbussen. En shunt med en motstand på 0,1 ohm er installert på brettet. Spenningen i brikken måler den analoge til digitale omformeren til ADC. ADC-en kan fungere i 9, 10, 11, 12 tibit-modus. Driftsmodusen til brikken konfigureres ved å endre konfigurasjonsregisteret. Produsenten har et gratis program, INA219 EVM, for å konfigurere INA219-brikken. Programfil - sboc271.zip
sboc271.zip [3,55 Mb] (nedlastinger: 367)

Databladfil på INA291-brikken -
ina219.pdf [1,14 Mb] (nedlastinger: 361)
Vis online fil:


Mikrokretsen har muligheten til å justere nøyaktigheten til målingene, det er med andre ord mulig å kalibrere måleresultatene.

For å bekrefte driften av brettet på INA219-brikken, ble følgende krets satt sammen.

Strøm på brettet med INA219-brikken må leveres fra brettet Arduino eller annen strømkilde.
For å jobbe med styret på INA219-brikken i Arduino IDE-programmeringssystemet, trenger vi et bibliotek. Internett-søk ga et positivt resultat. Jeg fant flere biblioteker, men det fungerte for meg med bare to.
Det første biblioteket fra Adafruit ble funnet - Adafruit_INA219-master.zip
adafruit_ina219-master.zip [11.97 Kb] (nedlastinger: 177)

Det fungerer, men jeg kunne ikke koble meg til styret med INA219-brikken da jeg endret I2C-bussadresse. Som standard har et brett med en INA219-brikke en I2C 0x40-bussadresse. Det lar deg heller ikke konfigurere driftsmodusen til INA219-brikken.
Det andre biblioteket var blottet for feilene til det første. Det andre arbeidsbiblioteket er Arduino-INA219-master.zip
arduino-ina219-master.zip [17.52 Kb] (nedlastinger: 451)

Hvordan installeres biblioteker i Arduino IDE-programmeringssystemet? Du kan få svaret på dette spørsmålet fra artiklene mine eller fra informasjon lagt ut på Internett.
Jeg vil bruke brettet med INA219-brikken for eksperimenter. Det vil være mer praktisk for meg å jobbe med det hvis jeg lodder kontakten og pinnene på BLS på brettet.


Jeg monterte kretsen, koblet Data (SDA) og Clok (SCL) pinnene til Arduino UNO-styret. Koble datautgangen (SDA) til A4-kontakten, koble Clok (SCL) -utgangen til A5-kontakten på Arduino UNO-kortet. Åpne deretter Arduino IDE-programmet. Jeg har allerede installert biblioteker. Vi åpner et eksempel på det første biblioteket.

Jeg byttet linje 9 i koden i stedet for 115200, sett 9600. Ellers vil det komme scribbles på seriell portmonitor i stedet for tall og bokstaver. Jeg konfigurerte også datamaskinens com-port til en hastighet på 9600. Dette ble testet av meg i praksis.


Vi sammenstiller getcurrent-eksempelet. Vi laster inn data i kontrolleren til Arduino UNO-styret. Åpne seriellportmonitoren i Arduino UNO-programmet og se måleresultatet oppnådd fra INA219-brikken.

Måleresultatet til INA219-brikken var nøyaktig.
Deretter bestemte jeg meg for å endre adressen til I2C-bussen. Og før det bestemte jeg I2C-bussadressen til INA219-styret ved hjelp av en skisse, som jeg gjorde i artikkelen “Hjemme værstasjon på GY-BMP280-3.3 og Ds18b20»

For å endre I2C-busadressen til brettet fra INA219-brikken, loddet jeg hopperen og bestemte en ny I2C-bussadresse.


Så lastet jeg ned eksemplet fra det andre biblioteket.

For at den kompilerte koden (konvertert til et skjema som er egnet for skriving til mikrokontrolleren til Arduino UNO-styret) skal kunne jobbe med brettet på INA219-brikken med adressen 0x44, må du endre ina.begin () -linjen i eksemplet; til strengen ina.begin (68);

Hvorfor 68? Og fordi 68 = 0 x 44, 68 er et tall i desimaltallssystemet, er 0 x 44 et tall i det oktale tallsystemet.
For å oversette tall kan du bruke standardkalkulatoren.

Etter å ha endret kompilasjonslinjen i eksemplet, blinket koden i Arduino UNO i seriell portmonitor, så jeg følgende.

Lykke til alle i dine bestrebelser og gjerninger!

Kostnad: ~ 80

Legg til en kommentar

    • smilersmilerxaxaokdontknowyahoonea
      sjefscratchlurejaja-jaaggressivhemmelighet
      beklagerdansedance2dance3benådninghjelpdrikkevarer
      stoppvennergodgoodgoodfløytebesvimelsetunge
      røykklappingCrayerklærehånligdon-t_mentionnedlasting
      heteirefullaugh1MDAmøtemoskingnegative
      not_ipopcornstraffeleseskremmeskremmersøk
      spydighetthank_youdetteto_clueumnikakuttenig
      dårligbeeeblack_eyeblum3rødmeskrytekjedsomhet
      sensurertpleasantrysecret2trueseieryusun_bespectacled
      ShokRespektlolPrevedvelkommenKrutoyya_za
      ya_dobryihelperne_huliganne_othodiFLUDforbudnær
3 kommentarer
68 = 0 x 44, 68 er tallet i desimalsystemet, 0 x 44 er tallet i oktalsystemet.
0x44 er et tall i det heksadesimale systemet, ikke i oktal. ((
Gjest Vadim
Koblingsskjemaet som er vist på figuren er feil! Forfatter, har du noen gang sjekket hva du tilbyr? Det ser ut som bevisene er hentet fra bulldoseren.
Hva vil skje i et slikt opplegg med sensoravlesninger uten belastning? Og hvordan kan sensoren bestemme spenningen på batteriet (BusVoltage) ved bruk av denne kretsen? Og på last?
Gjestepavel
Hvorfor ikke skrive ina.begin (0x44)?

Vi anbefaler deg å lese:

Gi den til smarttelefonen ...