code erreur

Bonsoir je pense que j'ai beaucoup d'erreurs dans ma programmation si quelqu’un peut y jeter un œil se serais chouette merci. PS : Je suis sur arduino mega

/**
   Exemple de code pour lire un unique capteur DS18B20 sur un bus 1-Wire.
*/

/* Dépendance pour le bus 1-Wire */
#include <OneWire.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(2, 3, 4, 5, 6, 8);
/* Broche du bus 1-Wire */
const byte BROCHE_ONEWIRE = 7;
/* Code de retour de la fonction getTemperature() */
enum DS18B20_RCODES {
  READ_OK,  // Lecture ok
  NO_SENSOR_FOUND,  // Pas de capteur
  INVALID_ADDRESS,  // Adresse reçue invalide
  INVALID_SENSOR  // Capteur invalide (pas un DS18B20)
};


/* Création de l'objet OneWire pour manipuler le bus 1-Wire */
OneWire ds(BROCHE_ONEWIRE);


/**
   Fonction de lecture de la température via un capteur DS18B20.
*/
byte getTemperature(float *temperature, byte reset_search) {
  byte data[9], addr[8];
  // data[] : Données lues depuis le scratchpad
  // addr[] : Adresse du module 1-Wire détecté

  /* Reset le bus 1-Wire ci nécessaire (requis pour la lecture du premier capteur) */
  if (reset_search) {
    ds.reset_search();
  }

  /* Recherche le prochain capteur 1-Wire disponible */
  if (!ds.search(addr)) {
    // Pas de capteur
    return NO_SENSOR_FOUND;
  }

  /* Vérifie que l'adresse a été correctement reçue */
  if (OneWire::crc8(addr, 7) != addr[7]) {
    // Adresse invalide
    return INVALID_ADDRESS;
  }

  /* Vérifie qu'il s'agit bien d'un DS18B20 */
  if (addr[0] != 0x28) {
    // Mauvais type de capteur
    return INVALID_SENSOR;
  }

  /* Reset le bus 1-Wire et sélectionne le capteur */
  ds.reset();
  ds.select(addr);

  /* Lance une prise de mesure de température et attend la fin de la mesure */
  ds.write(0x44, 1);
  delay(800);

  /* Reset le bus 1-Wire, sélectionne le capteur et envoie une demande de lecture du scratchpad */
  ds.reset();
  ds.select(addr);
  ds.write(0xBE);

  /* Lecture du scratchpad */
  for (byte i = 0; i < 9; i++) {
    data[i] = ds.read();
  }

  /* Calcul de la température en degré Celsius */
  *temperature = ((data[1] << 8) | data[0]) * 0.0625;

  // Pas d'erreur
  return READ_OK;
}

float temperaturePin = 0;
int button1Pin,button2Pin,button3Pin,ledPin,relayPin;

/** Fonction setup() **/
void setup() {
const int button1 = 9;
const int button2Pin = 10;
const int button3Pin = 11;
const int ledPin = 12;
const int relayPin = 13;

int button1Pin = 0;
int button2Pin = 0;
int button3Pin = 0;
int ledPin = 0;
int relayPin = 0;

  pinMode(button1, INPUT);
  pinMode(button2, INPUT);
  pinMode(button3, INPUT);
  pinMode(led,OUTPUT);
  pinMode(relay, OUTPUT);

  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);

  lcd.setCursor(0, 0);

  // Print a message to the LCD.
  lcd.print("Initialisation");
  delay(2000);
  lcd.clear();

  /* Initialisation du port série */
  Serial.begin(9600);
}


/** Fonction loop() **/
void loop() {
  button1 = digitalRead(button1Pin);
  button2 = digitalRead(button2Pin);
  button3 = digitalRead(button3Pin);

  if (getTemperature(&temperature, true) != READ_OK) {
        Serial.println(F("Erreur de lecture du capteur"));
   }

  if (button1 = HIGH)
  {
    while (temperature <= 90)
    {
        // Activer LED
      digitalWrite(led,HIGH);
      // Activer RELAIS
      digitalWrite(relay,HIGH);

      
      lcd.setCursor(0, 0);
      lcd.print("Temp.: ");
      /* Lit la température ambiante à ~1Hz */
      if (getTemperature(&temperature, true) != READ_OK) {
        Serial.println(F("Erreur de lecture du capteur"));
      }
        /* Affiche la température */
        lcd.print(temperature, 1);
        lcd.write(176);
        lcd.print("C");
        Serial.print(F("Temperature : "));
        Serial.print(temperature, 2);
        Serial.write(176); // Caractère degré
        Serial.write('C');
        Serial.println();
    }
  }
  else if (button2 = HIGH)
  {
    while (temperature <= 80)
    {
      // Activer LED
      digitalWrite(led,HIGH);
      // Activer RELAIS
      digitalWrite(relay,HIGH);

      
      lcd.setCursor(0, 0);
      lcd.print("Temp.: ");
      /* Lit la température ambiante à ~1Hz */
      if (getTemperature(&temperature, true) != READ_OK) {
        Serial.println(F("Erreur de lecture du capteur"));
      }
        /* Affiche la température */
        lcd.print(temperature, 1);
        lcd.write(176);
        lcd.print("C");
        Serial.print(F("Temperature : "));
        Serial.print(temperature, 2);
        Serial.write(176); // Caractère degré
        Serial.write('C');
        Serial.println();
    }
  }
  else if (button3 = HIGH)
  {
    while (temperature <= 70)
    {
        // Activer LED
      digitalWrite(led,HIGH);
      // Activer RELAIS
      digitalWrite(relay,HIGH);

      
      lcd.setCursor(0, 0);
      lcd.print("Temp.: ");
      /* Lit la température ambiante à ~1Hz */
      if (getTemperature(&temperature, true) != READ_OK) {
        Serial.println(F("Erreur de lecture du capteur"));
      }
        /* Affiche la température */
        lcd.print(temperature, 1);
        lcd.write(176);
        lcd.print("C");
        Serial.print(F("Temperature : "));
        Serial.print(temperature, 2);
        Serial.write(176); // Caractère degré
        Serial.write('C');
        Serial.println();
        
    }
  }
 lcd.clear();
}

Corrigez déjà les erreurs de compilation... (par exemple regardez où vous déclarez vos pins...)

Où est l'erreur dans la déclaration des pins ?

Bonjour,

Déplaces la définition des pins

  const int button1Pin = 9;
  const int button2Pin = 10;
  const int button3Pin = 11;
  const int ledPin = 12;
  const int relayPin = 13;

avant le setup.

Et lis bien les messages d'erreur.

int relay = 13;

float temperature = 0;

/** Fonction setup() **/
void setup() {


 pinMode(button1Pin, INPUT);
 pinMode(button2Pin, INPUT);
 pinMode(button3Pin, INPUT);
 pinMode(led,OUTPUT);
 pinMode(relay, OUTPUT);

 // set up the LCD's number of columns and rows:
 lcd.begin(16, 2);

 lcd.setCursor(0, 0);

 // Print a message to the LCD.
 lcd.print("Initialisation");
 delay(2000);
 lcd.clear();

 /* Initialisation du port série */
 Serial.begin(9600);
}


/** Fonction loop() **/
void loop() {
 button1Pin = digitalRead(button1Pin);
 button2Pin = digitalRead(button2Pin);
 button3Pin = digitalRead(button3Pin);

 if (getTemperature(&temperature, true) != READ_OK) {
       Serial.println(F("Erreur de lecture du capteur"));
  }

 if (button1Pin = HIGH)
 
 {
   while (temperature <= 90)
   {
       // Activer LED
     digitalWrite(led,HIGH);
     // Activer RELAIS
     digitalWrite(relay,HIGH);

     
     lcd.setCursor(0, 0);
     lcd.print("Temp.: ");
     /* Lit la température ambiante à ~1Hz */
     if (getTemperature(&temperature, true) != READ_OK) {
       Serial.println(F("Erreur de lecture du capteur"));
     }
       /* Affiche la température */
       lcd.print(temperature, 1);
       lcd.write(176);
       lcd.print("C");
       Serial.print(F("Temperature : "));
       Serial.print(temperature, 2);
       Serial.write(176); // Caractère degré
       Serial.write('C');
       Serial.println();
   }
 }
 else if (button2Pin = HIGH)
 {
   while (temperature <= 80)
   {
     // Activer LED
     digitalWrite(led,HIGH);
     // Activer RELAIS
     digitalWrite(relay,HIGH);

     
     lcd.setCursor(0, 0);
     lcd.print("Temp.: ");
     /* Lit la température ambiante à ~1Hz */
     if (getTemperature(&temperature, true) != READ_OK) {
       Serial.println(F("Erreur de lecture du capteur"));
     }
       /* Affiche la température */
       lcd.print(temperature, 1);
       lcd.write(176);
       lcd.print("C");
       Serial.print(F("Temperature : "));
       Serial.print(temperature, 2);
       Serial.write(176); // Caractère degré
       Serial.write('C');
       Serial.println();
   }
 }
 else if (button3Pin = HIGH)
 {
   
   while (temperature <= 70)
   {
       // Activer LED
     digitalWrite(led,HIGH);
     // Activer RELAIS
     digitalWrite(relay,HIGH);

     
     lcd.setCursor(0, 0);
     lcd.print("Temp.: ");
     /* Lit la température ambiante à ~1Hz */
     if (getTemperature(&temperature, true) != READ_OK) {
       Serial.println(F("Erreur de lecture du capteur"));
     }
       /* Affiche la température */
       lcd.print(temperature, 1);
       lcd.write(176);
       lcd.print("C");
       Serial.print(F("Temperature : "));
       Serial.print(temperature, 2);
       Serial.write(176); // Caractère degré
       Serial.write('C');
       Serial.println();
       
   }
 }
lcd.clear();
}

peux-tu editer ton message et mettre le code entre balises code ? (premier icone à gauche de l'éditeur : < / >)
merci

Moi je n’aide plus si le message n’est pas posté avec les balises. Prenez le temps de lire comment utiliser le forum t(et qui plus est si le code est manisfestement incomplet)

Re bonjour,

J'aimerais lorsque j'appuie sur un de mes 3 boutons que le relay et la LED s'allument jusqu'à une certaine température pour ensuite s'éteindre. Avec mon codage, quand je branche mon arduino, le relay est allumé mais la LED est éteinte (sans toucher les boutons) et au bout de 4s le relay s'éteint et la LED s'allume.

voici mon code :

/**
   Exemple de code pour lire un unique capteur DS18B20 sur un bus 1-Wire.
*/

/* Dépendance pour le bus 1-Wire */
#include <OneWire.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(2, 3, 4, 5, 6, 8);
/* Broche du bus 1-Wire */
const byte BROCHE_ONEWIRE = 7;
/* Code de retour de la fonction getTemperature() */
enum DS18B20_RCODES {
  READ_OK,  // Lecture ok
  NO_SENSOR_FOUND,  // Pas de capteur
  INVALID_ADDRESS,  // Adresse reçue invalide
  INVALID_SENSOR  // Capteur invalide (pas un DS18B20)
};


/* Création de l'objet OneWire pour manipuler le bus 1-Wire */
OneWire ds(BROCHE_ONEWIRE);


/**
   Fonction de lecture de la température via un capteur DS18B20.
*/
byte getTemperature(float *temperature, byte reset_search) {
  byte data[9], addr[8];
  // data[] : Données lues depuis le scratchpad
  // addr[] : Adresse du module 1-Wire détecté

  /* Reset le bus 1-Wire ci nécessaire (requis pour la lecture du premier capteur) */
  if (reset_search) {
    ds.reset_search();
  }

  /* Recherche le prochain capteur 1-Wire disponible */
  if (!ds.search(addr)) {
    // Pas de capteur
    return NO_SENSOR_FOUND;
  }

  /* Vérifie que l'adresse a été correctement reçue */
  if (OneWire::crc8(addr, 7) != addr[7]) {
    // Adresse invalide
    return INVALID_ADDRESS;
  }

  /* Vérifie qu'il s'agit bien d'un DS18B20 */
  if (addr[0] != 0x28) {
    // Mauvais type de capteur
    return INVALID_SENSOR;
  }

  /* Reset le bus 1-Wire et sélectionne le capteur */
  ds.reset();
  ds.select(addr);

  /* Lance une prise de mesure de température et attend la fin de la mesure */
  ds.write(0x44, 1);
  delay(800);

  /* Reset le bus 1-Wire, sélectionne le capteur et envoie une demande de lecture du scratchpad */
  ds.reset();
  ds.select(addr);
  ds.write(0xBE);

  /* Lecture du scratchpad */
  for (byte i = 0; i < 9; i++) {
    data[i] = ds.read();
  }

  /* Calcul de la température en degré Celsius */
  *temperature = ((data[1] << 8) | data[0]) * 0.0625;

  // Pas d'erreur
  return READ_OK;
}

int button1Pin = 9;
int button2Pin = 10;
int button3Pin = 11;
int led = 12;

int relay = 13;

float temperature = 0;

/** Fonction setup() **/
void setup() {


  pinMode(button1Pin, INPUT);
  pinMode(button2Pin, INPUT);
  pinMode(button3Pin, INPUT);
  pinMode(led,OUTPUT);
  pinMode(relay, OUTPUT);

  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);

  lcd.setCursor(0, 0);

  // Print a message to the LCD.
  lcd.print("Initialisation");
  delay(2000);
  lcd.clear();

  /* Initialisation du port série */
  Serial.begin(9600);
}


/** Fonction loop() **/
void loop() {
  button1Pin = digitalRead(button1Pin);
  button2Pin = digitalRead(button2Pin);
  button3Pin = digitalRead(button3Pin);

  if (getTemperature(&temperature, true) != READ_OK) {
        Serial.println(F("Erreur de lecture du capteur"));
   }

  if (button1Pin = HIGH)
  
  {
    while (temperature <= 90)
    {
        // Activer LED
      digitalWrite(led,HIGH);
      // Activer RELAIS
      digitalWrite(relay,HIGH);

      
      lcd.setCursor(0, 0);
      lcd.print("Temp.: ");
      /* Lit la température ambiante à ~1Hz */
      if (getTemperature(&temperature, true) != READ_OK) {
        Serial.println(F("Erreur de lecture du capteur"));
      }
        /* Affiche la température */
        lcd.print(temperature, 1);
        lcd.write(176);
        lcd.print("C");
        Serial.print(F("Temperature : "));
        Serial.print(temperature, 2);
        Serial.write(176); // Caractère degré
        Serial.write('C');
        Serial.println();
    }
  }
  else if (button2Pin = HIGH)
  {
    while (temperature <= 80)
    {
      // Activer LED
      digitalWrite(led,HIGH);
      // Activer RELAIS
      digitalWrite(relay,HIGH);

      
      lcd.setCursor(0, 0);
      lcd.print("Temp.: ");
      /* Lit la température ambiante à ~1Hz */
      if (getTemperature(&temperature, true) != READ_OK) {
        Serial.println(F("Erreur de lecture du capteur"));
      }
        /* Affiche la température */
        lcd.print(temperature, 1);
        lcd.write(176);
        lcd.print("C");
        Serial.print(F("Temperature : "));
        Serial.print(temperature, 2);
        Serial.write(176); // Caractère degré
        Serial.write('C');
        Serial.println();
    }
  }
  else if (button3Pin = HIGH)
  {
    
    while (temperature <= 70)
    {
        // Activer LED
      digitalWrite(led,HIGH);
      // Activer RELAIS
      digitalWrite(relay,HIGH);

      
      lcd.setCursor(0, 0);
      lcd.print("Temp.: ");
      /* Lit la température ambiante à ~1Hz */
      if (getTemperature(&temperature, true) != READ_OK) {
        Serial.println(F("Erreur de lecture du capteur"));
      }
        /* Affiche la température */
        lcd.print(temperature, 1);
        lcd.write(176);
        lcd.print("C");
        Serial.print(F("Temperature : "));
        Serial.print(temperature, 2);
        Serial.write(176); // Caractère degré
        Serial.write('C');
        Serial.println();
        
    }
  }
 lcd.clear();
}

Ici

 button1Pin = digitalRead(button1Pin);

Tu affectes à button1Pin la valeur lue sur la pin button1Pin. Donc à la prochaine entrée dans la loop button1Pin va valoir 0 ou 1 et non 9 comme ça devrait être.

Utilises une autre variable par exemple

 int button1Val = digitalRead(button1Pin);

De plus déclares les pins en const, ça évitera ce genre d'erreur et en plus optimisera le programme.

const int button1Pin = 9;
const int button2Pin = 10;
const int button3Pin = 11;
const int led = 12;

const int relay = 13;

j'ai corrigé les quelques détails mais j'ai toujours le même problème qu'est ce que je dois faire

/**
   Exemple de code pour lire un unique capteur DS18B20 sur un bus 1-Wire.
*/

/* Dépendance pour le bus 1-Wire */
#include <OneWire.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(2, 3, 4, 5, 6, 8);
/* Broche du bus 1-Wire */
const byte BROCHE_ONEWIRE = 7;
/* Code de retour de la fonction getTemperature() */
enum DS18B20_RCODES {
  READ_OK,  // Lecture ok
  NO_SENSOR_FOUND,  // Pas de capteur
  INVALID_ADDRESS,  // Adresse reçue invalide
  INVALID_SENSOR  // Capteur invalide (pas un DS18B20)
};


/* Création de l'objet OneWire pour manipuler le bus 1-Wire */
OneWire ds(BROCHE_ONEWIRE);


/**
   Fonction de lecture de la température via un capteur DS18B20.
*/
byte getTemperature(float *temperature, byte reset_search) {
  byte data[9], addr[8];
  // data[] : Données lues depuis le scratchpad
  // addr[] : Adresse du module 1-Wire détecté

  /* Reset le bus 1-Wire ci nécessaire (requis pour la lecture du premier capteur) */
  if (reset_search) {
    ds.reset_search();
  }

  /* Recherche le prochain capteur 1-Wire disponible */
  if (!ds.search(addr)) {
    // Pas de capteur
    return NO_SENSOR_FOUND;
  }

  /* Vérifie que l'adresse a été correctement reçue */
  if (OneWire::crc8(addr, 7) != addr[7]) {
    // Adresse invalide
    return INVALID_ADDRESS;
  }

  /* Vérifie qu'il s'agit bien d'un DS18B20 */
  if (addr[0] != 0x28) {
    // Mauvais type de capteur
    return INVALID_SENSOR;
  }

  /* Reset le bus 1-Wire et sélectionne le capteur */
  ds.reset();
  ds.select(addr);

  /* Lance une prise de mesure de température et attend la fin de la mesure */
  ds.write(0x44, 1);
  delay(800);

  /* Reset le bus 1-Wire, sélectionne le capteur et envoie une demande de lecture du scratchpad */
  ds.reset();
  ds.select(addr);
  ds.write(0xBE);

  /* Lecture du scratchpad */
  for (byte i = 0; i < 9; i++) {
    data[i] = ds.read();
  }

  /* Calcul de la température en degré Celsius */
  *temperature = ((data[1] << 8) | data[0]) * 0.0625;

  // Pas d'erreur
  return READ_OK;
}

const int button1Pin = 9;
const int button2Pin = 10;
const int button3Pin = 11;
const int led = 12;

const int relay = 13;

float temperature = 0;

/** Fonction setup() **/
void setup() {


  pinMode(button1Pin, INPUT);
  pinMode(button2Pin, INPUT);
  pinMode(button3Pin, INPUT);
  pinMode(led,OUTPUT);
  pinMode(relay, OUTPUT);

  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);

  lcd.setCursor(0, 0);

  // Print a message to the LCD.
  lcd.print("Initialisation");
  delay(2000);
  lcd.clear();

  /* Initialisation du port série */
  Serial.begin(9600);
}


/** Fonction loop() **/
void loop() {
  float temperature;
 int button1Val = digitalRead(button1Pin);
 int button2Val = digitalRead(button2Pin);
 int button3Val = digitalRead(button3Pin);

  if (getTemperature(&temperature, true) != READ_OK) {
        Serial.println(F("Erreur de lecture du capteur"));
   }

  if ( button1Val = HIGH)
  
  {
    while (temperature <= 90)
    {
        // Activer LED
      digitalWrite(led,HIGH);
      // Activer RELAIS
      digitalWrite(relay,HIGH);

      
      lcd.setCursor(0, 0);
      lcd.print("Temp.: ");
      /* Lit la température ambiante à ~1Hz */
      if (getTemperature(&temperature, true) != READ_OK) {
        Serial.println(F("Erreur de lecture du capteur"));
      }
        /* Affiche la température */
        lcd.print(temperature, 1);
        lcd.write(176);
        lcd.print("C");
        Serial.print(F("Temperature : "));
        Serial.print(temperature, 2);
        Serial.write(176); // Caractère degré
        Serial.write('C');
        Serial.println();
    }
  }
  else if (button2Val = HIGH)
  {
    while (temperature <= 80)
    {
      // Activer LED
      digitalWrite(led,HIGH);
      // Activer RELAIS
      digitalWrite(relay,HIGH);

      
      lcd.setCursor(0, 0);
      lcd.print("Temp.: ");
      /* Lit la température ambiante à ~1Hz */
      if (getTemperature(&temperature, true) != READ_OK) {
        Serial.println(F("Erreur de lecture du capteur"));
      }
        /* Affiche la température */
        lcd.print(temperature, 1);
        lcd.write(176);
        lcd.print("C");
        Serial.print(F("Temperature : "));
        Serial.print(temperature, 2);
        Serial.write(176); // Caractère degré
        Serial.write('C');
        Serial.println();
    }
  }
  else if (button3Val = HIGH)
  {
    
    while (temperature <= 70)
    {
        // Activer LED
      digitalWrite(led,HIGH);
      // Activer RELAIS
      digitalWrite(relay,HIGH);

      
      lcd.setCursor(0, 0);
      lcd.print("Temp.: ");
      /* Lit la température ambiante à ~1Hz */
      if (getTemperature(&temperature, true) != READ_OK) {
        Serial.println(F("Erreur de lecture du capteur"));
      }
        /* Affiche la température */
        lcd.print(temperature, 1);
        lcd.write(176);
        lcd.print("C");
        Serial.print(F("Temperature : "));
        Serial.print(temperature, 2);
        Serial.write(176); // Caractère degré
        Serial.write('C');
        Serial.println();
        
    }
  }
 lcd.clear();
}

Relisez bien le code

if ( button1Val = HIGH) ....
else if (button2Val = HIGH)....
else if (button3Val = HIGH)....

Oops....I’ll y a de l’affectation dans l’air...

Sinon dans

while (temperature <= 90) {
        // Activer LED
      digitalWrite(led,HIGH);
      // Activer RELAIS
      digitalWrite(relay,HIGH);
      ...

d’une part pourquoi vous acharnez vous à allumer la LED et les relais à chaque tour du while, une fois suffirait, et d’autre part où les éteignez vous donc.... ?

Enfin Expliquez comment sont câblés les boutons. Vous avez une résistance en pull down?

Pour les tests, ce que montre J-M-L, vas voir cette page, section "Comparison Operators"