La lecture de la température avec un Arduino est une fonction extrêmement utile. C'est le type de fonction qui est essentiel dans de nombreux projets, allant de la construction d'un thermostat à la maison à la création d'une station météorologique. En outre, il est assez simple pour être implémenté en quelques minutes avec n’importe quel Arduino et seulement deux composants simples..
Dans ce didacticiel, je vais vous montrer comment utiliser un Arduino pour lire la température d’un thermistor et l’imprimer sur le port série. Une thermistance est un composant électronique simple qui modifie la résistance en fonction de la température. Ce tutoriel se concentre sur le moyen le plus simple et le moins coûteux de lire la température. En cours de route, vous apprendrez un composant électronique de base simple qui vous permettra d’explorer tout un monde de capteurs avec votre Arduino..
Il existe plusieurs façons de lire la température avec un Arduino. Quelques-uns d'entre eux comprennent:
Ce tutoriel se concentre sur l’utilisation de la méthode de la thermistance pour plusieurs raisons. Premièrement, il réagit rapidement aux changements de température, deuxièmement, il est bon marché et enfin, il est facile à utiliser.
Ce didacticiel permet également d’apprendre deux concepts très importants:
Les capteurs à résistance variable sont conçus pour mesurer toutes sortes de choses, dans le monde physique, et la capacité de les lire avec votre Arduino sera une excellente compétence de base à maîtriser. La rotation, la pression, la déformation, la flexion, la lumière et la chaleur sont des exemples de choses que vous pouvez mesurer à l’aide d’une broche analogique et d’un circuit diviseur de tension..
Pour ce projet, vous aurez besoin
Les broches analogiques Arduino lisent une tension pouvant aller de 0V à 5V. Un moyen standard de transformer un changement de résistance dans une thermistance en un changement de tension lisible par la broche analogique Arduino consiste à créer un circuit diviseur de tension. Le circuit utilise deux résistances dans un circuit de tension connue pour créer une valeur de tension mathématiquement prévisible: Vout.
C'est un circuit très simple, comme indiqué ci-dessous. Lorsque la valeur R1 (résistance 1) change, Vout change. Dans notre tutoriel, R1 sera le thermistor et sa valeur changera en fonction de la température. Vout est connecté à notre port analogique sur l'Arduino afin que nous puissions le surveiller.
Schéma du circuit diviseur de tensionAssez de théorie, passons à la construction de la planche à pain et de l'Arduino.
Configurez votre planche à pain et votre carte Arduino comme illustré ci-dessous. Le diagramme a été réalisé avec Fritzing, un excellent outil pour câbler logiquement des projets avant de saisir des fils et des composants. La composante supérieure grise est la thermistance ou R1 du diagramme ci-dessus. C’est l’une des nombreuses façons de câbler le circuit, je l’ai choisi parce qu’il est conforme à certaines bonnes pratiques de base de la planche à pain..
Structure de planche à pain avec thermistance et circuit diviseur de tensionLa lecture de la broche analogique sur un Arduino est assez simple. Les broches marquées A0 - A5 sur l’Arduino sont des broches spéciales qui, une fois lues avec le analogRead ()
La fonction retournera la valeur de 0 à 1023 où la tension d’entrée est comprise entre 0V et 5V. Lorsque la valeur de R1, la thermistance, change en fonction de la température, la tension dans la broche A0 changera de manière prévisible entre 0V et 5V..
Écrivons du code et transmettons-le à l'Arduino.
void setup () // Cette fonction est appelée au démarrage de l’Arduino Serial.begin (115200); // Ce code configure le port série à une vitesse de 115200 bauds void loop () // Cette fonction est en boucle lorsque l'arduino est alimenté int val; // Créer une variable entière val = analogRead (0); // Lit le port analogique 0 et stocke la valeur dans val Serial.println (val); // Affiche la valeur sur le port série delay (1000); // Attend une seconde avant de recommencer
Pointe: Assurez-vous que le débit en bauds du moniteur série correspond à ce que nous avons défini dans installer()
une fonction. Dans cet exemple: 115200.
La sortie devrait ressembler à ceci:
463
463
463
463
463
463
À moins que votre planche à pain ne soit dans un four très chaud, ces valeurs n'ont aucun sens. En effet, il s’agit simplement d’échantillons de tension traduits en une échelle de 0 à 1023. Nous devons ensuite les convertir en une valeur de température utilisable..
J'ai mentionné plus haut que l’utilisation de la thermistance serait simple, c’est parce que nous pouvons nous tenir sur les épaules de géants. Il existe une équation pour faire la conversion de la valeur échantillonnée en température appelée équation de Steinhart-Hart. (http://en.wikipedia.org/wiki/Thermistor) L'équation de Steinhart-Hart a déjà été traduite pour l'Arduino. Un exemple de ceci peut être trouvé sur playground.arduino.cc dans un article de Milan Malesevic et Zoran Stupic. J'ai illustré leur fonction Thermistance ()
ci-dessous et ajouté des commentaires sur la façon de l'utiliser.
#comprendre// charge les fonctions mathématiques les plus avancées void setup () // Cette fonction est appelée au démarrage de l'Arduino Serial.begin (115200); // Ce code configure le port série à une vitesse de 115200 bauds double Thermister (int RawADC) // Fonction permettant d'effectuer les calculs fantaisistes de l'équation de Steinhart-Hart double Temp; Temp = log (((10240000 / RawADC) - 10000)); Temp = 1 / (0,001129148 + (0,000234125 + (0,0000000876741 * Temp * Temp)) * Temp); Temp = Temp - 273,15; // Conversion de Kelvin en degrés Celsius Temp = (Temp * 9.0) / 5.0 + 32.0; // Celsius à Fahrenheit - commentez cette ligne si vous avez besoin de Celsius return Temp; void loop () // Cette fonction est en boucle lorsque l'arduino est alimenté int val; // Créer une variable entière double temp; // Variable pour conserver une valeur de température val = analogRead (0); // Lit le port analogique 0 et stocke la valeur dans val temp = Thermister (val); // Exécute les calculs fantaisistes sur la valeur analogique brute Serial.println (temp); // Affiche la valeur sur le port série delay (1000); // Attend une seconde avant de recommencer
Maintenant, la sortie devrait ressembler beaucoup plus à ceci:
69.22
69.07
69.22
69.22
70.33
72.07
72.86
73,34
74.13
Maintenant, cela a du sens. Mon atelier est en effet 69 degrés Fahrenheit. Au cours de cet exemple, j'ai touché le haut de la thermistance avec mon doigt et il a détecté l'augmentation de la température, comme vous pouvez le constater..
Essayez d’expérimenter votre configuration pour vous familiariser davantage avec ces nouvelles compétences. Voici quelques suggestions.
analogRead ()
valeurs basées sur les changements d'éclairage (conseil: utilisez le premier segment de code)C'est tout ce qu'on peut en dire. Maintenant, vous pouvez créer n'importe quel type d’invention en utilisant un thermistor très bon marché..
De plus, grâce à ce tutoriel, vous avez appris à:
analogRead ()
analogRead ()
une fonctionProgrammer au début votre Arduino pour lire et comprendre le monde qui l’entoure peut sembler compliqué, mais en réalité, il existe toute une gamme de capteurs simples et peu coûteux qui vous permettront de vous connecter rapidement et facilement au monde réel. Le circuit diviseur de tension et un code simple peuvent donner à votre prochaine création de nouveaux sens puissants.