IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

2 mesures de température MAX31865 PT100


Sujet :

Arduino

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Cadre technique
    Inscrit en
    Août 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre technique
    Secteur : Santé

    Informations forums :
    Inscription : Août 2017
    Messages : 14
    Points : 9
    Points
    9
    Par défaut 2 mesures de température MAX31865 PT100
    Bonjour,
    Je souhaite comparer 2 températures avec 2 sondes PT100 et 2 modules à base de MAX31865 (Adafruit).
    Voir le schéma de principe pour une sonde :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <Adafruit_MAX31865.h>
    Adafruit_MAX31865 mon_capteur = Adafruit_MAX31865(5,11,12,13);
    void setup() {
      Serial.begin(57600);
      mon_capteur.begin(MAX31865_2WIRE);
    }
    void loop() {
      float R = mon_capteur.lecture_resistance();
      float T=(R-101.7)/0.378;
      Serial.print(T);
      //Serial.print(",");
      //Serial.print(R);
      Serial.println();
      delay (500);
    Je ne vois pas comment compléter le code pour 2 MAX31865 en simultané sans qu'ils interfèrent entre eux et comparer leurs 2 résultats.
    Par exemple pour voir les 2 courbes sur le traceur série.
    Si quelqu'un a une suggestion ...
    (Je ne suis pas étudiant et ne souhaite pas vous faire faire mes devoirs à ma place )
    Merci.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Cadre technique
    Inscrit en
    Août 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre technique
    Secteur : Santé

    Informations forums :
    Inscription : Août 2017
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    En posant la question, je crois que la solution m'est apparue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include <Adafruit_MAX31865.h>
    Adafruit_MAX31865 mon_capteur1 = Adafruit_MAX31865(5,11,12,13);
    Adafruit_MAX31865 mon_capteur2 = Adafruit_MAX31865(4,7,8,9);
     
    void setup() {
      Serial.begin(57600);
      mon_capteur1.begin(MAX31865_2WIRE);
      mon_capteur2.begin(MAX31865_2WIRE);
    }
    void loop() {
      float R1 = mon_capteur1.lecture_resistance();
      float T1=(R1-101.7)/0.378;
      float R2 = mon_capteur2.lecture_resistance();
      float T2=(R2-101.7)/0.378;
      Serial.print ("T1: ");
      Serial.print(T1);
      Serial.print(",");
      Serial.print ("T2: ");
      Serial.print(T2);
      Serial.println();
      delay (500);  
    }
    Si ça fonctionne correctement, je vais pouvoir avancer sur mon projet de mesure de niveau d'eau sur une chaudière à vapeur (modélisme).

  3. #3
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 620
    Points : 56 857
    Points
    56 857
    Billets dans le blog
    40
    Par défaut
    Salut,

    Citation Envoyé par Malevthi Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Adafruit_MAX31865 mon_capteur1 = Adafruit_MAX31865(5,11,12,13);
    Adafruit_MAX31865 mon_capteur2 = Adafruit_MAX31865(4,7,8,9);
    Il y a sans doute moyen d'économiser les ressources. Pour cela, les 3 liaisons MOSI, MISO et CLOCK du SPI matériel (connecteurs 11, 12, 13 sur l'Arduino Uno) sont communes aux deux modules.
    Par contre, il faut une broche de sélection CS différente par module.

    Extrait de la doc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // use hardware SPI, just pass in the CS pin
    //Adafruit_MAX31865 thermo = Adafruit_MAX31865(10);
    J'essaierais donc plutôt quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Adafruit_MAX31865 mon_capteur1 = Adafruit_MAX31865(5);  // CS sur pin 4
    Adafruit_MAX31865 mon_capteur2 = Adafruit_MAX31865(4);  // CS sur pin 5

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Cadre technique
    Inscrit en
    Août 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre technique
    Secteur : Santé

    Informations forums :
    Inscription : Août 2017
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Merci pour cette réponse. Je n'ai pas encore reçu le deuxième module MAX31865 pour faire le test en réel.
    En effet, pour un seul module, je n'ai spécifié que CS sur 4 et ça continue de fonctionner.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <Adafruit_MAX31865.h>
    Adafruit_MAX31865 mon_capteur1 = Adafruit_MAX31865(4);  // CS1 sur pin 4
    « Bon sang! Mais c’est… Bien sûr ! », c'est tout l'intérêt du SPI !
    Super! Je vais pouvoir économiser des broches .

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Cadre technique
    Inscrit en
    Août 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre technique
    Secteur : Santé

    Informations forums :
    Inscription : Août 2017
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Bonjour,
    J'ai reçu et testé le deuxième module, tout fonctionne comme espéré
    Merci f-leb

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mesure de température avec thermocouple.
    Par Beginner. dans le forum Arduino
    Réponses: 7
    Dernier message: 16/12/2021, 17h27
  2. Réponses: 9
    Dernier message: 08/10/2011, 05h10
  3. Mesurer la température du processeur ?
    Par xweb-10 dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 30/08/2009, 15h39
  4. Réponses: 0
    Dernier message: 10/06/2009, 14h10
  5. Réponses: 6
    Dernier message: 09/04/2007, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo