Code Capteur de pression

Bonjour, j'ai un problème avec mon code de capteur de pression. En gros, lors d'un code tout simple avec juste un analogRead j'obtiens ce que je veux, c'est a dire des valeurs au alentour de 850 et qui augmente ou baisse suivant ce que je veux. là où ca ne va pas, c'est lorsque que je veux intégrer ce code dans un plus gros, bien plus gros et j'obtien la valeur 1023 qui ne change pas. Je ne trouve où ça pêche, si vous pouviez m'aider.
Bonne journée

/*
 * 
 */
 #include <SPI.h>
#include <SD.h>
/* accelerometerADXL
 * X to A0
 * Y to A1
 * Z to A2
 * AREF to 3.3
*/
/*
 * MPX4115AP
 * Analaog to A3
 * MPX4115A 
 * to A4
 * 
 * SD
 * MOSI 11
 * MISO 12
 * SCK 13
 * CS 4
 */
 int actu = 0;
 int precedent;
 boolean bouton = LOW;
 const int xInput = A0;
const int yInput = A1;
const int zInput = A2;
float pression = A5;
const int chipSelect = 4;


// Raw Ranges:
// initialize to mid-range and allow calibration to
// find the minimum and maximum for each axis   X: 491-528, Y: 489-529, Z: 493-532

int xRawMin = 491;
int xRawMax = 528;

int yRawMin = 489;
int yRawMax = 529;

int zRawMin = 493;
int zRawMax = 532;

// Take multiple samples to reduce noise
const int sampleSize = 10;

 int pinBouton;
int measurePre = A3;
const int relais = 3;
const int ledR = 1;
const int ledV = 2;
unsigned long  tempsPrecedentPa = 0, tempsActuelPa = 0;


  unsigned long currentMillisParra = millis();
  File fusee;

void setup()
{
      pinBouton=6;
    pinMode(pinBouton,INPUT);
  pinMode(relais, OUTPUT);
  pinMode(ledR, OUTPUT);
  pinMode(ledV, OUTPUT);
  Serial.begin(9600);
  digitalWrite(relais, HIGH);
    analogReference(EXTERNAL);
  Serial.begin(9600);
    // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  Serial.print("Initializing SD card...");

  // see if the card is present and can be initialized:
  if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
    // don't do anything more:
    return;
  }
  Serial.println("card initialized.");
    fusee = SD.open("donnees.txt", FILE_WRITE); //on peut en ouvrir qu'un à la fois //

  if (fusee) { //si le fichier a bien été ouvert :
    fusee.print("X,        Y,      Z,      ");
    fusee.println("PressionStat    ,PressionTot");
    fusee.close();
    Serial.println("Fait");
  } else { // sinon :
    Serial.println("Erreur lors de l'ouverture de test.txt");
}
}
void donne()
{
    int xRaw = ReadAxis(xInput); //lecture donnée accéléromètre
  int yRaw = ReadAxis(yInput);
  int zRaw = ReadAxis(zInput);
  {
    Serial.print("Raw Ranges: X: ");
    Serial.print(xRawMin);
    Serial.print("-");
    Serial.print(xRawMax);
    
    Serial.print(", Y: ");
    Serial.print(yRawMin);
    Serial.print("-");
    Serial.print(yRawMax);
    
    Serial.print(", Z: ");
    Serial.print(zRawMin);
    Serial.print("-");
    Serial.print(zRawMax);
    Serial.println();
    Serial.print(xRaw);
    Serial.print(", ");
    Serial.print(yRaw);
    Serial.print(", ");
    Serial.print(zRaw);
    
    // Convert raw values to 'milli-Gs"
    long xScaled = map(xRaw, xRawMin, xRawMax, -1000, 1000);
    long yScaled = map(yRaw, yRawMin, yRawMax, -1000, 1000);
    long zScaled = map(zRaw, zRawMin, zRawMax, -1000, 1000);
  
    // re-scale to fractional Gs
    float xAccel = xScaled / 1000.0;
    float yAccel = yScaled / 1000.0;
    float zAccel = zScaled / 1000.0;
 
  
    Serial.print(" :: "); // affichage donnée accéléromètre
    Serial.print(xAccel);
    Serial.print("G, ");
    Serial.print(yAccel);
    Serial.print("G, ");
    Serial.print(zAccel);
    Serial.println("G");
    fusee = SD.open("donnees.txt", FILE_WRITE);
    fusee.print(xAccel);
    fusee.print("   ,");
    fusee.print(yAccel);
    fusee.print("   ,");
    fusee.println(zAccel); 
    fusee.close();  
  delay(500);
  }
}
int ReadAxis(int axisPin)
{
  long reading = 0;
  analogRead(axisPin);
  delay(1);
  for (int i = 0; i < sampleSize; i++)
  {
    reading += analogRead(axisPin);
  }
  return reading/sampleSize;
}

void parachuteSecours() // timer de déploiment en cas de non fonctionnement du déclenchement auto
{
if (bouton == LOW)
{
  bouton = HIGH;
  precedent = millis();
}
if (bouton ==HIGH)
{
  actu = millis();
  if(actu - precedent > 10000)
  {
     digitalWrite(relais , LOW);
  }
}
//EN COURS

  }
  

void pressiond()
{ //lecture pression
Serial.println(analogRead(pression));
}
void loop()
{
  donne();
  Serial.println(analogRead(pression));

  boolean etatBouton=digitalRead(pinBouton); //debut timer parachute
    Serial.println(etatBouton);
  if (etatBouton == 0)
  {

     parachuteSecours();
      
  }

}

salut,

tu devrais poster ton "gros" code

garde une poignée d'ouverture à ton parachute !

Je suis toujours émerveillé quand je vois des personnes qui dise MON code et que dans ce code on trouve des commentaires et explications en anglais.

C'est fantastique la jeune génération serait-elle devenue parfaitement "fluent english" ?

C'est marrant, parce que chaque fois qu'un sujet passe par le Bakapoubelle, il perd cette partie :

Zazu51:
Bonjour à tous, je reviens vers vous concernant le projet de Terminale en SI.

De 1 certes j'ai repris des bouts de codes içi et là, surtout par l'écriture de la carte sd.
De 2, je n'ai pas mis que c'était pour le projet de Terminale car j'ai créer un sujet cette après midi vers 14h30, j'ai indiqué que c'était pour un projet et mon post a disparu...
Ceci est le code pour tout ce que dois faire le code, c'est à dire des mesures d'accélération et de 2 capteurs de pressions qui comme je l'ai dit ne fonctionne pas quand je l'implémente dans le code.

Zazu51:
De 2, je n'ai pas mis que c'était pour le projet de Terminale car j'ai créer un sujet cette après midi vers 14h30, j'ai indiqué que c'était pour un projet et mon post a disparu...

Il a surtout disparu parce que le titre était merdique et que je t'ai demandé de le changer avant de mettre un autre post... et tu as continué ton sujet comme si rien n'avait été demandé.

De plus il est bien stipulé dans la charte que les projets scolaires doivent être déclarés comme tels.... donc c'est pas ça qui va faire que les sujets disparaissent.

En plus c'est juste le troisième sujet que tu ouvres à propos du même capteur de pression.....

Donc en gros tu relis le règlement du forum francophone et la charte, tu t'y conformes ou alors poste directement dans le Bak à poux bêle 2019 dans le bar.... ça m'évitera du boulot

Y'a rien qui te choque là:

float pression = A5;

.....

Serial.println(analogRead(pression));

C'est une remarque que l'on t'a faite il y a quelques jours il me semble.

Et là il n'y a rien qui te choque non plus:

const int ledR = 1;

Si je te dis que D0 et D1 sont utilisés pour la liaison série, ça te parle?

Pour le float pression, peut être que ce n'est pas le bon type de variable, j'ai essayé avec plusieurs et a chaque fois le même résultat.
Et non, je ne savais pas que D0 et D1 était pour la liaison série ^^
Je n'ai même pas eu le temps de lire ton message que le sujet était déjà supprimé...

Bonsoir

Pour le float pression, peut être que ce n'est pas le bon type de variable, j'ai essayé avec plusieurs et a chaque fois le même résultat.

Au final tu gagnerai du temps en faisant l'effort de comprendre le sens de ce que tu écris au lieu de tester aveuglément tout un tas de combinaisons en espérant que ça 'tombe en marche'.

Et non, je ne savais pas que D0 et D1 était pour la liaison série

C'est visible sur le schéma de la carte

Je n'ai même pas eu le temps de lire ton message que le sujet était déjà supprimé...

A cette période de l'année il vaut mieux que le ménage soit bien et vite fait

Zazu51:
Pour le float pression, peut être que ce n'est pas le bon type de variable, j'ai essayé avec plusieurs et a chaque fois le même résultat.

Tu as bien réussi à le faire pour les autres sorties

const int yInput = A1;

Même en changeant le type de variable, j'obtiens toujours le même résultat : 1023.
Avec un code tout basique

const int pression = A5;
float pressionPas;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  pressionPas = analogRead(pression);
  Serial.println(pressionPas);
  delay(500);
}

Cela fonctionne parfaitement. C'est pour cela que j'ai créer ce post...

fais l'effort de parcourir attentivement ligne à ligne le programme 'patchwork' en te demandant le rôle de chaque ligne

Zazu51:
Même en changeant le type de variable, j'obtiens toujours le même résultat : 1023.

OK mais en corrigeant toutes les conneries les unes après les autres tu finiras par faire fonctionner ton programme.
Là, ça en fait une de moins.