Pages: [1]   Go Down
Author Topic: Recuperer valeur de temperature à intervalle régulier  (Read 852 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 133
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Ales
Offline Offline
Faraday Member
**
Karma: 29
Posts: 3164
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Interruption temporelle avec la fonction millis()
Logged


Offline Offline
Full Member
***
Karma: 0
Posts: 133
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 24
Posts: 3170
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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

Offline Offline
Full Member
***
Karma: 0
Posts: 133
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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

}

Logged

Ales
Offline Offline
Faraday Member
**
Karma: 29
Posts: 3164
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Offline Offline
Full Member
***
Karma: 0
Posts: 133
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Faraday Member
**
Karma: 19
Posts: 4155
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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   )
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 133
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Faraday Member
**
Karma: 19
Posts: 4155
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

France S-O ou exil en IDF
Offline Offline
Edison Member
*
Karma: 25
Posts: 1905
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Full Member
***
Karma: 0
Posts: 133
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Ales
Offline Offline
Faraday Member
**
Karma: 29
Posts: 3164
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Offline Offline
Faraday Member
**
Karma: 19
Posts: 4155
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

France S-O ou exil en IDF
Offline Offline
Edison Member
*
Karma: 25
Posts: 1905
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Pages: [1]   Go Up
Jump to: