Cours:ArduinoTemperature : Différence entre versions
(→Principe) |
(→Analyse) |
||
(22 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 30 : | Ligne 30 : | ||
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. | 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}}. | ||
{| | {| | ||
Ligne 60 : | Ligne 63 : | ||
− | === | + | ==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. | |
− | [[Fichier:EquationRteta.png| | + | *'''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 | |
− | [[Fichier: | + | **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= | =Programmation= | ||
Ligne 173 : | Ligne 127 : | ||
*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) | *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) | ||
− | == | + | ==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 |
Version actuelle datée du 3 juillet 2024 à 14:22
Sommaire
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 |
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.
|
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
- 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
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
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);
}
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