Description
INA169 Module Capteur de Courant
Le module capteur de courant INA169 est utilisé pour mesurer les courants DC jusqu’à 5A et les tensions jusqu’à 60V. Il utilise un amplificateur à effet Hall pour convertir les courants en signaux analogiques proportionnels. Le capteur est particulièrement utile pour la surveillance de courant côté haut (high-side).
Caractéristiques en détail
- Tension de fonctionnement : 2.7V à 60V DC
- Courant de mesure : Jusqu’à 5A
- Sensibilité : 1V/A par défaut (modifiable avec une résistance de charge)
- Sortie : Tension analogique proportionnelle au courant mesuré
- Précision : ±1.5%
- Température de fonctionnement : -40°C à 85°C
- Dimensions : Compact et facile à intégrer
- Résistance de détection : 0.1 ohm, 1%, 2W
Fonctionnement
Le capteur de courant INA169 utilise un circuit intégré basé sur l’effet Hall pour mesurer le courant. Le courant à mesurer passe à travers une résistance de shunt intégrée dans le module, générant une chute de tension proportionnelle au courant. Cette chute de tension est amplifiée et convertie en une tension analogique proportionnelle au courant mesuré.
Applications
- Surveillance de courant pour les moteurs et les systèmes de charge de batterie
- Gestion de l’alimentation pour les appareils électroniques
- Protection contre les surintensités dans les circuits
- Prototypage de robots et de machines autonomes
- Détection et mesure de courant dans les systèmes de gestion de l’énergie
Brochage
- V+ : Connexion au pôle positif de la source de charge
- V- : Connexion au pôle négatif de la source de charge
- OUT : Sortie analogique proportionnelle au courant mesuré
- GND : Masse
Comment l’utiliser
Pour utiliser le capteur de courant INA169 avec un Arduino, connectez la broche V+ à la source de charge, la broche V- à la masse de la charge, et la broche OUT à une entrée analogique de l’Arduino.
Comment l’utiliser avec Arduino Uno
Exemple de code Arduino de base
#define CURRENT_SENSOR_PIN A0
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(CURRENT_SENSOR_PIN);
float voltage = sensorValue * (5.0 / 1023.0);
float current = voltage; // 1V/A pour le module INA169
Serial.print("Current: ");
Serial.print(current);
Serial.println(" A");
delay(1000);
}
But du code
Ce code lit les valeurs analogiques du capteur de courant et les convertit en courant en utilisant la formule appropriée. Les valeurs de courant sont affichées sur le moniteur série.
Composants nécessaires pour le code de base
- Arduino Uno
- Module capteur de courant INA169
- Câbles de connexion
Explication détaillée du code de base
- Initialisation : La communication série est établie à 9600 bauds.
- Lecture des données : Les valeurs analogiques du capteur sont lues et converties en tension. La tension est ensuite convertie en courant en utilisant la sensibilité du capteur (1V/A). Les valeurs de courant sont affichées sur le moniteur série.
Brochage détaillé des connexions du code de base
- V+ : Connexion au pôle positif de la source de charge
- V- : Connexion au pôle négatif de la source de charge
- OUT : A0 (Arduino)
- GND : GND (Arduino)
Exemple de code Arduino avancé pour affichage sur LCD
#include <LiquidCrystal_I2C.h>
// Constantes
const float V_REF = 5.0;
const int ADC_RESOLUTION = 1023;
const float CURRENT_SENSITIVITY = 1.0; // Sensibilité du module : 1V/A
const int CURRENT_SENSOR_PIN = A0;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.begin();
lcd.backlight();
Serial.begin(9600);
}
void readSensorValues(int& currentSensorValue) {
currentSensorValue = analogRead(CURRENT_SENSOR_PIN);
}
float calculateCurrent(int currentSensorValue) {
return currentSensorValue * (V_REF / ADC_RESOLUTION) * CURRENT_SENSITIVITY;
}
void displayValuesOnLCD(float current) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Current: ");
lcd.print(current, 2); // Affiche le courant avec 2 décimales
lcd.print(" A");
}
void displayValuesOnSerialConsole(float current) {
Serial.print("Current: ");
Serial.print(current, 2);
Serial.println(" A");
}
void loop() {
int currentSensorValue;
readSensorValues(currentSensorValue);
float current = calculateCurrent(currentSensorValue);
displayValuesOnLCD(current);
displayValuesOnSerialConsole(current);
delay(1000);
}
But du code
Ce code affiche les valeurs de courant mesurées par le capteur INA169 sur un écran LCD I2C et sur la console série.
Composants nécessaires pour le code avancé
- Arduino Uno
- Module capteur de courant INA169
- Écran LCD I2C 1602
- Câbles de connexion
Explication détaillée du code avancé
- Inclusion de la bibliothèque La première ligne du code inclut la bibliothèque
LiquidCrystal_I2C.h
, qui permet de communiquer avec un écran LCD utilisant le protocole I2C. - Définition des constantes Les lignes suivantes définissent des constantes utilisées dans le code :
V_REF
: la tension de référence de l’Arduino, qui est de 5 volts.ADC_RESOLUTION
: la résolution de la conversion analogique-numérique de l’Arduino, qui est de 1023.CURRENT_SENSITIVITY
: la sensibilité du capteur de courant, qui est de 1 volt par ampère.CURRENT_SENSOR_PIN
: la broche de connexion du capteur de courant, définie comme A0.
- Initialisation de l’écran LCD La fonction
setup()
initialise l’écran LCD en appelant les méthodesbegin()
etbacklight()
de la bibliothèqueLiquidCrystal_I2C
. Elle initialise également la communication série à une vitesse de 9600 bauds. - Lecture des valeurs des capteurs La fonction
readSensorValues(int& currentSensorValue)
lit les valeurs analogiques du capteur de courant et les stocke dans la variablecurrentSensorValue
. - Calcul du courant La fonction
calculateCurrent(int currentSensorValue)
calcule le courant en multipliant la valeur lue par la tension de référence, divisée par la résolution de l’ADC, et par la sensibilité du capteur de courant. - Affichage des valeurs sur l’écran LCD La fonction
displayValuesOnLCD(float current)
affiche les valeurs de courant sur l’écran LCD avec deux décimales de précision. Elle efface d’abord l’écran, positionne le curseur à la ligne 0, colonne 0, puis affiche le texte “Current: ” suivi de la valeur du courant et de l’unité “A”. - Affichage des valeurs sur la console série La fonction
displayValuesOnSerialConsole(float current)
envoie les valeurs de courant à la console série, avec deux décimales de précision. Elle utiliseSerial.print
pour afficher les données dans un format lisible. - Boucle principale La boucle
loop()
lit les valeurs des capteurs de courant, calcule les valeurs réelles, et les affiche sur l’écran LCD et la console série. Elle attend ensuite une seconde avant de recommencer, grâce à l’appel de la fonctiondelay(1000)
.