[Programmation] Problème variable
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Problème variable



  1. #1
    lucieac

    Problème variable


    ------

    Bonsoir à tous et à toutes,
    Je suis en train d'essayer d'optimiser un code arduino en créant des fonctions. Ce code me permettrait grâce au calcul de la pression de savoir si nous sommes dans une période de tempête, une zone dépressionnaire, pour cela je regarde si ma pression est inférieur à 1010 millibar et si c'est le cas il y a un risque de tempête donc ma variable tempête doit être égal à 1 ( je ne sais pas si il faut faut je la mette en boolean ou int). J'ai donc crée une fonction d'initialisation de mon capteur qui est le bmp 180, une deuxième qui vérifie son état et lit des valeurs de pression et température et une dernière qui est sensée faire fonctionné l'alarme. J'ai donc crée une boucle for qui me permet de lire la valeur de la pression 30 fois, qui est stockée dans la variable "Pression_comparaison" qui est une variable locale à la fonction, avec une mesure toutes les minutes et c'est la dernière valeur de cette boucle que je compare à 1010. Le problème étant que quand je rappelle cette fonction pour la comparée à 1010 on me dit qu'elle n'est pas déclarée dans ce script et il est dit aussi que ma variable "Tempete" n'est pas déclarée alors que je l'ai déclaré au début du script avant le setup.
    Voici mon code :
    Code:
    // pression
    #include <SFE_BMP180.h>
    #include <Wire.h>
    SFE_BMP180 pressure;
    #define ALTITUDE 75.0
    double T,P ;
    boolean tempete ;
    void setup() {
      
     Serial.begin(9600);
    initialisation_bmp180();
    }
    
    void loop() {}
    void initialisation_bmp180(){
     
      if (pressure.begin())
        Serial.println("BMP180 initialisation réussie");
      else
      {
        // Si il y a un problème
       
        Serial.println("Problème d'initialisation du BMP180");
        while(1); // Pause forever.
      }}
    
    long etat_bmp_et_lecture_pression_temperature(){
    char status;
      status = pressure.startTemperature();                                        // Récupération de la température terminée, Notez que la mesure est enregistrée dans la variable T. 
                                                                                         // La fonction renvoie 1 en cas de succès, 0 en cas d'échec.                                                                            // La température est enregistrée dans la variable T                                                                              // La fonction renvoie 1 si l'état du capteur est correct, et 0 si il ya un problème 
      if (status != 0)
        delay(status);
           status = pressure.getTemperature(T);
        if (status != 0){}// on vérifie l'état du capteur   
    // lecture pression
    status = pressure.startPressure(3);
          if (status != 0)      
            // Wait for the measurement to complete:
            delay(status);
            // Récupérer la mesure de pression terminée :
            //  La mesure est enregistrée dans la variable P.
            // Notez également que la fonction nécessite la mesure de température précédente (T).
            // (Si la température est stable, vous pouvez effectuer une mesure de température pour plusieurs mesures de pression.)
            // La fonction renvoie 1 en cas de succès, 0 en cas d'échec.
            status = pressure.getPressure(P,T);
            // lecture pression
    }
    
    void alarme_tempete(){
      for (byte b=0; b <= 30; b++) {// boucle de 30 mesures pour ensuite test alarme à l'issue des 30 mesures pour 1 mesure par minute
    float Pression_comparaison = pressure.sealevel(P,ALTITUDE);// création de la variable qui sera lue et donc changée toutes les minutes et qui à la fin sera comparée avec la valeur de référence
    delay (60000);}
    if ((Pression_comparaison) < 1010 ){
     Tempete==1
    else
    Tempete == 0
    }
    }
    Et voici mon message d'erreur :

    Arduino : 1.8.9 (Windows Store 1.8.21.0) (Windows 10), Carte : "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

    C:\Users\lucie\Desktop\Projet élec Jardin\final_bmp180\final_bmp1 80.ino: In function 'void alarme_tempete()':

    final_bmp180:53:6: error: 'Pression_comparaison' was not declared in this scope

    final_bmp180:54:2: error: 'Tempete' was not declared in this scope

    exit status 1
    'Pression_comparaison' was not declared in this scope

    Ce rapport pourrait être plus détaillé avec
    l'option "Afficher les résultats détaillés de la compilation"
    activée dans Fichier -> Préférences.

    Je ne pense pas avoir encore tout bien compris des variables et des fonctions et que c'est de là que vient ma source d'erreurs.
    Merci d'avance à tous et toutes pour votre aide

    -----

  2. #2
    nornand

    Re : Problème variable

    Bsr tu déclares tempete avec une minuscule
    et tu appels
    Tempete avec une majuscule

    et le
    'Pression_comparaison'
    doit être declare au dessus du for ou comme variable avant le setup

    Dernière modification par nornand ; 20/10/2019 à 22h37.

  3. #3
    lucieac

    Re : Problème variable

    Effectivement sa fonctionne mieux comme ça merci beaucoup bonne soirée

Discussions similaires

  1. Probleme en STAT -- VARIABLE
    Par invite19d86089 dans le forum Mathématiques du collège et du lycée
    Réponses: 1
    Dernier message: 12/11/2011, 11h26
  2. changement de variable probleme!!
    Par invite06e14e57 dans le forum Mathématiques du supérieur
    Réponses: 9
    Dernier message: 29/11/2009, 23h18
  3. Problème de changement de variable
    Par invitef707de59 dans le forum Mathématiques du collège et du lycée
    Réponses: 5
    Dernier message: 22/03/2009, 15h19
  4. probleme resistance variable
    Par invite7a67cbf5 dans le forum Électronique
    Réponses: 7
    Dernier message: 18/02/2008, 12h37
  5. problème variable 2octets et PIC
    Par invite958adb57 dans le forum Électronique
    Réponses: 8
    Dernier message: 03/06/2004, 19h45
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...