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
Databladfil på INA291-brikken -
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
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
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