Capteur de courant problème

Bonjour,

Dans le cadre de mon projet sur les maisons connectés, je dois réalisés une sorte de smartplug, en gros si on a un courant élevé le relais va couper le courant.

J’ai un gros problème avec le capteur de courant qui affiche des valeurs assez particulières comme -3600 mA et j’en deviens fou car le code me parait bon. J’utilise un capteur de courant ACS712T 30 A.

Voici mon code :

/*
Measuring Current Using ACS712
*/
#include <SimpleTimer.h>
#include <SoftwareSerial.h>
SoftwareSerial SwSerial(2, 3); // RX, TX
#define BLYNK_PRINT SwSerial
#include <BlynkSimpleSerial.h>

char auth[] =   "c0ab0ecd628c4631844d4b3686b43511";
const int analogIn = A0;
const int relayPin = 7;
float amplitude_current;
float zero_sensor;
float eff_current;
float eff_voltage = 20.2;
float power;
float power_threshold = 2;

void setup(){ 
 SwSerial.begin(9600);
 Blynk.begin(auth);
 pinMode(relayPin,OUTPUT);
 zero_sensor = getsensorValue(analogIn);
 
}

void loop(){
 
 float sensor_value = getsensorValue(analogIn);  
 amplitude_current = (float)(sensor_value-zero_sensor)/1024*5/185*1000000;
 eff_current = amplitude_current/1.414; //Valeur effective du courant
 power = abs(eff_current*eff_voltage/1000);
 Serial.print (eff_current);
 Serial.print(" mA\n");
 if ( power >= power_threshold){
  digitalWrite(relayPin,HIGH);
 }
 //Blynk.run();
 //Blynk.virtualWrite(0,eff_current); //Affiche sur le blynk
}
// Mesure du courant Max 
float getsensorValue(int pin){
  int sensorValue;
  float avgSensor = 0;
  int nb_measurement = 5000;
  for(int i =0;i < nb_measurement;i++){
        sensorValue = analogRead(pin);
        avgSensor = avgSensor + float(sensorValue);
  }
  avgSensor = avgSensor/float(nb_measurement);
  return avgSensor;
  }

bonjour, je pense que ton temps de mesure n'est pas assez long pour faire une moyenne. augmentes le pour voir si ca fluctue ou non.

Je dois donc augmenter la variable nb_measurement, je vais voir cela. Merci :)

Cela marche toujours pas, je vais chercher plus de mon côté, n'hésitez pas à m'aider ;)

montre ton montage.

simplifie le code pour juste avoir le capteur de courant et après tu augmente les modules

hello

juste une question

quand tu lances le prog, tu as coupé tous les appareils qui consomment.

histoire que:

dans le setup, le zéro du capteur soit bien le zéro intensité consommée ( ou plutôt pas consommée)

puis une fois le prg lancé, tu mets en service quelques appareils pour voir l'intensité consommée s'élever

as tu essayé le module seule avec un programme minimum (sans aucune lib ...) ? pour plus de stabilité ne faudrait il pas : - rajouter un tout petit delay() entre les 5000 mesures (je crois qu'il est recommandé mini delay(1)) - utilser une Aref externe plus stable que l'interne

Ok je verrais cela pour demain matin, je vous tiendrais au jus ;) et merci beaucoup