Arduino


Mesurer une intensité/puissance avec un capteur de courant SCT013

Publié le 09/05/2019



ATTENTION, dans cette publication nous manipulons du 220V ce qui peut être mortel !!! Les risques sont réels ! Vous le faites sous votre responsabilité.
Débranchez avant toute manipulation, rendez impossible l'accès aux contacts (boîte étanche)...


Le but est de pouvoir mesurer une intensité/puissance d'un matériel quelconque (halogène, ballon d'eau chaude) pour pouvoir quantifier la quantité de courant consommée.


L'intérêt est de pouvoir surveiller la consommation d'un appareil en particulier. Idéal pour surveiller la consommation de vos appareils électroménager : radiateur, chauffage électrique, sèche serviette, machine à laver, fer à repasser, frigo, congélateur


Le SCT013 est capteur de courant alternatif auto-alimenté.
Une seule des 2 phases doit passer dans le trou central (sinon la valeur lue sera égale à 0).

Plage de mesure: 0 à 30 A
Sortie: 0 à 1 V (résistance de charge intégrée) d'où la nécessité d'utiliser le pont de résistance.

Il est capable de mesurer un courant alternatif dans la plage 0 à 30A. La mesure est non invasive. Il suffit d’ouvrir le capteur et d’entourer le câble d’alimentation de l’appareil à surveiller.

Afin de gérer le capteur ampèremétrique, il est nécessaire d'installer la librairie EmonLib by OpenEnergyMonitor V1.1.0 (https://github.com/openenergymonitor/EmonLib)


Comme on peut le voir sur l'image, quand l'halogène n'est pas allumé, il reste affiché une intensité de 0.1A et une puissance de 21W. Cela n'est en fait qu'une fausse information: Bruit sur l'entrée AC. La meilleur façon est de filtrer le bruit dans le code et si la puissance est inférieure à 30W il faut l'ignorer.

Liste des composants nécessaires pour la réalisation du circuit :

  • Résistance 1kohms2
  • Résistance 47ohms1
  • Condensateur 100µF1
  • potentiomètre1
  • LCD1
  • Capteur ampèremétrique1


Schéma du montage électronique :


Pour les personnes possédant Fritzing, voici le schéma électronique.


Voici le code à télécharger dans votre Arduino:

#include <LiquidCrystal.h>
#include "EmonLib.h"                   // Include Emon Library


// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
//const int rs = 12, en = 11, d4 = 8, d5 = 7, d6 = 6, d7 = 5;       // ARDUINO UNO
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;         // ARDUINO NANO
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

EnergyMonitor emon1;                   // Create an instance


#define TENSION 226
#define PIN_SCT013 1


void setup()  
{  
  Serial.begin(9600);
  while (!Serial);  // For Yun/Leo/Micro/Zero/...
  delay(100);
  Serial.println("\n\nLiquid Cristal detector test");

  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);

  // Turn off the display:
  lcd.noDisplay();
  
  lcd.display();

  // Print a message to the LCD.
  lcd.print("Liquid Cristal detector test");

  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis() / 1000);  
    
  emon1.current(PIN_SCT013, 28.7);             // Current: input pin, calibration.
}

void loop()                     // run over and over again
{
  double Irms = emon1.calcIrms(1480);  // Calculate Irms only
  
  lcd.setCursor(0, 0);
  lcd.print("                ");
  lcd.setCursor(0, 1);
  lcd.print("                ");

  // Print a message to the LCD.
  lcd.setCursor(0, 0);
  lcd.print("Courant :");
  lcd.setCursor(0, 1);
  lcd.print(Irms);
  lcd.setCursor(6, 1);
  lcd.print("A");

  lcd.setCursor(9, 1);
  lcd.print(Irms*TENSION);         
  lcd.setCursor(15, 1);
  lcd.println("W");
}
Nombre de vue(s): 408

Forum


Vos avis/remarques...


Veuillez vous connecter pour laisser vos commentaires...