”Mesure de températures avec une
thermistance CTN ”
![](https://www.ardpylab.fr/wp-content/uploads/2020/05/projetpython5-2.jpg)
. Objectif
L’objectif de l’activité est d’écrire un programme généraliste permettant de mesurer une température avec une thermistance CTN dont les grandeurs caractéristiques sont connues.
. Rappel
Pour mesurer une température avec une thermistance CTN, il faut connaitre ses grandeurs caractéristiques. Le plus souvent, le constructeur fourni les valeurs suivantes :
– La valeur de sa résistance R0 (résistance nominale en Ω) à la température de référence T0 = 25 °C (298,15 K)
– La valeur de β (en K)
– La plage de température pour laquelle la relation entre la température T (en K) et RT, la résistance (en ohms) de la CTN à cette température, est vérifiée :
![](https://www.ardpylab.fr/wp-content/uploads/2020/03/image-118.png)
. Le programme
Le code de l’activité en Python ou en langage Arduino demande, à l’initialisation du programme, de renseigner les valeurs de T0, R0 et β afin de pouvoir calculer la température à partir de la mesure de la résistance de la CTN.
. Programme en Python (”Projet5\Activity5\PY\Activity5.py”)
Déroulement du programme :
– Importation des librairies et définition de fonctions :
. Le module ”ConnectToArduino.py”, contenant les fonctions de connexion à l’Arduino via le protocole ”Firmata Express”,
. Le module ”PymataExpressDef.Py” regroupant toutes les fonctions utiles à l’utilisation de ”Pymata-express” (fonction de déclaration des entrées et sorties, de lectures, d’écritures…),
. La bibliothèque ”time” pour la gestion des temps de pause,
. La bibliothèque ”math” pour les calculs de température,
. La fonction ”InputVal” pour saisir les grandeurs caractéristiques de la thermistance.
– Déclaration des constantes et variables :
. PinCTN = 5 (cst correspondant au n° de la broche A5 sur laquelle la thermistance est connectée)
. ValCTN = 0 (variable pour stocker la valeur de la broche de la thermistance)
. Temp = 0 (variable correspondant à la température en °C calculée à partir de la valeur de la broche de la thermistance)
. OldTemp = 0 (variable correspondant à la température en °C calculée précédemment)
. Vctn = 0 (variable correspondant à la tension calculée en V de la broche de la thermistance)
. Rt = 0 (variable correspondant à la valeur de la résistance calculée en Ohms de la thermistance)
. TempRef = 0 (variable correspondant à la température de référence de la thermistance)
. Ro = 0 (variable correspondant à la résistance de la thermistance à la température de référence)
. B = 0 (variable correspondant à la grandeur caractéristique β de la thermistance). PinButton = 12 (cst correspondant au n° de la broche sur laquelle le bouton poussoir est connecté)
. ValButton = 0 (variable pour stocker la valeur de l’état logique de la broche du bouton poussoir)
. OldValButton = 0 (variable pour stocker la valeur précédente de l’état logique de la broche du bouton poussoir)
. State=0 (variable correspondant à l’action à effectuer)
. OldState = 0 (variable pour stocker la valeur précédente de la variable state)
. PortComArduino (port COM sur lequel l’Arduino est connecté)
– Connexion à l’Arduino :
. Détection du port COM, tentative d’ouverture du port COM sélectionné et connexion à l’Arduino:
PortComArduino = SelectPortCOM()
board = OpenPortCom(PortComArduino)
. Si la connexion à l’Arduino est réussie :
– Déclaration de la broche de la thermistance en entrée analogique :
Set_AnalogInput_Pin(board, PinCTN)
– Déclaration de la broche du bouton poussoir en entrée numérique :
Set_DigitalInput_Pin(board, PinButton)
– Saisie des grandeurs caractéristiques de la thermistance :
TempRef = InputVal(”Veuillez saisir la température de référence ”,1,100,”°C”)
Ro = InputVal(”Veuillez saisir la valeur de la résistance nominale ”,1,200000,”Ohms”)
B = InputVal(”Veuillez saisir la constante B ”,1,10000,”K”)
– Boucle principale du programme (boucle ”while True”) :
![](https://www.ardpylab.fr/wp-content/uploads/2020/05/projet5-activity5-2.png)
Résultats dans la fenêtre Python Shell :
![](https://www.ardpylab.fr/wp-content/uploads/2020/05/projet5-activity5-3.png)
. Programme en langage Arduino (”Projet5\Activity5\INO\Activity5.ino”)
Le code de l’activité en langage Arduino a déjà été étudié dans la partie:
”Activités pour les lycées / Températures / Activité 5”