Activer le mode zen
Ressource au format PDF
Mots-clés
Classification
Vérifier et exploiter la loi de Gay-Lussac à l'aide d'un microcontrôleur Arduino
09/05/2023
Résumé
Dans ce document, nous proposons un protocole expérimental pour retrouver la loi de Gay-Lussac à l'aide d'un microcontrôleur Arduino. L'utilisation de Phyphox permet de suivre l'acquisition des données puis de les exporter pour les analyser.
Table des matières
1. Introduction
La loi de Gay-Lussac relie la température et la pression d'un gaz dans une enceinte fermée. Elle peut être vue comme un cas particulier de la loi des gaz parfaits dans le cas où le volume est constant (pour un échantillon de gaz donné) et est donc parfois présentée comme l'une des trois lois qui constituent la loi des parfaits (avec la loi de Boyle-Mariotte et la loi de Charles).
Cette loi hérite donc également du champ de validité de la loi des gaz parfaits : pression pas trop grande (de l'ordre de moins de 10 atm), et température modérée
La loi de Gay-Lussac (du nom de Louis Joseph Gay-Lussac, physicien français du 19e siècle) indique que la pression et la température (absolue) sont proportionnelles pour un échantillon de gaz contenu dans un récipient de volume fixé.
2. Matériel nécessaire
Nous proposons dans cet article d'utiliser un microcontrôleur Arduino pour interfacer les capteurs de température et de pression. Les données sont ensuite transmises par bluetooth vers un smartphone équipé de l'application Phyphox. L'exploitation des mesures est réalisée en python, sur un ordinateur.
Liste du matériel nécessaire :
- un microcontrôleur nano Arduino 33 BLE,
- un smartphone muni de l'application Phyphox,
- un réfrigérateur ou congélateur,
- un bocal indéformable avec couvercle étanche et indéformable. Dans des limites raisonnables de fonctionnement, la baisse de température n'est pas suffisante pour atteindre une pression qui menacerait la résistance d'un bocal en verre.
Pour utiliser le microcontrôleur Arduino nano avec Phyphox, on pourra consulter le tutoriel « Une carte Arduino pour doper votre smartphone » ou télécharger le fichier pdf « Tutoriel Phyphox et Arduino ».
D'autres ressources sur la combinaison Arduino nano / Phyphox sont disponibles sur le site de Vulgarisation.fr.
Nous proposons ici un exemple de programme à téléverser au microcontrôleur Arduino : « nano-phyphox.ino »
Le QR-code ci-dessous permet de télécharger, dans le logiciel Phyphox, les codes relatifs à l'affichage des données (pour cette expérience et celles présentées prochainement) et à la gestion de liaison, via le bluetooth, entre le microcontrôleur Arduino et le smartphone.
3. Difficultés techniques
L'expérience est assez facile à réaliser mais une contrainte importante réside dans la durée d'acquisition : il faut compter plus de 30 minutes si possible. Pendant cette durée, le smartphone doit rester en marche et ne pas être sollicité par un appel ou contact extérieur : il faut donc le mettre en mode avion.
Par ailleurs, le microcontrôleur doit aussi pouvoir être alimenté pendant une telle durée. Il est donc conseillé d'utiliser un petit powerbank chargé plutot que des piles boutons neuves.
La communication entre le microcontrôleur et le téléphone par bluetooth nécessite aussi une faible distance entre les deux appareils.
On fera attention à choisir une récipient avec un couvercle bien étanche. Il sera facile de s'en assurer au regard de l'évolution de la pression au cours de l'expérience.
4. Protocole
- Il est conseillé de thermaliser le microcontrôleur à température ambiante préalablement à l'expérience proprement dite. Il suffit d'attendre que la température n'évolue plus, figure 2.
- On positionne ensuite le microcontrôleur et son alimentation dans le bocal que l'on ferme à l'aide du couvercle.
- On déclenche l'acquisition sur Phyphox après avoir choisi l'expérience intitulée « Gay-Lussac » qui permet de tracer la température et la pression en fonction du temps ainsi que la pression en fonction de la température, figure 3.
- On place le bocal dans un congélateur, en s'assurant que le signal est bien reçu par le smartphone malgré l'épaisseur de la porte, figures 4 et 5.
- On collecte les données pendant environ 30 minutes.
5. Données collectées et exploitation avec un tableur
Les données sont transmises via bluetooth sur Phyphox (grâce au téléchargement accessible par le QR-code, section 2).
On donne, figure 6, un exemple de capture d'écran obtenu après environ 47 minutes d'acquisition.
Les données de Phyphox peuvent être transmises à un tableur pour l'analyse. L'export est accessible par le menu indiqué par la flèche violette, figure 7. Différents formats sont disponibles, figure 8.
Les mesures sont repésentées sur les figures 9, 10 et 11, à l'aide d'un tableur.
La pression et la température décroissent selon des fonctions approximativement exponentielle (on retrouve un comportement de type loi phénoménologique de Newton pour la température).
On observe des fluctuations dans la mesure de pression. Ce souci provient du capteur de la carte Arduino utilisée. Il peut y avoir un problème dans la façon dont le capteur est câblé physiquement sur la carte, notamment quand le capteur de mouvement est activé. Pour en savoir plus, on pourra consulter le forum « Pressure readings problem when IMU sensor is on » . Dans l'exploitation réalisée ici, l'ajustement n'est pas « trop » perturbé par ces oscillations. Les mesures pemettent de remonter à une estimation très correcte du volume molaire.
On constate une forte latence du capteur de température au démarrage de l'expérience, figure 9. L'inertie thermique de l'ensemble participe aussi à ce décalage.
Pour la suite, l'exploitation des mesures ne sera réalisée qu'à partir des 250 premières secondes (environ 4 minutes) jusqu'à la fin de l'expérience, soit environ 43 minutes.
Les mesures sont représentées sur la figure 12.
Un ajustement linéaire permet de déterminer le coefficient directeur de la pente, cela permettra de donner une estimation du volume molaire à la température initiale.
L'enregistrement des mesures de température a été réalisé en degrés celcius. Afin d'utiliser les unités du système international, on convertit les mesures de température en kelvin, figure 13. Dans l'expérience la pression a été mesurée en pascal (USI), donc pas besoin de conversion.
Lorsque la pression \(P\) est tracée en fonction de la température \(T\) en K, on constate que l'ajustement est quasiment une fonction linéaire (très faible ordonnée à l'origine). Le coefficient directeur n'est pas changé car le passage des degrés celcius en kelvin n'est qu'un décalage des valeurs.
La loi des gaz parfait donne :
$$ P = \frac{nR}{V} T$$
Le volume molaire s'écrit \(V_m = \frac{V}{n} \)
La pente de l'ajustement représente donc \(\frac{R}{V_m}\) avec \(V_m\) est le volume molaire de l'air emprisonné dans le bocal au début de l'expérience (température de l'ordre de 27°C).
L'estimation de la pente, donnée figure 13, est de \(a \approx\) 0,33 kPa.K-1 et \(R\) = 8,314 J.mol-1.K-1, on a donc un volume molaire estimé à \(\mathbf{V_m} \)= \(\frac{R}{a} \approx\) 25,19 L.mol-1.
L'écart avec la valeur attendue (environ 24 L.mol-1 au regard de la température et pression initiales) peut s'expliquer par la latence plus forte du capteur de température par rapport à celle du capteur de pression. Ainsi, la pente de la courbe expérimentale devrait être plus grande (à pression donnée, la température est surestimée) et le volume molaire plus faible.
6. Exploitation avec python
Dans cette partie, l'éditrice propose l'analyse des données en utilisant Python (interface Spyder).
Les données enregistrées sur Phyphox peuvent être exportées au format csv (Figure 8, « Choix du format d'export dans l'outil Phyphox »), facilement exploitable en python.
C'est la librairie pandas qui gère l'import des données au format csv, figure 14.
Les données sont sous la forme de DataFrame, c'est-à-dire telles qu'elles apparaitraient dans un tableur. L'index des lignes et des colonnes est conservé, figure 15.
Les données ont été transmises et enregistrées toutes les 50 millisecondes. Pour des mesures de température et de pression, ces temps sont très inférieurs à la réponse du système. Nous choisissons de sous-échantillonner l'ensemble des valeurs en ne prenant des points que toutes les 5 secondes environ, ce qui correspond à prendre 1 point toutes les 100 valeurs, figure 16.
Nous convertissons les valeurs de température en kelvin. Pour cela on passe par une DataFrame intermédiaire "df" à l'aide de la fonction data[["Temperature (°C)"]].transform(lambda x: x + 273.15) .
La fonction df.rename permet de renommer l'index de la colonne, pour indiquer le changement d'unité, figure 17.
On obtient une nouvelle DataFrame, que l'on nomme "dataK" et qui contient les 3 premières colonnes inchangés et une dernière colonne avec les valeurs de températures en kelvin, figure 18.
On s'intéresse maintenant à l'ajustement des données et leur représentation graphique. Le code est présenté figure 19. On utilise la fonction linregress pour effectuer l'ajustement des données.
À l'aide de l'ordonnée à l'origine et de la pente obtenue pour l'ajustement, on trace la modélisation et les mesures sur le même graphique.
On obtient la représentation, figure 20.
Avec la fonction print , on fait afficher la valeur du volume molaire estimé dans le bocal.
Programme python :
Télécharger le programme python pour l'import et l'exploitation des mesures « Gay-Lussac.py »
On pourra retrouver la description du matériel utilisé et d'autres idées de manipulations en consultant l'article « Des mesures sans fil avec son smartphone », de J. Vince, F. Bouquet, J. Bobroff, G. Creutzer et D. Dorsel, du BUP n°1047, vol 116, 2022.
Pour citer cet article :
Vérifier et exploiter la loi de Gay-Lussac à l'aide d'un microcontrôleur Arduino, Jacques Vince, mai 2023. CultureSciences Physique - ISSN 2554-876X, https://culturesciencesphysique.ens-lyon.fr/ressource/TP-Gay-Lussac-Arduino-Vince.xml