Go Down

Topic: Probleme min et max (temp et humidité) / moyenne  (Read 81 times) previous topic - next topic

Alex_Mny

Bonsoir,

Je suis entrain de réaliser un projet arduino, c'est le premier language que je touche et je suis dans une impasse j'ai chercher plusieur solution pour régler différent problème le premier est au niveau des minimum et des maximum je n'arrive pas a afficher le min et le max a chaque boucle on m'affiche dans le min la meme valeur que dans le max et cela pour les deux capteur humidité et température. De plus pour réaliser la moyenne lorsque je vérifie le programme on met un message d'erreur m'indiquant " 'mesure' cannot be used as a fonction ".

J'ai besoin d'aide merci d'avance


Voici ci contre le programme arduino

---------------------------------------------------------------------------------------------------------------------

#include <LiquidCrystal.h> // UTILISATION BIBLIOTHEQUE POUR ECRAN LCD
#include <dht11.h>
dht11 DHT;
#define DHT11_PIN 8

  LiquidCrystal lcd(12,11,5,4,3,2); // ANNONCE DES PINS UTILISÉS PAR L'ÉCRAN LCD

// #define (nom de variable) nombre

const int pin_capteur = 0; // broche A0
float mesure[99];
int compteur=0;

int Tmin;
int Tmax;

int Hmax;
int Hmin;
int i;


void setup() {





  Serial.begin(9600);
 
   pinMode(DHT11_PIN, INPUT);
}




void loop() {

    int Hum = DHT.read(DHT11_PIN);
  Serial.print("humidité: ");  //différence print et println print écrit le message alors println écrit le message et va à la ligne
  Serial.println(DHT.humidity,1);

 
  int lecture = analogRead(pin_capteur);
  int tension = lecture * 5; // la virgule permet de dire a l'arduino qu'il s'agit d'une variable dites flottante
  tension = tension / 1024.0;
 // Serial.print("tension="); 
 // Serial.println(" V");

 int temp = analogRead(pin_capteur) * 5000L / 1024L / 10; // Que represente c'est L
 Serial.print(temp);
 Serial.println("°C");


 if (compteur<100){

mesure[compteur]=temp;
compteur++; //compteur = compteur + 1
 
 delay (1000); // attendre 1 seconde
 
 }

 


if(compteur>=99){


  float somme=0.0;
 
  for(int i=0 ; i<99;i++){
      somme = somme + mesure ;
   }
   




  float moyenne = somme /98;
  Serial.print("Moyenne= ");
  Serial.println(moyenne);
}

 for (int i=0 ; i=0;99){
      mesure  = mesure (i+1);
      }






lcd.begin(16, 2); // SET DES DIFERENT LIEU OU ON ÉCRIT DU TEXT
 
    lcd.setCursor(0,0); // POSITION DU DÉBUT DU TEXTE
       lcd.print("temperature :");   
       lcd.println(temp);
       lcd.setCursor(0,1);
       lcd.print("                ");
       delay(1000);


    lcd.setCursor(0,0);
      lcd.print("Humidite   "); 
      lcd.println(DHT.humidity,1);
      lcd.setCursor(0,1);
      lcd.print("                ");
      delay(1000);


    lcd.setCursor(0,0);
       lcd.print("Moyenne      "); 
        lcd.setCursor(0,1);
      lcd.print(moyenne);
      delay(1000);


    lcd.setCursor(0,0);
       lcd.println("temperature max   ");
    lcd.setCursor(0,1);
      lcd.println(Tmax); 
       
       delay(1000);


    lcd.setCursor(0,0);
       lcd.print("temperature min  ");   
    lcd.setCursor(0,1);
       lcd.println(Tmin); 
    delay(1000);


    lcd.setCursor(0,0);
       lcd.print("Humidite max");
       
      lcd.print(Hmax);
 
       delay(1000);


    lcd.setCursor(0,0);
       lcd.print("Humidite min");   
     
      lcd.println(Hmin);
       delay(1000);

}




lesept

D'abord tu es dans une section de langue anglaise. Tu peux poster sur la section française du forum, tu auras plus de chances d'avoir une réponse.

Ensuite, il faut utiliser les balises, notamment celles appelées code, qui aident à afficher les codes correctement. C'est expliqué dans des messages épinglés en haut des sections, messages à lire impérativement si tu veux avoir des réponses sérieuses.

Enfin, dans ton code les lignes suivantes ne sont pas correctes
Code: [Select]
for (int i=0 ; i=0;99){
     mesure  = mesure (i+1);
     }

Tu vois au passage l'utilisation des balises.

mesure est un tableau, et la k-ieme valeur de ce tableau s'écrit mesure [k] avec des crochets. Ta boucle for est mal écrite, cherche la syntaxe correcte sur un site de référence ou inspire toi de la ligne for un peu plus haut dans ton code.
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

Alex_Mny

D'accord merci de t'as reponse je vais allez poster dans la section francaise.

Go Up