Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Arduino] Capteur de température numérique

    8 janvier 2015 à 14:02:58

    Bonjour à tous !

    Avant tout je tiens à dire que je parle bien de capteur numérique et non de capteur analogique, ce dernier étant très largement expliquer sur internet mais ne correspondant pas à nos besoins ;)

    Voilà, je vous explique : dans mon tpe de première nous avons réalisé un drone plutôt orienté pour la science (à la curiosity si vous préférez). Nous nous en sortons très bien mais un problème ce pose pour la réalisation du capteur de température :

    Nous manquons de temps pour apprendre, si ce n'est les bases, du languages arduino, et il nous manque encore beaucoup de connaissances pour envisager de réaliser nous même ce montage.

    - Nous envisageons à ce jour d'utiliser un capteur analogique, pour sa simplicité à être conçus mais aussi par qu'il a un un gros paquet de tuto sur le web traitant ce sujet.

    ---> Sauf que dans notre cas, il ne correspond pas du tout à nos besoins, il est beaucoup trop lent ! C'est pour sa que je préférerais opter pour un capteur numérique :).

    Évidement je n'ai, à ce jour, pas encore trouvé, et je crains de ne jamais pouvoir le faire, de tutoriel, même anglais, pour expliquer précisément le montage à réaliser..  

    Je me suis bien sur quand même renseigné : Nous envisageons le capteur LM 75 et un afficheur 16x2 ou quelques choses dans le style.

    Aussi, il y a exactement le montage que nous souhaitons faire sur youtube, sans lien vers un quelconque tutoriel malheureusement :

    https://www.youtube.com/watch?v=VKLFs6K4fP0

    Pourquoi est ce que je poste ce message aujourd'hui sur le forum ?

    Eh bien déjà parce que ce n'est pas la première fois que je le fais et la communauté ma toujours aidé très gentillement !

    Mais surtout j’espérai que quelqu'un maîtrisant bien le sujet pourrait nous filer un coup de main pour la réalisation de ce petit système.

    J'aimerais éviter de devoir me rabattre sur le capteur analogique parce que ça ne collerais pas du tout avec nos besoins, le drone étant trop rapide, la température resterait quasiment la même durant l’essaie.

    Voilà, je pense avoir tout dis, j'espère que vous m'aiderez :)

    Bonne journée à tous

    • Partager sur Facebook
    • Partager sur Twitter
      8 janvier 2015 à 19:52:20

      J'ai bien envie de te poser une question : "en quoi le LM75 serait plus rapide qu'une capteur analogique" ?

      Cependant, ce n'est pas ce que tu attends comme réponse donc je ne m'attarderais pas là dessus.


      Allez, histoire de bien commencer, un petit lien vers la datasheet : http://datasheets.maximintegrated.com/en/ds/LM75.pdf

      On y voit clairement que c'est un capteur I2C, donc on va brancher ça comme un capteur I2C :)

      Let's go :

      - pin 1 : SDA => à brancher sur le SDA de l'arduino (pin A4) ET sur une résistance 2.2k dont l'autre extrémité est connectée à 5V

      - pin 2 : SCL => à brancher sur le SCL de l'arduino (pin A5) ET sur une (autre) résistance 2.2k dont l'autre extrémité est (aussi) connectée à 5V

      - pin 3 : OS => j'ai bien envie de dire OS, c'est comme OSEF, On S'En Fou (elle n'est pas utile pour toi donc laisses là dans le vide)

      - pin 4 : GND => je te laisse deviner où la brancher

      - pin 5 : V+ => à brancher sur le 5V

      - pin 6,7,8 : A0,A1,A2 => à brancher sur GND (le capteur aura donc son adresse par défaut : 0x48)

      Maintenant que cela est fait, on pourrait s'amuser à lire toutes la doc pour voir le protocole de communication mais c'est chiant à faire.

      Le mieux serait de trouver une petite lib pour ne pas avoir à développer toutes ces couches bas niveau.

      Cela tombe bien, il en existe une : https://github.com/thefekete/LM75

      Il ne reste donc plus qu'à tester :

      #include <Wire.h>
      #include <LM75.h>
      
      LM75 sensor;
      
      void setup()
      {
          Wire.begin();
          Serial.begin(9600);
      }
      
      void loop()
      {
          Serial.print("Current temp: ");
          Serial.print(sensor.temp());
          Serial.println(" C");
          delay(1000);
      
      }



      -
      Edité par lorrio 8 janvier 2015 à 19:54:33

      • Partager sur Facebook
      • Partager sur Twitter
        8 janvier 2015 à 19:58:27

        Génial c'est super cool de ta part ! Je ne peux malheureusement pas encore tester puisque j'attendais une réponse avant de commander les composants mais je vais le faire dés que possible! 

        Oui je ne sais pas si il est plus rapide ou non mais j'ai tester avec les analogiques et pour esperer un changement j'ai utilisé un sèche cheuveux... donc j'espère un peu mieux des numérique mais peut être que ce n'est que le traitement qui diffère.

        Je te souhaite une bonne soirée et à très bientot je te tiens au courant, merci encore !

        EDIT : Le code est il fonctionnel ? Est ce que avec ce dernier je pourrais envisagé d'afficher la température sur un écran ? Si non comment le faire ? (désolé cela parait surement idiot mais j'ai clairement manqué de temps pour me plonger dans le tuto arduino :/)

        -
        Edité par Sdepter 8 janvier 2015 à 19:59:57

        • Partager sur Facebook
        • Partager sur Twitter
          8 janvier 2015 à 21:25:51

          Le code est-il fonctionnel ?

          Je n'en sais strictement rien puisque je n'ai jamais eu d'arduino de ma vie.

          Tout ce que je peux te dire, c'est que si leur lib marche, mon code devrait marché (j'ai quand même les bases de arduino).

          En ce qui me concerne, j'utilise principalement des DsPIC et/ou des processeurs ARM.

          J'ai d'ailleurs déjà utilisé un LM75 sur un PIC en me tapant le protocole de communication à la main.

          Cela marche pas trop mal mais ce n'est pas ultra précis non plus...

          C'est un capteur qui te retourne une valeur qui change de 0.5 en 0.5 alors n'espère pas afficher 21.3°C


          Si tu connectes un écran à l'arduino et que tu as une lib pour piloter l'écran, c'est possible.

          Pour le moment le code que j'ai posté envoie la température par Serial toutes les secondes.

          Tu devrais donc voir la température s''afficher dans la console de ton IDE.

          • Partager sur Facebook
          • Partager sur Twitter
            8 janvier 2015 à 22:33:51

            Ah oui ok moi je pourrais pas te dire je suis que en 1er sciences de l'ingé mais je n'avais jamais entendu parler de arduino avant cette année, on m'a dit que c'était ce qu'il y avait de plus pratique sur le marché.. je pourrais difficilement t'en dire plus vu mon niveau

            Je ne recherche pas une grande précision, au degrés près me convient parfaitement c'était vraiment au niveau de la vitesse d'actualisation de la température. Tu me disais tout à l'heure que c'était pareil entre analog et numérique, est ce vraiment cela ? Est ce que ça vaut la peine de prendre le numerique plutot que le analog à ton avis ?

            EDIT : Quand je dis pareil je parle de la vitesse d'actualisation


            Si le numérique vaut quand meme le détoure j'essaierais de completer ton code pour afficher sur un écran 16x2

            -
            Edité par Sdepter 8 janvier 2015 à 22:36:26

            • Partager sur Facebook
            • Partager sur Twitter
              8 janvier 2015 à 23:20:12

              Arduino, c'est bien pour les débutant mais ce n'est pas vraiment un produit professionnel ;)


              Je n'ai pas dis que analogique et numérique avait la même vitesse, j'ai juste posé une question.

              Cependant, la température est une valeur analogique.

              Le LM75 contient donc tout simplement un capteur analogique et un convertisseur numérique intégré.

              Ce sera d'ailleurs le cas pour tous les autres autres capteurs numérique.

              Dans la doc, il est dit que le temps de conversion est de 100ms typique, 300ms maxi.

              Sauf que le capteur en lui même a aussi une inertie thermique à cause de son boitier.

              Par exemple, si tu le places dans un congélateur, il ne va pas tout de suite afficher -20°C.

              Cela prendra probablement plusieurs secondes voir plusieurs minutes avant que le contact avec l'air froid ne refroidisse le boitier et donc que le capteur affiche -20°C.

              • Partager sur Facebook
              • Partager sur Twitter
                9 janvier 2015 à 13:44:47

                D'accord c'est exactement ce que je voulais savoir ;) Je vais en parler avec ceux avec qui je fais le tpe, peut être auront-ils une préférence pour le analogique au final mais je garderais quand même en tête le LM75

                Merci à toi pour ton aide ;) ,

                je vous tiendrais au courant

                • Partager sur Facebook
                • Partager sur Twitter
                  15 janvier 2015 à 20:29:44

                  As tu regardé les DS18B20 ? Plutôt précis , relativement rapide ...
                  • Partager sur Facebook
                  • Partager sur Twitter

                  [Arduino] Capteur de température numérique

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown