Go Down

Topic: Run two loop in one program (Read 401 times) previous topic - next topic

Grumpy_Mike

Just don't use interrupts, look at the button when you want to in the code.

Krummy57

#16
Jan 18, 2019, 12:55 pm Last Edit: Jan 18, 2019, 12:56 pm by Krummy57
I have work in my programm and i have find other solution i have don't use button but i have create a cycle for 2 second i let you see but now i need to reset value when she come 24 hours

Code: [Select]

// inclure les librairie utile au code:
#include <LiquidCrystal.h>

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; //Donnez un nom aux pin de l'arduino
LiquidCrystal lcd(rs, en, d4, d5, d6, d7); //Dire a l'arduino quelle pin il doit utiliser
double AcsOffset = 2.5; //Définir un offset de 2.5 a la sortie du capteur de courant
double Sensibl = 0.066; //Définir la valeur de la sensibilité du capteur de courant
double courant = 0; //Définir la variable
double tension = 0; //Définir la variable
double puissance = 0; //Définir la variable
double ConsIncrement = 0;
double PuissanceTotal = 0;

void setup() {
  lcd.begin(16, 2); //Dire a l'arduino combien de ligne et colonne contient l'afficheur utilisé
}

void loop() {
  double ValeurLue = analogRead(A0); //Définir la variable ValeurLue sur la valeur obtenue en entré de A0
  tension = (ValeurLue * 5.0 / 1023); //Calcule qui convertie la ValeurLue obtenue a l'entrer de A0 a une tension entre 0V et 5V
  courant = (tension - AcsOffset) / Sensibl; //Calcule du courant
  puissance = (tension * courant); //Calcule de la puissance en W en utilisant P=U*I
  lcd.setCursor(0, 1); //Dire a l'arduino sur qu'elle ligne il doit écrire
  lcd.print("Cons="); //Ecrire Cons=
  lcd.print(puissance); //Ecrire la valeur obtenue en faisant le calcul de la puissance fait précedement
  lcd.print("W"); //Ecrire W a la suite de la valeur pour donner une une unité a la valeur transmise
  lcd.setCursor(0, 0); //Dire a l'arduino sur qu'elle ligne il doit écrire
  PuissanceTotal += (puissance / 7200) * 8;
  if (courant <= 0.05) { //Condition pour définir l'intensité d'allumage du circuit
    lcd.print("ETEINT");
  }
  else if ( (courant > 0.05) && (courant < 9.8)) {
    lcd.print("FAIBLE");
  }
  else if ( (courant > 9.8) && (courant < 14.8)) {
    lcd.print("MOYEN");
  }
  else if (courant > 14.8) {
    lcd.print("FORT");
  }
  delay(2000);
  lcd.clear();
  lcd.print ("Cons sur 24h :");
  lcd.setCursor(0, 1); //Dire a l'arduino sur qu'elle ligne il doit écrire
  lcd.print (PuissanceTotal);
  lcd.print (" W/h");
  delay(2000);
  lcd.clear();
}

Robin2

Okay so I understand the interruptions is not the right solution in my case do you have another to propose me to succeed?
Have you carefully studied the code in the link in Reply #1 ?

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

Go Up