Gestion des erreurs du DS18B20

De retour!

Après de nombreux tests, mon programme fonctionne enfin :

#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS_PIN 8
OneWire oneWire(ONE_WIRE_BUS_PIN);
DallasTemperature sensors(&oneWire);


DeviceAddress temp = { 0x28, 0x50, 0x27, 0x1C, 0x05, 0x00, 0x00, 0x86 };
DeviceAddress temp1 = { 0x28, 0x8C, 0xED, 0x1B, 0x05, 0x00, 0x00, 0x26 };

void setup()   
{ 
  Serial.begin(9600);

  sensors.begin();
  sensors.setResolution(temp, 12);
  sensors.setResolution(temp1, 12);
}

void loop()  
{
  delay(1000);
  Serial.print(sensors.getDeviceCount());   
  Serial.print("\t");  
  sensors.requestTemperatures();  
  printTemperature(temp);
  Serial.print("\t");
  printTemperature(temp1);  
  Serial.println();
  
}


void printTemperature(DeviceAddress deviceAddress)
{

float tempC = sensors.getTempC(deviceAddress);

   if (tempC == -127.00) 
   {
   Serial.print("erreur");
   } 
   else
   {
   Serial.print("");
   Serial.print(tempC);

   }
}

J'ai été surpris que celui-ci fonctionne comme je le souhaite :astonished:

Parce que dans ton code entier printTemperature() n'est jamais appelé

Tu avais raison, il me fallait utiliser printTemperature dans la boucle loop() et ensuite traiter la boucle d'erreur void printTemperature()....J'ai encore beaucoup à apprendre :stuck_out_tongue:

Merci à vous en tout cas,
bonne journée !

Lykaa