mettre un seuil pour une sonde de type ds18b20

Bonjour j’aimerais que l’on me dise pourquoi le programme ne marche pas avec le seuil

#include <OneWire.h> // Inclusion de la librairie OneWire
#define LEDV 3
#define LEDR 4
#define DS18B20 0x28     // Adresse 1-Wire du DS18B20
#define BROCHE_ONEWIRE 7 // Broche utilisée pour le bus 1-Wire
 int = 26;
OneWire ds(BROCHE_ONEWIRE); // Création de l'objet OneWire ds
 
// Fonction récupérant la température depuis le DS18B20
// Retourne true si tout va bien, ou false en cas d'erreur
boolean getTemperature(float *temp){
  byte data[9], addr[8];
  // data : Données lues depuis le scratchpad
  // addr : adresse du module 1-Wire détecté
 
  if (!ds.search(addr)) { // Recherche un module 1-Wire
    ds.reset_search();    // Réinitialise la recherche de module
    return false;         // Retourne une erreur
  }
   
  if (OneWire::crc8(addr, 7) != addr[7]) // Vérifie que l'adresse a été correctement reçue
    return false;                        // Si le message est corrompu on retourne une erreur
 
  if (addr[0] != DS18B20) // Vérifie qu'il s'agit bien d'un DS18B20
    return false;         // Si ce n'est pas le cas on retourne une erreur
 
  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
   
  ds.write(0x44, 1);      // On lance une prise de mesure de température
  delay(800);             // Et on attend la fin de la mesure
   
  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
  ds.write(0xBE);         // On envoie une demande de lecture du scratchpad
 
  for (byte i = 0; i < 9; i++) // On lit le scratchpad
    data[i] = ds.read();       // Et on stock les octets reçus
   
  // Calcul de la température en degré Celsius
  *temp = ((data[1] << 8) | data[0]) * 0.0625;
   
  // Pas d'erreur
  return true;
}
 
// setup()
void setup() {
  Serial.begin(9600); // Initialisation du port série
  pinMode(LEDV, OUTPUT); // Choix du mode des Pins des LEDs
 pinMode(LEDR, OUTPUT);
}
 
// loop()
void loop() {
  float temp;
   
  // Lit la température ambiante à ~1Hz
  if(getTemperature(&temp)) {
     
    // Affiche la température
    Serial.print("Temperature : ");
    Serial.print(temp);
    Serial.write(176); // caractère °
    Serial.write('C');
    Serial.println();
  }
   if (Temperature > seuil)
   {
  digitalWrite(LEDR, HIGH);
  digitalWrite(LEDV, LOW);
}
else if (Temperature < seuil)
{
  digitalWrite(LEDV, HIGH);
  digitalWrite(LEDR, LOW);
}
}

aleqcis: Bonjour j'aimerais que l'on me dise pourquoi le programme ne marche pas avec le seuil

déjà les variables seuil et temperature ne sont pas definies

bonjour, ca serait temp au lieu de Temperature ?

EDIT : Artouste, tu tape plus vite que moi :) exacte pour le seuil en plus ;) et c'est quoi ca?

 int = 26;

Bonsoir,

Je suppose que" 26" fait référence à la température de seuil. Il ne manquait que la variable :) donc :

int seuil 26;

Pour le test :

if (temp > seuil)
   {
  digitalWrite(LEDR, HIGH);
  digitalWrite(LEDV, LOW);

}

Salutations

merci pour les réponses j’ai donc mis en variable

int seuil = 26

mais quand je compile il me met une erreur ici

 if (Temperature > seuil)
   {
  digitalWrite(LEDR, HIGH);
  digitalWrite(LEDV, LOW);
}
else if (Temperature < seuil)
{
  digitalWrite(LEDV, HIGH);
  digitalWrite(LEDR, LOW);

aleqcis:
merci pour les réponses j’ai donc mis en variable

int seuil = 26

mais quand je compile il me met une erreur ici

 if (Temperature > seuil)

{
  digitalWrite(LEDR, HIGH);
  digitalWrite(LEDV, LOW);
}
else if (Temperature < seuil)
{
  digitalWrite(LEDV, HIGH);
  digitalWrite(LEDR, LOW);

Temperature n’est pas defini
ta temperature tu la recupere dans temp pas dans Temperature

Ce serais donc sa ?

 if (temp > seuil)
   {
  digitalWrite(LEDR, HIGH);
  digitalWrite(LEDV, LOW);
}
else if (temp < seuil)
{
  digitalWrite(LEDV, HIGH);
  digitalWrite(LEDR, LOW);

infobarquee:
bonjour,
ca serait temp au lieu de Temperature

évidemment que oui, tu es en train d’essayer d’afficher un "commentaire en fait :slight_smile:
regardes bien le code et trouve ou est pris la variable et ou elle est affichée dans le code

if(getTemperature(&temp)) {

// Affiche la température
Serial.print("Temperature : ");
Serial.print(temp);
Serial.write(176); // caractère °
Serial.write(‘C’);
Serial.println();
}