Logo Mon Club Elec

Test du capteur de courant ACS714 avec affichage sur écran LCD (ampèremètre 30A)

Le capteur de courant ACS714 est un composant électronique qui permet de mesurer le courant électrique dans un circuit. Il est très pratique pour les applications qui nécessitent une surveillance précise du courant. Dans cet article, nous allons tester le capteur de courant ACS714 avec un affichage sur un écran LCD et un ampèremètre 30A. Nous verrons comment le capteur peut être utilisé pour mesurer le courant et comment l’affichage sur l’écran LCD peut être configuré pour afficher les données. Nous verrons également comment l’ampèremètre 30A peut être utilisé pour vérifier la précision des mesures.

Test du capteur de courant ACS714 avec affichage sur écran LCD (ampèremètre 30A)

Test du capteur de courant ACS714 avec affichage sur écran LCD (ampèremètre 30A)

1.  Présentation

Ce programme mesure une intensité à l’aide du capteur de courant 30 A ACS714 et affiche le résultat sur un écran LCD

Ce programme utilise les fonctionnalités suivantes :

  • un afficheur LCD alphanumérique 4×20 en mode 4 bits
  • la conversion analogique numérique 10bits sur les voies analogiques analog 0,

Voir la page : Capteur de courant -30A/+30A ACS 714

A noter que la capteur 30 A a un sensibilité moyenne de l’ordre de 66mV/A. Pour plus de précisions, préférer la modèle 5A qui a une précision de 180mV/A environ. Tout dépend de ce que l’on veut mesurer.

2.  Matériel Nécessaire

2.1  L’espace de développement Arduino

  • … pour éditer, compiler le programme et programmer la carte Arduino.
Test du capteur de courant ACS714 avec affichage sur écran LCD (ampèremètre 30A)

2.2  Le matériel suivant pour réaliser le montage associé

  • une plaque d’essai pour montage sans soudures,
Test du capteur de courant ACS714 avec affichage sur écran LCD (ampèremètre 30A)
  • des straps,
Test du capteur de courant ACS714 avec affichage sur écran LCD (ampèremètre 30A)
  • Un capteur de courant ACS714
Test du capteur de courant ACS714 avec affichage sur écran LCD (ampèremètre 30A)

Acheté ici ( 9 Euros TTC seulement !) : http://www.watterott.com/en/ACS714-Current-Sensor-Carrier-30-to-30A
Une carte de chez Pololu : http://www.pololu.com/catalog/product/1187
Fiche technique (datasheet)du CI ACS714 : Datasheet du capteur ACS 714 – fabricant Allegro

3.  Note technique

Un point important dans l’utilisation de ce capteur est que la résistance interne du convertisseur analogique-numérique crée un pont diviseur avec une résistance de sortie interne au capteur. Il en résulte une tension d’atténuation Vatt = Vo x k.

Pour connaître le facteur k, il suffit de faire le rapport Vo réelle / Vo théorique = k. Le plus simple est de faire une mesure de Vo à vide. Dès lors on a :

k = Vo à vide réelle / Vo à vide théorique = Vo à vide réelle / 2500 (en mV)

Et pour toute mesure on aura : Vo théorique = Vo réel / k = Vo réel x 2500 / Vo réel à vide

En ce qui me concerne, j’ai trouvé Vo réel à vide à 2443mV.

Voir le datasheet, notamment la figure 6 pour plus de détails.
Voir également le programme ci-dessous.

4.  Instructions de montage

  • Connecter sur la broche 6 la broche RS du LCD
  • Connecter sur la broche 7 la broche E du LCD
  • Connecter sur la broche 8 la broche D4 du LCD
  • Connecter sur la broche 9 la broche D5 du LCD
  • Connecter sur la broche 10 la broche D6 du LCD
  • Connecter sur la broche 11 la broche D7 du LCD
  • Broche Analog 0 (=broche 14) en entrée Analogique

5.  Le schéma théorique du montage

Test du capteur de courant ACS714 avec affichage sur écran LCD (ampèremètre 30A)
Le schéma théorique du montage

6.  Le circuit du montage

Test du capteur de courant ACS714 avec affichage sur écran LCD (ampèremètre 30A)
Le schéma du montage à réaliser

7.  Explication du programme

7.1  Structure globale du programme

Ce programme simple comprend :

  • une entête déclarative
  • une partie « configuration » qui ne sera exécutée qu’une fois (fonction setup( ) )
  • une partie constituée d’une boucle sans fin que le programme répètera à l’infini ( fonction loop( ) ) : c’est le coeur du programme.

7.2  Déroulement du programme

Le programme se déroule de la façon suivante :

  • Après avoir pris en compte les instructions de la partie déclarative,
  • puis après avoir exécuté la partie configuration ( fonction setup( ) ),
  • le programme bouclera sans fin ( fonction loop ( ) ), exécutant de façon répétée le code compris dans la boucle sans fin.
Test du capteur de courant ACS714 avec affichage sur écran LCD (ampèremètre 30A)
Le déroulement du programme

8.  Au niveau de la partie déclarative :

Inclusion des librairies utilisées

  • On inclut les librairies des fonctionnalités utilisées :
    • Inclusion de la librairie pour l’afficheur LCD alphanumérique :

#include <LiquidCrystal.h> // Inclusion de la librairie pour afficheur LCD 

Déclaration de constantes utiles

  • On déclare les constantes utiles dans le programme :

Déclaration des constantes de broches

  • Déclaration des constantes pour les broches utilisées dans le programme :

const int RS=6; //declaration constante de broche 
const int E=7; //declaration constante de broche 
const int D4=8; //declaration constante de broche 
const int D5=9; //declaration constante de broche 
const int D6=10; //declaration constante de broche 
const int D7=11; //declaration constante de broche 
const int Voie_0=0; //declaration constante de broche analogique

Déclaration des variables globales

  • Déclaration des variables globales du programmes :
    • Déclaration des variables globales utilisées pour la conversion analogique-numérique
int mesure_brute=0;// Variable pour acquisition résultat brut de conversion analogique numérique
float mesuref=0.0;// Variable pour calcul résultat décimal de conversion analogique numérique


Déclarations des objets utiles pour les fonctionnalités utilisées

  • Déclaration des objets utiles pour les fonctionnalités utilisées :
    • Déclaration d’un objet LCD alphanumérique :

LiquidCrystal lcd(RS, E, D4, D5, D6, D7);// Création d'un objet LiquidCrystal = initialisation LCD en mode 4 bits 


9.  Au niveau de la fonction d’initialisation setup( ) :

Initialisation des fonctionnalités utilisées :

  • On initialise les différentes fonctionnalités utilisées :
    • Initialisation de l’utilisation de l’afficheur LCD alpha-numérique
lcd.begin(20,4); // Initialise le LCD avec 20 colonnes x 4 lignes 

delay(10); // pause rapide pour laisser temps initialisation


  • Test de l’afficheur LCD alpha-numérique
// Test du LCD

lcd.print("LCD OK") ; // affiche la chaîne texte - message de test
delay(2000); // pause de 2 secondes

lcd.clear(); // // efface écran et met le curseur en haut à gauche
delay(10); // pour laisser temps effacer écran


configuration des broches utilisées :

  • Configuration des broches en sortie :


  • Configuration des broches en entrée :


  • Activation du rappel au + interne des broches en entrée si nécessaire :


10.  Au niveau de la boucle principale, la fonction loop ( ) :


// --- ici instructions à exécuter par le programme principal ---


// --- ici instructions à exécuter par le programme principal ---

  • Le programme recommence en boucle les instructions de la fonction loop( ).

Se reporter aux commentaires présents dans le programme pour plus de détails.

11.  Autres Fonctions du programme :


// --- ici instructions à exécuter par la fonction ---

12.  Mise en oeuvre du programme

12.1  Préparation du montage et programmation de la carte Arduino :

  • Commencer par réaliser le montage indiqué sur plaque d’expérimentation
  • Ensuite, programmer la carte Arduino avec ce programme (en bas de page) selon la procédure habituelle

12.2  Fonctionnement

13.  Le programme complet en langage Arduino :

A copier/coller directement dans l’éditeur Arduino


// --- Programme Arduino ---
// par X. HINAULT - Le 13/03/2010
// www.mon-club-elec.fr 

// --- Que fait ce programme ? ---
/* mesure une intensité à l'aide du capteur de courant 30 A ACS714
et affiche le résultat sur un écran LCD

le capteur fournit une tension de sortie analogique 2.5V +/- 66mV/A

*/

// --- Fonctionnalités utilisées ---
// Utilise un afficheur LCD alphanumérique4x20 en mode 4 bits 
// Utilise la conversion analogique numérique 10bits sur les voies analogiques  analog 0, 

// --- Circuit à réaliser ---

// Connecter  sur la broche 6 la broche RS du LCD
// Connecter  sur la broche 7 la broche E du LCD
// Connecter  sur la broche 8 la broche D4 du LCD
// Connecter  sur la broche 9 la broche D5 du LCD
// Connecter  sur la broche 10 la broche D6 du LCD
// Connecter  sur la broche 11 la broche D7 du LCD
// Broche Analog 0 (=broche 14) en entrée Analogique 

//**************** Entête déclarative *******
// A ce niveau sont déclarées les librairies, les constantes, les variables...

// --- Inclusion des librairies utilisées ---

#include <LiquidCrystal.h> // Inclusion de la librairie pour afficheur LCD 

// --- Déclaration des constantes ---

// --- constantes des broches ---

const int RS=6; //declaration constante de broche 
const int E=7; //declaration constante de broche 
const int D4=8; //declaration constante de broche 
const int D5=9; //declaration constante de broche 
const int D6=10; //declaration constante de broche 
const int D7=11; //declaration constante de broche 
const int Voie_0=0; //declaration constante de broche analogique

// --- Déclaration des variables globales ---
int mesure_brute=0;// Variable pour acquisition résultat brut de conversion analogique numérique
float mesuref=0.0;// Variable pour calcul résultat décimal de conversion analogique numérique

long intensite; // variable de calcul de l'intensite

// --- Déclaration des objets utiles pour les fonctionnalités utilisées ---

LiquidCrystal lcd(RS, E, D4, D5, D6, D7);// Création d'un objet LiquidCrystal = initialisation LCD en mode 4 bits 


//**************** FONCTION SETUP = Code d'initialisation *****
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme

void setup()   { // debut de la fonction setup()

// --- ici instructions à exécuter au démarrage --- 

lcd.begin(20,4); // Initialise le LCD avec 20 colonnes x 4 lignes 

delay(10); // pause rapide pour laisser temps initialisation

// Test du LCD

lcd.print("LCD OK") ; // affiche la chaîne texte - message de test
delay(2000); // pause de 2 secondes

lcd.clear(); // // efface écran et met le curseur en haut à gauche
delay(10); // pour laisser temps effacer écran


// ------- Broches en sortie -------  


// ------- Broches en entrée -------  


// ------- Activation du rappel au + interne des broches en entrée si nécessaire -------  


} // fin de la fonction setup()
// ********************************************************************************

//*************** FONCTION LOOP = Boucle sans fin = coeur du programme *************
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension

void loop(){ // debut de la fonction loop()

// --- ici instructions à exécuter par le programme principal --- 

// --- mesure brute ---
mesure_brute=analogRead (Voie_0); // réalise une mesure analogique sur la voie 0

lcd.setCursor(0,0); 
lcd.print("CAN brute = ");
lcd.print(mesure_brute); 
lcd.print(" "); // espace propreté

// --- tension en mV ---
//mesure_brute=mesure_brute-512; // sortie analogique centrée sur 2.5V
mesuref=mesure_brute*5000.0/1023.0; // calcul de la tension en mV
mesuref=mesuref*2500.0/2443.0; // correction diviseur tension sortie capteur Vo théorique àvide / Vo réel à vide
// cf fig 6 datasheet capteur acs714
mesuref=mesuref-2500.0; // sortie analogique centrée sur 2.5V 

lcd.setCursor(0,1); 
lcd.print("Mesure mV = ");
lcd.print(mesuref,2); // float avec 2 décimales
lcd.print(" "); // espace propreté

// ---- calcul intensité en mA --- 
intensite=map(long(mesuref),0,66,0,1000); // calcul intensité en mA

lcd.setCursor(0,2); 
lcd.print("Intensite = ");
lcd.print(intensite); 
lcd.print("   "); // espace propreté

delay(100); // entre 2 mesures

} // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************

//*************** Autres Fonctions du programme *************

// --- Fin programme ---


Noter cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Archive Mon Club Elec

Articles populaires

Newsletter

Inscrivez-vous maintenant et bénéficiez d'un soutien continu pour réaliser vos travaux électriques en toute sécurité.