Recuperer valeur de temperature à intervalle régulier

Bonjour, Je souhaiterais savoir comment récupérer la valeur de ma sonde de température DS18b20 à intervalle régulier (toutes les min) sans utiliser delay afin de ne pas bloquer le reste du code. Merci

Interruption temporelle avec la fonction millis()

oui mais je ne veux pas bloquer la suite de mon code

en utilisant correctement millis(), tu ne bloqueras pas ton code contrairement à delay()

Ok, merci bien. Voilà à quoi ressemble mon code pour l’instant

unsigned long time;
unsigned long time_prec;
unsigned long difference;
unsigned long difference1;
// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  difference = millis() +60000;
  difference1 = millis() +60010;
  time = 0;
}

// the loop routine runs over and over again forever:
void loop() {
	Serial.println(millis());
	Serial.println (difference);
	if( millis() > difference && millis() < difference1){
		Serial.println("ok"); // remplace le code de recuperation de la temp
		time = millis();
		difference = time + 60000;
		difference1 = time + 60010;
	}

}

Ta deuxième conditions ne risque que de bloquer ton programme : si une instruction quelle qu'elle soit prend plus de 10 ms tu risques de ne plus jamais rentrer dans ta condition.

Ok, il est donc préférable de ne pas faire ma seconde condition.

B@tto: Ta deuxième conditions ne risque que de bloquer ton programme : si une instruction quelle qu'elle soit prend plus de 10 ms tu risques de ne plus jamais rentrer dans ta condition.

bonjour et avec les sympathiques DS18B20, il faut quand meme se rappeller qu'une acquistion/restitution à resolution max est de l'ordre de la seconde (750ms+tripaille autour, je mets ça par confort à la seconde de temps :grin: )

Je ne pensais pas que c’était aussi long avec ce genre de capteur.

alb12: Je ne pensais pas que c’était aussi long avec ce genre de capteur.

voir dernier item features (page 1) http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf

C'est l'inconvénient des liaisons asynchrones : tu ne transmet que les données donc seulement un seul fil mais à l'arrivée il faut que le récepteur extrait une horloge du flux de donnée. Pour que se soit possible il faut à l'émission un codage qui modifie le spectre du signal émis et à la réception du temps pour traiter le signal. L'I2C ou l'ISP vont plus vite parce que l'horloge est transmise à part mais cela fait 2(I2C) ou 3(ISP) fils.

Il est donc difficile avec ce type de capteur de faire du "multitâche" Envoyer de donnée 433 Mhz, Réception de donnée 433Mhz, activer un relai ...

Du multitâche à proprement parlé non, mais il faut relativiser : envoyer des données, en receptionner, on est dans l'ordre de la dizaine de ms, activer un relais je n'en parle pas (si on passe par la manipulation des ports direct, on est dans la µs). Donc in fine pour l'utilisateur c'est du multitâche puisque la différenciation des tâches est imperceptible.

Après pour la mesure de température il y a d'autres technologies : comme évoqué par 68tj, il a d'autres capteurs "stand alone" qui utilisent d'autres protocole de com bien plus rapide, mais il y a également les thermocouples, les pt100/1000, les CTP/CTN ... Tout dépend ensuite de la gamme/précision/budget recherché.

B@tto: ... Après pour la mesure de température il y a d'autres technologies : comme évoqué par 68tj, il a d'autres capteurs "stand alone" qui utilisent d'autres protocole de com bien plus rapide, mais il y a également les thermocouples, les pt100/1000, les CTP/CTN ... Tout dépend ensuite de la gamme/précision/budget recherché.

Bonsoir B@tto tout à fait la première et principale question est celle-ci

j'ai besoin d'acquerir de la T°, avec telles et telles contraintes (en vrac) gamme précision résolution temps de réaction etc

une fois ça posé sur le papier, la chasse aux candidats peut commencer et selon les contraintes le cout capteur peut aller de quelques cts d'€ à qq gros billets d'€ :grin:

peut aller de quelques cts d'€ à qq gros billets d'€

Tout de suite le sujet qui fâche :grin: Plus sérieusement je suis tout à fait d'accord c'est primordial d'avoir un bon cahier des charges.