MODULE Capteur De Courant ACS712

38.0 د.م.

Rupture de stock

  1. Chemin de signal analogique à faible bruit
  2. Temps de montée de sortie de 5 µs en réponse au courant d’entrée pas à pas
  3. Boîtier SOIC8 à faible encombrement et profil bas
  4. Tension d’isolation minimale de 2,1 kVRMS des broches 1-4 aux broches 5-8
  5. Tension d’alimentation: 4,5 V ~ 5,5 V CC
  6. Sensibilité: 100mV / A
Commander avant 14h pour recevoir le produit le (30/06/2022)*
Vider
Compare
SKU: Volta-79327 Catégorie:

Le module Arduino avec capteur de courant ACS712 fonctionne sur le principe de l’effet Hall, de sorte que le circuit intégré placé sur le module génère une tension électrique en fonction du champ électrique et magnétique environnant, qui génère du courant électrique à travers les bornes. Il suffit de mesurer la tension du module de capteur de courant ACS712 en utilisant l’entrée analogique Arduino et de la convertir en courant en utilisant la constante spécifiée par le fabricant du capteur de courant. L’ACS712 lui-même peut être acheté en deux variantes pour mesurer différentes tailles de courant, agissant ± 5A et ± 20A. Cet article se concentre sur la variante 5A, mais si vous utilisez un type de module différent, vous devez uniquement utiliser la valeur appropriée dans le commentaire pour la variable “constante”. Un autre avantage du capteur de courant ACS712 est la possibilité de mesurer le courant dans les deux sens, afin d’obtenir des résultats positifs et négatifs.

Pour une connexion réussie avec Arduino, il est nécessaire d’utiliser 3 broches de connexion sur le module de capteur de courant. Connectez VCC à + 5V, OUT à A0 et GND à la terre. La broche de sortie du capteur OUT peut bien sûr être connectée à une autre entrée analogique libre de la carte Arduino. Nous connectons ensuite la charge mesurée entre les bornes de l’autre côté du module, comme vous pouvez le voir sur l’image ci-dessous.

Le premier exemple de code contient une mesure de courant continu (CC). Au début du programme, nous avons défini le numéro de broche pour l’entrée analogique, puis initialisé une variable avec une constante pour convertir la tension mesurée en courant et définir le décalage à la moitié de la tension d’alimentation. Dans le sous-programme de configuration, nous avons configuré la communication série à 9600 bauds et la broche d’entrée analogique sélectionnée comme entrée. Dans chaque boucle, nous créons des variables pour les mesures et les calculs de courant dans chaque boucle, et dans la boucle suivante, nous effectuons 100 mesures, y compris la conversion de la tension en courant. Dans le même temps, nous stockons les 100 résultats de mesure individuels dans la variable «somme» et divisons cette variable par 100 pour compléter la moyenne des 100 mesures prises. Ce résultat est ensuite imprimé sur une ligne série et après une petite pause, le programme entier est répété à nouveau.

copier dans le presse-papiers // Capteur de courant ACS712 5A 
// Mesure de courant CC
// numéro de broche de l'entrée analogique connectée 
const  int analogIn = A0;
// constante pour la conversion de la tension mesurée en courant 
// utilisez 100 pour la version 20A 
int constant = 185 ;
// variable offset offset, moitié Vcc 
int offset = 2500 ;
void  setup () { 
   // communication sur liaison série à 9600 bauds 
  Série . commencer ( 9600 );  
  // initialise l'entrée analogique 
  pinMode (analogIn, INPUT );
}
void  loop () {
   // variables pour mesurer et calculer le courant 
  int analogique = 0 ;
  double tension = 0 ;
  double courant = 0 ;
  double somme = 0 ;
  // effectuer des centaines de mesures pour stabiliser le résultat 
  pour ( int i = 0 ; i < 100 ; i ++) {
     // lire la valeur d'entrée analogique analog 
    = analogRead (analogIn);
    // conversion de tension en courant selon les informations du fabricant 
    tension = (analogique * 5000,0 ) /1023,0 ;
    courant = (décalage de tension) / constant;
    // sauvegarde le résultat pour une moyenne ultérieure
    somme + = courant;
    retard ( 10 );
  }
  // calculer la moyenne d'une centaine de mesures de 
  courant = (somme / 100 );
  // sortie du résultat à 3 décimales 
  Serial . imprimer ( "Actuel:" );
  Série . impression (actuelle, 3 );
  Série . println ( "A" );
  // attend 1 s en raison du nombre inutile de caractères imprimés 
  retard ( 1000 );
}

Si vous devez mesurer AC, le deuxième exemple de code est également fourni. Son début est similaire à l’exemple précédent. Dans la fonction de boucle, nous utilisons la fonction de mesure zmerVpp, qui, en utilisant la fonction while (boucle répétée jusqu’à ce que les conditions – la différence entre le temps stocké et le courant 1 seconde) trouve toujours la valeur maximale et minimale de la tension et renvoie sa différence. Lors de l’impression du résultat, vous pouvez remarquer que les variables sont étiquetées RMS (Root Mean Square), ce qui signifie la valeur RMS du courant.

copier dans le presse-papiers // Capteur de courant ACS712 5A 
// Mesure de courant AC
// numéro de broche de l'entrée analogique connectée 
const  int analogIn = A0;
// constante pour la conversion de la tension mesurée en courant 
// utilisez 100 pour la version 20A 
int constant = 185 ;
void  setup () { 
   // communication sur liaison série à 9600 bauds 
  Série . commencer ( 9600 );  
  // initialise l'entrée analogique 
  pinMode (analogIn, INPUT );
}
void  loop () {
   // variables pour les calculs de courant 
  double tension = 0 ;
  double voltageRMS = 0 ;
  double streamRMS = 0 ;
  tension = zVV ();
  // conversion de tension en tension actuelle 
  RMS = (tension / 2,0 ) * 0,707 ;
  currentRMS = (voltageRMS * 1000 ) / constant;
  // sortie du résultat à 3 décimales 
  Serial . imprimer ( "Actuel:" );
  Série . impression (flux RMS, 3 );
  Série . println ( "A" );
}
float zmerVpp ()
{
  // variables pour mesurer 
  float send;
  int napAng;
  int maximum = 0 ;
  int minimum = 1023 ;
   mezicas longs non signés = millis ();
  // répéter la mesure pendant 1 seconde 
  tandis que (( millis () -mezicas) < 1000 )
  {
    // lire la valeur d'entrée analogique 
    napAng = analogRead (analogIn);
    // recherche maximum 
    if (napAng> maximum)
    {
      maximum = napAng;
    }
    // recherche minimum 
    if (napAng <minimum)
    {
      minimum = napAng;
    }
  }
  // conversion de la valeur d'entrée analogique en tension 
  trans = ((maximum - minimum) * 5.0 ) / 1023.0 ;
  return vysl;
 }

Après avoir chargé le programme dans la carte Arduino, nous pouvons ouvrir le moniteur série et regarder le courant mesuré entre les terminaux.

En conséquence, nous obtenons une liste similaire:

copier dans le presse-papier Courant: 0,955 A
Courant: 0,950 A
Courant: 0,942 A
Actuel: 1,288 A
Actuel: 1,279 A

Je tiens à souligner que le capteur de courant utilisé ACS712 ne peut pas être utilisé comme ampèremètre précis, car à des courants faibles jusqu’à environ 300 mA, sa mesure n’est pas très précise en raison des interférences électromagnétiques environnantes. Et la deuxième note concerne les constantes mentionnées, où le fabricant lui-même les désigne à titre indicatif. Si vous souhaitez mesurer des valeurs plus précises avec le capteur, je recommande de comparer sa sortie avec un autre instrument de mesure de meilleure précision sur plusieurs valeurs de courant différentes et d’ajuster la constante de mesure en conséquence. J’ai personnellement constaté que mon module testé dans la variante 5A et dans la plage mesurée 1-3 A donnait les meilleurs résultats avec une constante de 125.

Avis des clients

5 stars 0
4 stars 0
3 stars 0
2 stars 0
1 star 0

Avis

Il n'y a pas encore d'avis.

Only logged in customers who have purchased this product may write a review.

Rejoindre la liste d'attente Nous vous informerons lorsque le produit arrivera en stock. Veuillez laisser votre adresse E-mail et la quantité voulue.

Main Menu

MODULE Capteur De Courant ACS712

38.0 د.م.

تواصل معنا
بحاجة الى مساعدة ؟
يمكنك الحصول على هذا
MODULE Capteur De Courant ACS712
مقابل فقط
38.0 د.م.
إذا كان لديك أسئلة ، اسألهم.