DS18b20 et delay

Bonjour,

Pour récupérer la température d'une sonde DS18b20, il faut une instruction delay de 750ms ou moins selon la résolution souhaitée.
Cela bloque le programme pendant le temps de lecture. J'ai essayé avec millis() mais ça ne fonctionne pas(enfin, j'ai pas réussi).

Quand je récupère la température de ma RTC DS3231, c'est immédiat sans delay.

Est il possible de faire pareil avec la sonde DS18b20 ?

Merci de votre aide

bonjour,
fonction millis()

J'avais essayé avec millis() comme écrit + haut mais j'ai du faire une erreur. Je vais essayer de nouveau.

Merci

Bonjour,
Tu peux faire quelque chose de cette forme ;

 //start converssion températures
 if(etatConv != EN_COURS){
 startTempMes(DS01);
 etatConv = EN_COURS;
 }
 //lecture température
 if((millis() - tempsConv) > TEMPS_CONV){
 temperature = getTemp(DS01);
 etatConv = TERMINE;
 tempsConv = millis();
 }

C'est bon, ça fonctionne. je n'ai plus aucune instruction "delay(..) dans mon programme.

 // Lance une prise de mesure de température et attend la fin de la mesure
        if (millis() - delai7 < interval12)
          {
            ds.write(0x44);
          }

En fait c'est cette instruction :

delai7 = millis();

qui était mal placée dans le programme.

Merci pour votre aide

:slight_smile: