Cours:ArduinoTemperature : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Utilisation)
(Analyse)
 
(53 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
=Principe de la liaison série=
 
 
fonctions arduino pour la liaison série
 
  
 
=Mesure de température par CTN=
 
=Mesure de température par CTN=
  
 
==Principe==
 
==Principe==
Pour mesurer la température nous allons utiliser une thermistance CTN. Une thermistance est une résistance dont sa valeur dépend de la température.
 
  
Ici on va utiliser une CTN (coefficient de température négative) la résistance diminue quand la température augmente. Une CTP (coefficient de température positive) la résistance augmente quand la température augmente.
+
{{Rouge|La mesure}} d'une {{Rouge|grandeur physique}} (température, pression, vitesse ...) nécessite l'utilisation d'un {{Rouge|capteur}}. Il s'agit d'un {{Rouge|composant}} dont le comportement {{Rouge|varie}} en fonction de la {{Rouge|valeur mesurée}}.
 +
 
 +
 
 +
Parmi les {{Rouge|capteurs de température}}, nous allons nous intéresser aux {{Rouge|thermistances}} :
 +
*le {{Rouge|préfixe}} thermi indique qu'il est sensible à la {{Rouge|température}}
 +
*le {{Rouge|suffixe}} stance indique qu'il s'agit d'une {{Rouge|résistance}}
 +
 
 +
Une thermistance est un capteur dont la valeur de résistance dépend de la température
 +
 
 +
On distingue les thermistances :
 +
*CTN : la valeur de la résistance {{Rouge|diminue}} lorsque la {{Rouge|température augmente}}
 +
*CTP : la valeur de la résistance {{Rouge|augmente}} lorsque la {{Rouge|température augmente}}
  
 
{|class="wikitable"
 
{|class="wikitable"
Ligne 17 : Ligne 24 :
 
|}
 
|}
  
On constate sur la courbe précédente que la valeur de la CTN n'est pas linéaire en fonction de la température.
 
  
==Utilisation==
+
Sur le shield arduino, nous utilisons une {{Rouge|'''<big>CTN</big>'''}}
 +
 
 +
 
 +
On constate sur la courbe précédente que la {{Rouge|valeur}} de la CTN n'est {{Rouge|pas linéaire}} en fonction de la température.
 +
 
 +
la mesure de température ou la compensation dans une grande variété d'applications.
 +
 
 +
 
 +
 
 +
'''Usage : ''' Les thermistances sont utilisées pour
 +
*la mesure de température
 +
*détection de surchauffe
 +
*la compensation en température ( compensation de la variation de la caractéristique de composants lorsque la température change)
 +
 
 +
 
 +
'''Exemple : ''' [https://www.tdk-electronics.tdk.com/download/531136/5608e4b12153bb12af2808fbedc5a55b/pdf-applicationnotes.pdf note d’application]
 +
 
 +
 
 +
==Utilisation : avec un pont diviseur==
 +
 
 +
On place la {{Rouge|CTN}} dans un {{Rouge|pont diviseur}} (cf figure ci dessous).
 +
 
 +
Lorsque la {{Rouge|température change}} :
 +
*la {{Rouge|valeur}} (résistance) de la {{Rouge|CTN}} change
 +
*donc la tension {{Rouge|Vθ change}}
 +
*la {{Rouge|mesure cette tension}} permet d'en {{Rouge|déduire}} la valeur de la {{Rouge|température}}.
 +
 
 +
{|
 +
|-
 +
| [[File:diviseurCTN.png|150px]] ||
 +
*R1 résistance fixe
 +
*Rθ résistance variable en fonction de la température
 +
*Vθ tension image de la température
 +
*Vcc tension d’alimentation du montage
 +
*gnd tension de référence (masse 0V)
 +
|}
 +
 
 +
 
 +
==Analyse==
 +
 
 +
{{Rouge|'''Travail de groupe''' avec 1 étudiant à tour de rôle au tableau sur chaque point}}
 +
 
 +
 
 +
 
 +
Nous allons exprimer les différentes relations et compléter progressivement une feuille de calcul sur un tableur.
 +
 
 +
*'''Créer''' une feuille de calcul ( par ex : https://docs.google.com/spreadsheets/create?hl=fr )
 +
**mettre une colonne température exprimée en °C (de -30° à 100°C par ex)
 +
**ajouter une 2nde colonne en y calculant la température exprimée en K
 +
*on peut alors '''calculer''' la valeur de Rθ en fonction de la température dans une 3ème colonne
 +
** [[Fichier:EquationRteta.png|200px]]
 +
**R<sub>25°C</sub> = 8200Ω, β = 3480 K, T<sub>25°C</sub> = 273+25 , avec θ en K
 +
**on vérifiera que la résistance à 25°C est bien 8200Ω (valeur de R<sub>25°C</sub> )
 +
**le tracé de la courbe (Rθ en fonction de θ ) permet de vérifier qu'il s'agit bien d'une CTN
 +
 
 +
*'''ajout''' de Vθ
 +
**exprimer la valeur de Vθ en fonction de Rθ
 +
**on trouvera la valeur de R1 sur le schéma de la carte
 +
**ajouter une colonne avec Vθ sur votre feuille de calcul
 +
 
 +
*'''mesure''' de Vθ à l'aide du CAN
 +
**[[Fichier:symbolCAN.png|300px]]<br>https://fr.wikipedia.org/wiki/Convertisseur_analogique-num%C3%A9rique
 +
**un CAN convertit '''linéairement''' une tension (pour nous entre 0 et 5V ) en un nombre ( pour nous entre 0 et 1023)
 +
**on repère les broches utilisables pour le CAN sur les cartes arduino par le préfixe A : A0|A1|A2 ...
 +
**ajouter la colonne donnant la valeur du CAN en fonction de Vθ
 +
**de façon général N=V<sub>θ</sub>/q avec q=Vref/(2<sup>n</sup>-1) le quantum et n la résolution du CAN (8 ou 10 bits)
 +
 
 +
=Programmation=
 +
[[Fichier:SchemaShieldNano.png|droite|400px]]
 +
 
 +
Nous avons exploré dans les Tps précédents les e/s binaires. Ici nous nous intéresserons aux entrées analogiques et utiliserons la fonction [http://arduino.cc/en/Reference/AnalogRead analogRead()] permettant de lire l'état d'une des entrées analogiques.
 +
 
 +
[http://arduino.cc/en/Reference/Serial Vous utiliserez la liaison série] afin de vérifier le bon fonctionnement de votre programme
 +
 
 +
 
 +
==afficher la valeur du can sur liaison série==
 +
 
 +
L'exemple suivant permet de lire la valeur du {{CAN}} (CAN) sur la broche A2.
 +
 
 +
<source lang=cpp>
 +
// the setup routine runs once when you press reset:
 +
void setup()
 +
{
 +
  // initialize serial communication at 9600 bits per second:
 +
  Serial.begin(9600);
 +
}
 +
// the loop routine runs over and over again forever:
 +
void loop()
 +
{
 +
  // read the input on analog pin 2:
 +
  int sensorValue = analogRead(A2);
 +
  // print out the value you read:
 +
  Serial.println(sensorValue);
 +
}
 +
</source>
 +
 
 +
{{Question|Modifier le programme pour afficher la valeur sur la broche qui nous intéresse !}}
  
Les thermistances sont utilisées pour la mesure de température ou la compensation dans une grande variété d'applications.
+
'''Remarque :'''
 +
*ça peut être intéressant de ralentir un peu tout ça !
 +
*ajouter un peu de texte, [https://www.arduino.cc/reference/en/language/functions/communication/serial/print/ cf Serial.print()] (ou Serial.println() pour un retour à la ligne après le message)
  
'''Exemple :'''
+
==Remontons à la température==
  
Contrôle de la température dans les appareils de communication mobile :
+
On reprend alors les calculs en inversant les équations et en affichant les valeurs succseives sur la liaison série :
 +
*calculer et afficher Vθ sur la liaison série
 +
*on peut ensuite calculer la valeur de Rθ
 +
*puis la valeur de la température en K
 +
*et enfin la valeur de la température en °C
  
L'utilisation d'appareils de communication mobiles dans une large plage de températures nécessite le contrôle des éléments sensibles à la température du système. Ceci comprend l'oscillateur à cristal, l'écran LCD, l'amplificateur de puissance et la batterie. Les thermistances remplissent différentes tâches, par ex. compensation de température ou détection de température dans un circuit de protection contre la surchauffe. ([https://www.tdk-electronics.tdk.com/download/531136/5608e4b12153bb12af2808fbedc5a55b/pdf-applicationnotes.pdf note d’application])
+
=plage de température=
  
==Pont diviseur==
+
on souhaite avoir une indication visuelle de la température à l'aide des 2 leds :
 +
*si T<0°C, on allume la led de gauche
 +
*si 0°C<T<10°C on allume la led de droite
 +
*si T>10°C on allume les 2 leds

Version actuelle datée du 3 juillet 2024 à 15:22

Mesure de température par CTN

Principe

La mesure d'une grandeur physique (température, pression, vitesse ...) nécessite l'utilisation d'un capteur. Il s'agit d'un composant dont le comportement varie en fonction de la valeur mesurée.


Parmi les capteurs de température, nous allons nous intéresser aux thermistances :

  • le préfixe thermi indique qu'il est sensible à la température
  • le suffixe stance indique qu'il s'agit d'une résistance
Une thermistance est un capteur dont la valeur de résistance dépend de la température

On distingue les thermistances :

  • CTN : la valeur de la résistance diminue lorsque la température augmente
  • CTP : la valeur de la résistance augmente lorsque la température augmente
Symbole du composant Valeur de la résistance en fct de la température pour une CTN
SymbolesCTNCTP.png CaracteristiqueCTN.png


Sur le shield arduino, nous utilisons une CTN


On constate sur la courbe précédente que la valeur de la CTN n'est pas linéaire en fonction de la température.

la mesure de température ou la compensation dans une grande variété d'applications.


Usage : Les thermistances sont utilisées pour

  • la mesure de température
  • détection de surchauffe
  • la compensation en température ( compensation de la variation de la caractéristique de composants lorsque la température change)


Exemple : note d’application


Utilisation : avec un pont diviseur

On place la CTN dans un pont diviseur (cf figure ci dessous).

Lorsque la température change :

  • la valeur (résistance) de la CTN change
  • donc la tension Vθ change
  • la mesure cette tension permet d'en déduire la valeur de la température.
DiviseurCTN.png
  • R1 résistance fixe
  • Rθ résistance variable en fonction de la température
  • Vθ tension image de la température
  • Vcc tension d’alimentation du montage
  • gnd tension de référence (masse 0V)


Analyse

Travail de groupe avec 1 étudiant à tour de rôle au tableau sur chaque point


Nous allons exprimer les différentes relations et compléter progressivement une feuille de calcul sur un tableur.

  • Créer une feuille de calcul ( par ex : https://docs.google.com/spreadsheets/create?hl=fr )
    • mettre une colonne température exprimée en °C (de -30° à 100°C par ex)
    • ajouter une 2nde colonne en y calculant la température exprimée en K
  • on peut alors calculer la valeur de Rθ en fonction de la température dans une 3ème colonne
    • EquationRteta.png
    • R25°C = 8200Ω, β = 3480 K, T25°C = 273+25 , avec θ en K
    • on vérifiera que la résistance à 25°C est bien 8200Ω (valeur de R25°C )
    • le tracé de la courbe (Rθ en fonction de θ ) permet de vérifier qu'il s'agit bien d'une CTN
  • ajout de Vθ
    • exprimer la valeur de Vθ en fonction de Rθ
    • on trouvera la valeur de R1 sur le schéma de la carte
    • ajouter une colonne avec Vθ sur votre feuille de calcul
  • mesure de Vθ à l'aide du CAN
    • SymbolCAN.png
      https://fr.wikipedia.org/wiki/Convertisseur_analogique-num%C3%A9rique
    • un CAN convertit linéairement une tension (pour nous entre 0 et 5V ) en un nombre ( pour nous entre 0 et 1023)
    • on repère les broches utilisables pour le CAN sur les cartes arduino par le préfixe A : A0|A1|A2 ...
    • ajouter la colonne donnant la valeur du CAN en fonction de Vθ
    • de façon général N=Vθ/q avec q=Vref/(2n-1) le quantum et n la résolution du CAN (8 ou 10 bits)

Programmation

SchemaShieldNano.png

Nous avons exploré dans les Tps précédents les e/s binaires. Ici nous nous intéresserons aux entrées analogiques et utiliserons la fonction analogRead() permettant de lire l'état d'une des entrées analogiques.

Vous utiliserez la liaison série afin de vérifier le bon fonctionnement de votre programme


afficher la valeur du can sur liaison série

L'exemple suivant permet de lire la valeur du Convertisseur Analogique Numérique (CAN) sur la broche A2.

// the setup routine runs once when you press reset:
void setup()
{
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop()
{
  // read the input on analog pin 2:
  int sensorValue = analogRead(A2);
  // print out the value you read:
  Serial.println(sensorValue);
}

Question.jpg Modifier le programme pour afficher la valeur sur la broche qui nous intéresse !

Remarque :

  • ça peut être intéressant de ralentir un peu tout ça !
  • ajouter un peu de texte, cf Serial.print() (ou Serial.println() pour un retour à la ligne après le message)

Remontons à la température

On reprend alors les calculs en inversant les équations et en affichant les valeurs succseives sur la liaison série :

  • calculer et afficher Vθ sur la liaison série
  • on peut ensuite calculer la valeur de Rθ
  • puis la valeur de la température en K
  • et enfin la valeur de la température en °C

plage de température

on souhaite avoir une indication visuelle de la température à l'aide des 2 leds :

  • si T<0°C, on allume la led de gauche
  • si 0°C<T<10°C on allume la led de droite
  • si T>10°C on allume les 2 leds