Modifications

Sauter à la navigation Sauter à la recherche
2 448 octets ajoutés ,  24 mars 2020 à 11:27
Ligne 2 : Ligne 2 :  
[[Fichier:SENSEUR-COURANT-ACS712.jpg|640px]]
 
[[Fichier:SENSEUR-COURANT-ACS712.jpg|640px]]
   −
Basé sur l'ACS712 d'Allegro, ce senseur se branche en série avec la charge sur un circuit alternatif et permet de mesurer le courant qui traverse le senseur. Le senseur utiliser le champ magnétique généré par le courant (et donc l'effet hall) pour mesurer le courant qui le traverse..
+
Basé sur l'ACS712 d'Allegro (et ACS724, ACS720), ce senseur se branche en série avec la charge sur un circuit alternatif et permet de mesurer le courant qui traverse le senseur. Le senseur utiliser le champ magnétique généré par le courant (et donc l'effet hall) pour mesurer le courant qui le traverse..
 
Le senseur produit en sortie une tension continue proportionnelle au courant à raison de 0.100V/A (100 mV par ampère). Vous pouvez donc lire cette tension sur une entrée analogique de votre Arduino.
 
Le senseur produit en sortie une tension continue proportionnelle au courant à raison de 0.100V/A (100 mV par ampère). Vous pouvez donc lire cette tension sur une entrée analogique de votre Arduino.
    
Attention: ce senseur est sensible au champ magnétique, ce qui pourrait fausser vos lectures. Le simple fait d'approcher un aimant de l'ACS712 modifie la tension de sortie du senseur.
 
Attention: ce senseur est sensible au champ magnétique, ce qui pourrait fausser vos lectures. Le simple fait d'approcher un aimant de l'ACS712 modifie la tension de sortie du senseur.
   −
{{udnerline|Note:}} Il est important de faire une lecture a vide (sans courant) pour obtenir la valeur de calibration du senseur.
+
{{underline|Note:}} Il est important de faire une lecture a vide (sans courant) pour obtenir la valeur de calibration du senseur.
    
== Réseau électrique - Mise en garde ==
 
== Réseau électrique - Mise en garde ==
Ligne 19 : Ligne 19 :     
== Détails techniques ==
 
== Détails techniques ==
* Sensibilité: 100 mV par ampère
+
* Sensibilité: 100 mV par ampère pour le capteur 20A (400 mv/A pour un capteur 5A)
 
* Tension logique: 4.5V - 5.5VV
 
* Tension logique: 4.5V - 5.5VV
 
* Consommation: 10mA
 
* Consommation: 10mA
Ligne 30 : Ligne 30 :  
* Poids: ~2gr
 
* Poids: ~2gr
 
* Bruit sur l'ACS712 - environ 130mA avec la capacité de filtrage de 10nF. Le bruit peut être significativement réduit en utilisant une capacité de 470nF
 
* Bruit sur l'ACS712 - environ 130mA avec la capacité de filtrage de 10nF. Le bruit peut être significativement réduit en utilisant une capacité de 470nF
* Fiche technique de l'allégro ACS712 (PDF, Allegro)
+
* [http://df.mchobby.be/datasheet/ACS712.pdf Fiche technique de l'allégro ACS712] (PDF, Allegro)
 +
 
 +
[[Fichier:ACSENS-20A-ACS712-board.jpg|480px]]
 +
 
 +
[[Fichier:ACSENS-20A-ACS712-schema.jpg|480px]]
 +
 
 
== Brancher ==
 
== Brancher ==
 +
Voici comment insérer un senseur ACS712 dans un circuit électrique.
 +
 +
[[Fichier:SENSEUR-COURANT-ACS712-Montage.jpg|740px]]
 +
 +
== Code ==
 +
Voici un programme d'exemple, effectuant des lectures sur le senseur ACS712 et transformant la valeur en courant (mA) puis en puissance (W).
 +
 +
Le résultat est affiché sur le moniteur série d'Arduino.
 +
 +
<nowiki>float zero_senseur;
 +
int PIN_ACS712 = A0;
 +
 +
// Obtient la valeur du senseur de courant ACS712
 +
//
 +
// Effectue plusieurs lecture et calcule la moyenne pour pondérer
 +
// la valeur obtenue.
 +
float valeurACS712( int pin ){
 +
  int valeur;
 +
  float moyenne = 0;
 +
 
 +
  int nbr_lectures = 50;
 +
  for( int i = 0; i < nbr_lectures; i++ ){
 +
      valeur = analogRead( pin );
 +
      moyenne = moyenne + float(valeur);
 +
  }
 +
  moyenne = moyenne / float(nbr_lectures);
 +
  return moyenne;
 +
}
 +
 +
void setup(){
 +
  // calibration du senseur  (SANS COURANT)
 +
  zero_senseur = valeurACS712( PIN_ACS712 );
 +
 
 +
  Serial.begin( 9600 );
 +
}
 +
 +
float courant;
 +
float courant_efficace;   
 +
float tension_efficace = 230; // tension efficace du réseau electrique
 +
float puissance_efficace;
 +
float ACS712_RAPPORT = 100; // nbr de millivolts par ampère
 +
 +
void loop(){
 +
  float valeur_senseur = valeurACS712( PIN_ACS712 );
 +
  // L'amplitude en courant est ici retournée en mA
 +
  // plus confortable pour les calculs
 +
  courant = (float)(valeur_senseur-zero_senseur)/1024*5/ACS712_RAPPORT*100000;
 +
  // Courant efficace en mA
 +
  courant_efficace = courant / 1.414; // divisé par racine de 2
   −
== Code ==
+
  // Calcul de la puissance.
 +
  //    On divise par 1000 pour transformer les mA en Ampère
 +
  puissance_efficace = (courant_efficace * tension_efficace/1000);
 +
 
 +
  Serial.println( "zero_senseur - lecture - courant efficace (mA) - Puissance (W)" );
 +
  Serial.print( zero_senseur );
 +
  Serial.print( " - " );
 +
  Serial.print( valeur_senseur );
 +
  Serial.print( " - " );
 +
  Serial.print( courant_efficace );
 +
  Serial.print( "mA - " );
 +
  Serial.print( puissance_efficace );
 +
  Serial.println( " W" );
 +
 
 +
  delay( 1000 ); // attendre une seconde
 +
}</nowiki>
    
== Plus d'informations ==
 
== Plus d'informations ==
Ligne 41 : Ligne 110 :     
== Ou acheter ==
 
== Ou acheter ==
 +
* {{pl|788|Capteur de courant AC - ACS712 - 20A}} disponible chez MCHobby
 +
* {{pl|788|Capteur de courant AC - ACS724 - 20A}} disponible chez MCHobby
 +
* {{pl|1637|Capteur de courant AC - ACS724 - 5A}} disponible chez MCHobby
29 917

modifications

Menu de navigation