Die Hauptparameter der Karte sind auf der Karte selbst angegeben.
Das Hauptelement auf der Platine ist der INA219-Chip. Der INA219-Chip verfügt trotz seiner geringen Größe und geringen Anzahl von Pins über große Fähigkeiten. Die Mikroschaltung misst die Spannung am Shunt (an den Klemmen Vin + und Vin_) - einem Widerstand mit niedrigem Widerstand und am Vin-Pin relativ zum GND-Pin. Die Berechnungsergebnisse werden in Register geschrieben und dann über den I2C-Kommunikationsbus an den Mikrocontroller übertragen. Die Platine hat einen Shunt mit einem Widerstand von 0,1 Ohm. Die Spannung im Chip misst den Analog-Digital-Wandler des ADC. Der ADC kann in 9, 10, 11, 12 Tibit-Modi betrieben werden. Die Betriebsart des Chips wird durch Ändern des Konfigurationsregisters konfiguriert. Der Hersteller hat ein kostenloses Programm, INA219 EVM, zur Konfiguration des INA219-Chips. Programmdatei - sboc271.zip
Datenblattdatei auf dem INA291-Chip -
Online-Datei anzeigen:
Die Mikroschaltung hat die Fähigkeit, die Genauigkeit ihrer Messungen anzupassen, mit anderen Worten, es ist möglich, die Messergebnisse zu kalibrieren.
Um den Betrieb der Karte auf dem INA219-Chip zu überprüfen, wurde die folgende Schaltung zusammengebaut.
Die Stromversorgung der Karte mit dem INA219-Chip muss über die Karte erfolgen Arduino oder eine andere Stromquelle.
Um mit der Karte auf dem INA219-Chip im Arduino IDE-Programmiersystem arbeiten zu können, benötigen wir eine Bibliothek. Internetrecherchen ergaben ein positives Ergebnis. Ich habe mehrere Bibliotheken gefunden, aber mit nur zwei hat es bei mir funktioniert.
Die erste Bibliothek von Adafruit wurde gefunden - Adafruit_INA219-master.zip
Es funktioniert, aber ich konnte keine Verbindung mit dem INA219-Chip herstellen, als ich die I2C-Busadresse änderte. Standardmäßig hat eine Karte mit einem INA219-Chip eine I2C 0x40-Busadresse. Außerdem können Sie den Betriebsmodus des INA219-Chips nicht konfigurieren.
Die zweite Bibliothek war frei von den Mängeln der ersten. Die zweite Arbeitsbibliothek ist Arduino-INA219-master.zip
Wie werden Bibliotheken im Arduino IDE-Programmiersystem installiert? Die Antwort auf diese Frage finden Sie in meinen Artikeln oder in Informationen im Internet.
Ich möchte die Karte mit dem INA219-Chip für Experimente verwenden. Es ist für mich bequemer, damit zu arbeiten, wenn ich den Stecker und die Stifte des BLS auf die Platine löte.
Ich baute die Schaltung zusammen und verband die Daten- (SDA) und Clok- (SCL) Pins mit der Arduino UNO-Karte. Verbinden Sie den Datenausgang (SDA) mit dem A4-Anschluss und den Clok-Ausgang (SCL) mit dem A5-Anschluss der Arduino UNO-Karte. Öffnen Sie dann das Arduino IDE-Programm. Ich habe bereits Bibliotheken installiert. Wir öffnen ein Beispiel für die erste Bibliothek.
Ich habe Zeile 9 im Code anstelle von 115200 geändert und 9600 eingestellt. Andernfalls werden auf dem Monitor der seriellen Schnittstelle anstelle von Zahlen und Buchstaben Kritzeleien angezeigt. Ich habe auch den COM-Port des Computers auf eine Geschwindigkeit von 9600 konfiguriert. Dies wurde von mir in der Praxis getestet.
Wir kompilieren das getcurrent-Beispiel. Wir laden Daten in den Controller der Arduino UNO-Karte. Öffnen Sie den Monitor für die serielle Schnittstelle im Arduino UNO-Programm und sehen Sie das Messergebnis des INA219-Chips.
Das Messergebnis des INA219-Chips war genau.
Als nächstes habe ich beschlossen, die Adresse des I2C-Busses zu ändern. Und vorher habe ich die I2C-Busadresse der INA219-Karte mit Hilfe einer Skizze ermittelt, wie ich es im Artikel „Heimwetterstation auf GY-BMP280-3.3 und Ds18b20»
Um die I2C-Busadresse der Karte vom INA219-Chip zu ändern, habe ich den Jumper gelötet und eine neue I2C-Busadresse ermittelt.
Dann habe ich das Beispiel aus der zweiten Bibliothek heruntergeladen.
Damit der kompilierte Code (konvertiert in eine Form, die zum Schreiben auf den Mikrocontroller der Arduino UNO-Karte geeignet ist) mit der Karte auf dem INA219-Chip mit der Adresse 0x44 arbeiten kann, müssen Sie im Beispiel die Zeile ina.begin () ändern. zum String ina.begin (68);
Warum 68? Und weil 68 = 0 x 44, 68 eine Zahl im Dezimalzahlensystem ist, ist 0 x 44 eine Zahl im Oktalzahlensystem.
Zum Übersetzen von Zahlen können Sie den Standardrechner verwenden.
Nachdem ich die Kompilierungszeile des Beispiels geändert und den Code in Arduino UNO auf dem Monitor für die serielle Schnittstelle geflasht hatte, sah ich Folgendes.
Viel Glück für alle in Ihren Bemühungen und Taten!
Kosten: ~ 80