Go Down

Topic: Recuperer valeur de temperature à intervalle régulier (Read 1 time) previous topic - next topic

alb12

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

B@tto

Interruption temporelle avec la fonction millis()
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

alb12

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

Jean-François

en utilisant correctement millis(), tu ne bloqueras pas ton code contrairement à delay()
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

alb12

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

Code: [Select]

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;
}

}


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.
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

alb12

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

Artouste


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  :smiley-mr-green:   )

alb12

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

Artouste


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

68tjs

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.

alb12

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 ...

B@tto

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é.
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

Artouste


...
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'€  :smiley-mr-green:

68tjs

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

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

Go Up