”Etalonnage d’une thermistance CTN”
![](https://www.ardpylab.fr/wp-content/uploads/2020/05/projetpython5-2.jpg)
. Objectif
L’objectif de cette activité est d’étalonner une thermistance dont les grandeurs caractéristiques ne sont pas connues, à l’aide d’un capteur de température TMP 36 ou LM 35.
Pour cela, nous allons faire varier la température et on va demander à l’Arduino de mesurer la résistance de la thermistance en fonction de la température qui sera mesurée en parallèle par le capteur.
On pourra alors tracer la caractéristique résistance = f(température) qui permettra après de mesurer n’importe quelle température avec cette thermistance grâce à la mesure de sa résistance.
. Le programme
Voici le code de l’activité en Python et en langage Arduino.
. Programme en Python (”Projet5\Activity4\PY\Activity4.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.
– Déclaration des constantes et variables :
. PinTMP = 0 (cst correspondant au n° de la broche A0 sur laquelle le capteur de température TMP 36 est connecté)
. PinCTN = 5 (cst correspondant au n° de la broche A5 sur laquelle la thermistance est connectée)
. ValTMP = 0 (variable pour stocker la valeur de la broche du capteur de température)
. ValCTN = 0 (variable pour stocker la valeur de la broche de la thermistance)
. TempTMP = 0 (variable correspondant à la température en °C calculée à partir de la valeur de la broche du capteur de température)
. OldTempTMP = 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)
. Rctn = 0 (variable correspondant à la valeur de la résistance calculée en Ohms 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 du capteur de température en entrée analogique :
Set_AnalogInput_Pin(board, PinTMP)
– 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)
– Boucle principale du programme (boucle ”while True”) :
![](https://www.ardpylab.fr/wp-content/uploads/2020/05/projet5-activity4-2.png)
Résultats dans la fenêtre Python Shell :
![](https://www.ardpylab.fr/wp-content/uploads/2020/05/projet5-activity4-3.png)
. Programme en langage Arduino (”Projet5\Activity4\INO\Activity4.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é 4”
. Exploitation des mesures
L’exploitation des mesures a également déjà été étudiée dans la partie:
”Activités pour les lycées / Températures / Activité 4 / Exploitation des mesures”