Les principaux paramètres de la carte sont indiqués sur la carte elle-même.
L'élément principal de la carte est la puce INA219. La puce INA219, malgré sa petite taille et son petit nombre de broches, a de grandes capacités. Le microcircuit mesure la tension au shunt (aux bornes Vin + et Vin_) - une résistance à faible résistance et à la broche Vin par rapport à la broche GND, à son tour. Les résultats des calculs sont écrits dans des registres, puis transmis au microcontrôleur via le bus de communication I2C. Un shunt avec une résistance de 0,1 ohms est installé sur la carte. La tension dans la puce mesure le convertisseur analogique-numérique de l'ADC. L'ADC peut fonctionner en modes 9, 10, 11, 12 tibits. Le mode de fonctionnement de la puce est configuré en modifiant le registre de configuration. Le fabricant dispose d'un programme gratuit, INA219 EVM, pour configurer la puce INA219. Fichier programme - sboc271.zip
Fichier de fiche technique sur la puce INA291 -
Voir le fichier en ligne:
Le microcircuit a la capacité d'ajuster la précision de ses mesures, en d'autres termes, il est possible d'étalonner les résultats de mesure.
Pour vérifier le fonctionnement de la carte sur la puce INA219, le circuit suivant a été assemblé.
L'alimentation de la carte avec la puce INA219 doit être fournie par la carte Arduino ou autre source d'alimentation.
Pour travailler avec la carte sur la puce INA219 dans le système de programmation Arduino IDE, nous avons besoin d'une bibliothèque. Les recherches sur Internet ont donné un résultat positif. J'ai trouvé plusieurs bibliothèques, mais cela a fonctionné pour moi avec seulement deux.
La première bibliothèque d'Adafruit a été trouvée - Adafruit_INA219-master.zip
Cela fonctionne, mais je n'ai pas pu me connecter à la carte avec la puce INA219 lorsque j'ai changé l'adresse du bus I2C. Par défaut, une carte avec une puce INA219 a une adresse de bus I2C 0x40. Il ne vous permet pas non plus de configurer le mode de fonctionnement de la puce INA219.
La deuxième bibliothèque était dépourvue des lacunes de la première. La deuxième bibliothèque de travail est Arduino-INA219-master.zip
Comment les bibliothèques sont-elles installées dans le système de programmation Arduino IDE? Vous pouvez obtenir la réponse à cette question à partir de mes articles ou des informations publiées sur Internet.
Je veux utiliser la carte avec la puce INA219 pour des expériences. Il sera plus pratique pour moi de travailler avec si je soude le connecteur et les broches du BLS sur la carte.
J'ai assemblé le circuit, connecté les broches Data (SDA) et Clok (SCL) à la carte Arduino UNO. Connectez la sortie de données (SDA) au connecteur A4, connectez la sortie Clok (SCL) au connecteur A5 de la carte Arduino UNO. Ouvrez ensuite le programme Arduino IDE. J'ai déjà installé des bibliothèques. Nous ouvrons un exemple de la première bibliothèque.
J'ai changé la ligne 9 dans le code au lieu de 115200, réglé 9600. Sinon, des gribouillis apparaîtront dans le moniteur du port série au lieu des chiffres et des lettres. J'ai également configuré le port com de l'ordinateur à une vitesse de 9600. Cela a été testé par moi dans la pratique.
Nous compilons l'exemple getcurrent. Nous chargeons les données dans le contrôleur de la carte Arduino UNO. Ouvrez le moniteur de port série dans le programme Arduino UNO et voyez le résultat de mesure obtenu à partir de la puce INA219.
Le résultat de mesure de la puce INA219 était précis.
Ensuite, j'ai décidé de changer l'adresse du bus I2C. Et avant cela, j'ai déterminé l'adresse du bus I2C de la carte INA219 à l'aide d'un croquis, comme je l'ai fait dans l'article «Station météo domestique sur GY-BMP280-3.3 et Ds18b20»
Pour changer l'adresse de bus I2C de la carte à partir de la puce INA219, j'ai soudé le cavalier et déterminé une nouvelle adresse de bus I2C.
Ensuite, j'ai téléchargé l'exemple de la deuxième bibliothèque.
Pour que le code compilé (converti sous une forme adaptée à l'écriture sur le microcontrôleur de la carte Arduino UNO) puisse fonctionner avec la carte sur la puce INA219 avec l'adresse 0x44, vous devez modifier la ligne ina.begin () dans l'exemple; à la chaîne ina.begin (68);
Pourquoi 68? Et parce que 68 = 0 x 44, 68 est un nombre dans le système numérique décimal, 0 x 44 est un nombre dans le système numérique octal.
Pour traduire des nombres, vous pouvez utiliser la calculatrice standard.
Après avoir changé la ligne de compilation de l'exemple, flashé le code dans Arduino UNO dans le moniteur du port série, j'ai vu ce qui suit.
Bonne chance à tous dans vos efforts et vos actions!
Coût: ~ 80