Utilisation des tableaux

Bonjour à tous,
je suis néophyte et bien que j'ai essayé par moi même je ne trouve pas la solution. Peut être y en il simplement pas.
Je souhaite utiliser 2 capteurs Dallas et ajouter la valeur relevée dans un tableau Mesures [1][100]. La première mesure du capteur 1 va en Mesures[0][0], celle du capteur2 en [1][0] et ainsi de suite.
J'ai déclaré mon tableau en global mais je n'arrive pas à assigner les valeurs.
Un bout de code pour faire plaisir, c'est pour l'exemple il manque plein d'infos... :

float TableauTemperatures[1][100];
void setup(){
}
void loop(){
idValeur++;
for int i=0;i<1;i++{
TableauTemperatures[i][idValeur]={sensors.getTempC(tempDeviceAddress)};
}
}

Hello
Il faut déclarer ton tableau [2][100]
Puis dans ton for, int i=0;i<= 1;i++

Il faut aussi penser que tu as deux sondes...

Bonjour,

Déjà, s'il y a 2 capteurs de température à gérer, la définition de l'accueil des températures commence par:

float TableauTemperatures[2][100];

En espérant que la valeur 100 soit suffisamment dimensionnée pour chaque capteur

Après, le parcours du tableau va de soit...

merci, en fait j'y étais presque, il fallait déclarer mon tableau

float temperature[2][100];
void setup(){
//bon là démarrer ce qu'il faut
}
void loop(){
for (int i=0; i<1;i++){
for (int j=0;j<100;j++{
temperature[i][j]=sensor.getTempC(TempdeviceAddress);
}
}
}

un truc comme ça quoi, merci

Et pourquoi

for (int i=0; i<1;i++)

?!..

oui, c'est <2 , je pense

En programmation objet on créerait un objet qui contient le capteur et sa mémoire de 100 valeurs

constexpr byte memoireMax = 100;

class Capteur {
  public: 
    CapteurMemoire(const byte pin) : pinCapteur(pin), entreeSuivante(0), tableauPlein(false) {}
    void begin() {
      // configurer le capteur
      ...
    }

    float acquisition() {
      historique[entreeSuivante++] = ...; // lire le capteur
      if (entreeSuivante >= memoireMax) {
        entreeSuivante = 0; 
        tableauPlein = true;
      }
    }
    ...

  private:
    byte pinCapteur;
    byte entreeSuivante; 
    bool tableauPlein;
    float historique[memoireMax];
};

Capteur capteurs[] = {5,6}; // nos capteurs, un sur pin 5 l'autre sur pin 6
const byte nbCapteurs = sizeof capteurs / sizeof * capteurs; // le nombre de capteurs 



1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.