Différences entre versions de « P2E-TMP36-FR »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
(Page créée avec « {{P2E-NAV}} == Introduction == La xxx 320px === Capteur de température du Pico-2-Explorer === Le Pico-2-Explorer propose le TMP36 xxxxxx d… »)
 
 
(26 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :
  
 
== Introduction ==
 
== Introduction ==
La xxx
 
  
[[Fichier:P2E-TMP36-00.png|320px]]
+
Les capteurs de températures existent sous de très nombreuses formes. Certains sont prévu pour une utilisateur en milieu alimentaire, d'autres pour le milieu industriel et enfin quelques autres pour un usage générale. Les plages de températures dépendent aussi du modèle et du type d'application.
  
=== Capteur de température du Pico-2-Explorer ===
+
Les capteurs de températures les plus facile à utiliser sont analogiques car la tension de sortie est proportionnelle à la température et être lue directement avec une entrée analogique.
Le Pico-2-Explorer propose le TMP36 xxxxxx dans sa section analogique.
+
 
 +
L'image ci-dessous présente un TMP36 et ainsi que son brochage.
 +
 
 +
[[Fichier:TMP36-pinout.jpg|320px]]
 +
 
 +
* La '''masse''' (à droite),
 +
* La '''sortie''' analogique (au center),
 +
* L' '''alimentation''' (2.7 à 5.5V, à gauche).
 +
 
 +
Le TMP36 permet de mesurer une température entre -50°C et 125°C. La tension de sortie varie de 10 millivolts par degrés pour le TMP36 et commence à 500mV pour 0°C.
 +
 
 +
{{tmbox | text = Comme de nombreux capteurs analogiques, le TMP36 est très sensible au bruit présent sur son alimentation. Ce bruit, s'il y en a, se retrouvera sur la sortie analogique et se traduira par une température fluctuante. }}
 +
 
 +
Le graphique ci-dessous explicite la relation entre la température et la tension de sortie du TMP36 (courbe B pour 3.3V).
 +
 
 +
[[Fichier:TMP36-Graph.png]]
 +
 
 +
La formule :
 +
 
 +
Temp in °C = ( output_voltage_in_mV - 500) / 10
  
[[Fichier:P2E-TMP36-10.png]]
+
Donc, pour une tension de exactement 1 volt (1000 mV) nous devrions calculer la température suivante:
  
 +
temp = (1000 - 500)/10 = 50 °C.
  
Si xxxxxxxxxxxxxxxxxx la photo-résistance .
+
=== Capteur de température du Pico-2-Explorer ===
 +
Le Pico-2-Explorer propose le capteur de température TMP36 dans sa section analogique.
  
[[Fichier:P2E-TMP36-10.jpg]]
+
[[Fichier:P2E-TMP36-10.png]]
  
 
== Cas pratique ==
 
== Cas pratique ==
  
L'exemple ci-dessous se propose de relever la valeur du convertisseur analogique et de calculer la température en °C.
+
L'exemple ci-dessous se propose de relever la valeur de la tension du TMP36 sur du convertisseur analogique et de calculer la température en °C.
 
 
  
 
=== Branchement simplifié ===
 
=== Branchement simplifié ===
Ligne 25 : Ligne 44 :
 
Dans cet exemple, nous allons brancher la photo-résistance (notée LDR) sur l'entrée analogique A1 (GP27) pour lire la valeur sur le convertisseur analogique.
 
Dans cet exemple, nous allons brancher la photo-résistance (notée LDR) sur l'entrée analogique A1 (GP27) pour lire la valeur sur le convertisseur analogique.
  
La LED rouge est branchée sur la broche GP20, tandis que la LED verte est branchée sur GP21. Des broches configurées en sortie
+
La LED rouge est branchée sur la broche GP20, tandis que la LED verte est branchée sur GP21. Ces broches sont configurées en sortie.
 +
 
 +
* La LED verte s'allume dès que la température atteint ou dépasse 19°C mais reste inférieure à 25°C
 +
* La LED rouge s'allume dès que la température atteint ou dépasse 25°C (cas où la LED verte doit s'éteindre). C'est un bon indicateur signifiant qu'il faut aérer la pièce pour la rafraîchir.
  
 
[[Fichier:P2E-TMP36-20.png|800px]]
 
[[Fichier:P2E-TMP36-20.png|800px]]
Ligne 36 : Ligne 58 :
 
Le code ci-dessous peut être saisi dans une session REPL ou dans Thonny IDE.
 
Le code ci-dessous peut être saisi dans une session REPL ou dans Thonny IDE.
  
Cet exemple est également disponible dans le dépôt [https://github.com/mchobby/pico-2-explorer/tree/main/ldr analog-ldr.py] .
+
Cet exemple est également disponible dans le dépôt [https://github.com/mchobby/pico-2-explorer/tree/main/analog-tmp36 analog-tmp36.py] .
  
<syntaxhighlight lang="python" line highlight="4,7,9,10,13,19,21">
+
<syntaxhighlight lang="python" line highlight="5,10,11,19,20,23,24">
xxx
+
from machine import Pin, ADC
</syntaxhighlight>
+
import time
  
Il ne reste plus qu'à placer un objet (ex: votre main) entre la source de lumière et la photo-résistance pour constater l'impact sur le convertisseur analogique (dans la sessions REPL).  
+
# Désactive PowerSafe (lower ripple)
 +
Pin( 23, Pin.OUT, value=True )
 +
a1 = ADC( Pin( Pin.board.GP27 ) )
 +
red = Pin( Pin.board.GP20, Pin.OUT )
 +
green = Pin( Pin.board.GP21, Pin.OUT )
  
[[Fichier:P2E-LDR-25.png]]
+
def calc_temp( millivolts ):
 +
    return (millivolts-500)/10
  
Voici quelques explications concernant le script:
+
while True:
* '''Ligne 4''': xxx.
+
    val = 0
 +
    for i in range( 10 ):
 +
        val += a1.read_u16()
 +
    val = val/10
  
Il est également possible de visualiser ces informations sous forme de graphique.
+
    mv = 3300*val/65535
 +
    temp = calc_temp( mv )
 +
    print( 'adc=%5i , mv=%5i, temp=%2.2f °C' % (val, mv, temp) )
 +
   
 +
    green.value( 19<=temp<25 )
 +
    red.value( temp>= 25 )
 +
           
 +
    time.sleep_ms( 300 )
 +
</syntaxhighlight>
  
=== Un problème? ===
+
Il ne reste plus qu'a tester la capteur. Il est possible d'augmenter la température en pinçant le capteur entre ses deux doigts. Le mouiller avec un peu d'alcool (isopropylique ou désinfectant) abaissera sa température tandis que l'alcool s'évaporera en emportant des calories.
  
{{traduction}}
+
Le script affiche quelques informations utiles durant son fonctionnement:
 +
* '''adc''': valeur obtenue sur le convertisseur ADC (entre 0 et 65535).
 +
* '''mv''': tension équivalente exprimée en millivolts.
 +
* '''temp''' : la température en degrés Celcius.
  
Pas de changement de valeur pour "adc=" ? (''elle devrait varier entre 25000 et 55000'')
+
[[Fichier:P2E-TMP36-25.png]]
# vérifier le raccordement entre GP27 et LDR
 
# Vérifier la déclaration de la broche a1 dans le script
 
# La photo-résistance est elle suffisamment masquée?
 
  
La valeur change subitement lorsque je pose le doigt sur la photo-résistance?
+
Voici quelques explications concernant le script:
* La peau humaine présente également une résistance. Celle-ci perturbe la résistance de la photo-résistance si celle-ci expose des contacts métalliques.
+
* '''Ligne 5''': Désactive le mode d'économie d'énergie du régulateur (pour diminuer le bruit d'alimentation).
 +
* '''Lignes 7 et 8''': déclaration des variables ''red'' et ''green'' correspondant respectivement au LEDs rouges et vertes.
 +
* '''Lignes 10 et 11''': définition de la {{fname|clac_temp()}} qui converti une tension (en milliVolts) en température en suivant la formule décrite plus haut.
 +
* '''Ligne 13''': boucle infinie (se répète sans fin).
 +
* '''Lignes 14 à 17''': acquisition sur le convertisseur analogique/numérique (broche GP27) en calculant la moyenne de 10 acquisitions.
 +
* '''Lignes 19 à 20''': conversion de la valeur ADC en tension analogiques (en millivolts) puis conversion en température par l'appel de la fonction {{fname|calc_temp()}}
 +
* '''Ligne 23''': Allumer la LED verte si la température est comprise entre 19 et 25 °C (25° exclus mais 19°C inclus).
 +
* '''Ligne 24''': La LED rouge est allumée lorsque la température atteint et dépasse 25°C
 +
Il est également possible de visualiser ces informations sous forme de graphique.
  
La LED ne s'allume jamais!
+
== Un problème? ==
# vérifier le branchement de la LED.
 
# vérifier que la valeur ADC tombe bien en dessous de 32000 lorsque la photo-résistance est masquée. Au besoin, augmenter la valeur de TURN_ON.
 
  
La LED ne s'éteint jamais!
+
Pas de changement de valeur pour "adc=" ?
* verifier si la valeur ADC passe au dessus de 32000 lorsque la photo-résistance est en pleine lumière. Au besoin abaisser la valeur de TURN_ON.
+
# vérifier le raccordement entre GP27 et le capteur de température
 +
# Vérifier la déclaration de la broche a1 dans le script
  
 
== Le défi ==
 
== Le défi ==
  
{{traduction}}
+
Utiliser le potentiomètre GP26 (entrée analogique a0) et l'utiliser pour fixer la température supérieure {{fname|tmax}} (celle correspondant à la température de 25°C dans le script).
  
Remplacer la valeur TURN_ON par celle obtenue par le potentiomètre branché sur A0 (GP26).
+
La température inférieures {{fname|tmin}} est calculée avec tmin=tmax-6 .
  
Le potentiomètre sert alors de consigne, un fonctionnement similaire à une lampe automatique pour jardin.
+
Le potentiomètre sert donc de consigne.
  
 
== Encore plus ==
 
== Encore plus ==
  
{{traduction}}
+
=== Brancher un TMP36 ===
 
+
Voici comment brancher un capteur de température TMP36, sans oublier d'apporter la masse et la tension d'alimentation nécessaire. Le circuit est accompagné de deux condensateurs destiné à lisser et filtrer la tension d 'alimentation.
=== Brancher une photo-résistance ===
 
Voici comment brancher une photo-résistance en créant le pont diviseur de tension, sans oublier d'apporter la masse et la tension d'alimentation nécessaire.
 
  
Pour sa part, la LED doit être équipée d'une résistance afin de limiter le courant.
+
Pour sa part, les LEDs sont équipée d'une résistance afin de limiter le courant.
  
[[Fichier:P2E-LDR-wiring-2.png|800px]]
+
[[Fichier:P2E-TMP36-wiring-2.png|800px]]
  
 
=== Autres tutoriels ===
 
=== Autres tutoriels ===
Ligne 95 : Ligne 138 :
  
 
{{ttuto
 
{{ttuto
   |label=Temperature
+
   |label=Photo-résistance
   |descr=Mesurer la température à l'aide du TMP-36 (analogique)
+
   |descr=Détecter la présence de lumière et la luminosité générale avec ce capteur analogique
   |img=tlogo-p2e-tmp36.png
+
   |img=tlogo-p2e-lde.png
   |link=P2E-TMP36-FR
+
   |link=P2E-LDR-FR
 
}}
 
}}
  

Version actuelle datée du 28 janvier 2025 à 22:38

Introduction

Les capteurs de températures existent sous de très nombreuses formes. Certains sont prévu pour une utilisateur en milieu alimentaire, d'autres pour le milieu industriel et enfin quelques autres pour un usage générale. Les plages de températures dépendent aussi du modèle et du type d'application.

Les capteurs de températures les plus facile à utiliser sont analogiques car la tension de sortie est proportionnelle à la température et être lue directement avec une entrée analogique.

L'image ci-dessous présente un TMP36 et ainsi que son brochage.

 

  • La masse (à droite),
  • La sortie analogique (au center),
  • L' alimentation (2.7 à 5.5V, à gauche).

Le TMP36 permet de mesurer une température entre -50°C et 125°C. La tension de sortie varie de 10 millivolts par degrés pour le TMP36 et commence à 500mV pour 0°C.

Le graphique ci-dessous explicite la relation entre la température et la tension de sortie du TMP36 (courbe B pour 3.3V).

 

La formule :

Temp in °C = ( output_voltage_in_mV - 500) / 10

Donc, pour une tension de exactement 1 volt (1000 mV) nous devrions calculer la température suivante:

temp = (1000 - 500)/10 = 50 °C.

Capteur de température du Pico-2-Explorer

Le Pico-2-Explorer propose le capteur de température TMP36 dans sa section analogique.

 

Cas pratique

L'exemple ci-dessous se propose de relever la valeur de la tension du TMP36 sur du convertisseur analogique et de calculer la température en °C.

Branchement simplifié

Dans cet exemple, nous allons brancher la photo-résistance (notée LDR) sur l'entrée analogique A1 (GP27) pour lire la valeur sur le convertisseur analogique.

La LED rouge est branchée sur la broche GP20, tandis que la LED verte est branchée sur GP21. Ces broches sont configurées en sortie.

  • La LED verte s'allume dès que la température atteint ou dépasse 19°C mais reste inférieure à 25°C
  • La LED rouge s'allume dès que la température atteint ou dépasse 25°C (cas où la LED verte doit s'éteindre). C'est un bon indicateur signifiant qu'il faut aérer la pièce pour la rafraîchir.

 

Remarque: Si vous n'êtes pas encore familiarisé avec l'utilisation des entrées analogiques alors vous pouvez consulter le tutoriel sur les entrées analogiques.

Code

Le code ci-dessous peut être saisi dans une session REPL ou dans Thonny IDE.

Cet exemple est également disponible dans le dépôt analog-tmp36.py .

 1 from machine import Pin, ADC
 2 import time
 3 
 4 # Désactive PowerSafe (lower ripple)
 5 Pin( 23, Pin.OUT, value=True )
 6 a1 = ADC( Pin( Pin.board.GP27 ) )
 7 red = Pin( Pin.board.GP20, Pin.OUT )
 8 green = Pin( Pin.board.GP21, Pin.OUT )
 9 
10 def calc_temp( millivolts ):
11     return (millivolts-500)/10
12 
13 while True:
14     val = 0
15     for i in range( 10 ):
16         val += a1.read_u16()
17     val = val/10
18 
19     mv = 3300*val/65535
20     temp = calc_temp( mv )
21     print( 'adc=%5i , mv=%5i, temp=%2.2f °C' % (val, mv, temp) )
22     
23     green.value( 19<=temp<25 )
24     red.value( temp>= 25 )
25             
26     time.sleep_ms( 300 )

Il ne reste plus qu'a tester la capteur. Il est possible d'augmenter la température en pinçant le capteur entre ses deux doigts. Le mouiller avec un peu d'alcool (isopropylique ou désinfectant) abaissera sa température tandis que l'alcool s'évaporera en emportant des calories.

Le script affiche quelques informations utiles durant son fonctionnement:

  • adc: valeur obtenue sur le convertisseur ADC (entre 0 et 65535).
  • mv: tension équivalente exprimée en millivolts.
  • temp : la température en degrés Celcius.

 

Voici quelques explications concernant le script:

  • Ligne 5: Désactive le mode d'économie d'énergie du régulateur (pour diminuer le bruit d'alimentation).
  • Lignes 7 et 8: déclaration des variables red et green correspondant respectivement au LEDs rouges et vertes.
  • Lignes 10 et 11: définition de la clac_temp() qui converti une tension (en milliVolts) en température en suivant la formule décrite plus haut.
  • Ligne 13: boucle infinie (se répète sans fin).
  • Lignes 14 à 17: acquisition sur le convertisseur analogique/numérique (broche GP27) en calculant la moyenne de 10 acquisitions.
  • Lignes 19 à 20: conversion de la valeur ADC en tension analogiques (en millivolts) puis conversion en température par l'appel de la fonction calc_temp()
  • Ligne 23: Allumer la LED verte si la température est comprise entre 19 et 25 °C (25° exclus mais 19°C inclus).
  • Ligne 24: La LED rouge est allumée lorsque la température atteint et dépasse 25°C

Il est également possible de visualiser ces informations sous forme de graphique.

Un problème?

Pas de changement de valeur pour "adc=" ?

  1. vérifier le raccordement entre GP27 et le capteur de température
  2. Vérifier la déclaration de la broche a1 dans le script

Le défi

Utiliser le potentiomètre GP26 (entrée analogique a0) et l'utiliser pour fixer la température supérieure tmax (celle correspondant à la température de 25°C dans le script).

La température inférieures tmin est calculée avec tmin=tmax-6 .

Le potentiomètre sert donc de consigne.

Encore plus

Brancher un TMP36

Voici comment brancher un capteur de température TMP36, sans oublier d'apporter la masse et la tension d'alimentation nécessaire. Le circuit est accompagné de deux condensateurs destiné à lisser et filtrer la tension d 'alimentation.

Pour sa part, les LEDs sont équipée d'une résistance afin de limiter le courant.

 

Autres tutoriels

Ce wiki contient d'autres exemples autour de l'acquisition analogique.

Photo-résistance

Détecter la présence de lumière et la luminosité générale avec ce capteur analogique

Entrée Analogique

Comment utiliser une entrée analogique

 


Traduction augmentée réalisée par Meurisse. D pour shop.MCHobby.be - Licence CC-BY-SA.


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.