Chapitre 17

Activités Python

Thermodynamique et premier principe

Activité

Exploiter un capteur de pression

Consigne

Ouvrez la page des scripts du chapitre pour consulter le code et télécharger les fichiers .py.

Le chapitre 7 l’annonçait : « un gaz se dégage dans une enceinte fermée : suivi par capteur de pression (voir loi des gaz parfaits, ch. 17) ». L’équation d’état rend maintenant ce suivi exploitable. La décomposition de l’eau oxygénée, catalysée, dégage du dioxygène : 2H2O2(aq)2H2O(l)+O2(g). 2\,\text{H}_2\text{O}_2\,(aq) \longrightarrow 2\,\text{H}_2\text{O}\,(l) + \text{O}_2\,(g). Elle se déroule dans une enceinte fermée de 250250 mL maintenue à 2525 °C. À VV et TT fixés, l’équation d’état donne P=RTVngazP = \dfrac{RT}{V}\,n_{\text{gaz}} : la pression est proportionnelle à la quantité de gaz — mesurer PP, c’est mesurer nn. Le capteur de pression devient un compteur de moles : chaque hectopascal de surpression signale 10µmol10\ \text{µmol} de dioxygène formé.

Le script Ch17_suivi_pression.py (dossier scripts/) contient les mesures du capteur. Deux lignes sont à compléter : la conversion de la surpression en quantité de dioxygène, puis la quantité d’eau oxygénée restante.

(La suite — recherche du temps de demi-réaction et tracé — est fournie et n’est pas à modifier.)

Type : graphique Titre : Suivi cinétique de la décomposition de H₂O₂ par capteur de pression Rôle : exploiter PngazP \propto n_{\text{gaz}} pour compter les moles et lire le temps de demi-réaction.

  • Axe horizontal : temps tt en s, de 00 à 12001200 s.
  • Axe vertical : quantité de matière en mmol, de 00 à environ 1010 mmol.
  • Courbes : n(O2)n(\text{O}_2) formé (rouge, ronds) croissante vers 5\sim 5 mmol ; n(H2O2)n(\text{H}_2\text{O}_2) restant (bleu, carrés) décroissante de 1010 mmol vers 00 ; construction pointillée du temps de demi-réaction.
  • Résultat lisible : t1/2=300t_{1/2} = 300 s (moitié de H₂O₂ disparue) ; n(O2)n(\text{O}_2) tend vers n=5,0n_\infty = 5{,}0 mmol (P1509P \to \sim 1509 hPa) — la réaction n’est pas tout à fait finie à 12001200 s.

Questions :

  1. Justifier que, dans cette expérience, mesurer la pression revient à mesurer la quantité de dioxygène formé. Quelles sont les deux conditions expérimentales indispensables ?
  2. Compléter les deux lignes (conversion ΔPnO2\Delta P \to n_{\text{O}_2} par l’équation d’état, puis nH2O2n_{\text{H}_2\text{O}_2} restant par la stœchiométrie).
  3. Exécuter : que vaut le temps de demi-réaction ?
  4. Vers quelle valeur la pression tend-elle en fin de réaction ? La prévoir par le calcul, et la comparer à la dernière mesure.

Fiche O5 — Python (listes, boucles, tracé) et fiche M2 (proportionnalité) : tout y est rappelé.

Script élève

# Chapitre 17 — Suivi cinétique d'une réaction par capteur de pression
# ---------------------------------------------------------------------
# La décomposition de l'eau oxygénée (catalysée) dégage du dioxygène :
#       2 H2O2 (aq)  ->  2 H2O (l)  +  O2 (g)
# Elle se déroule dans une enceinte FERMÉE de 250 mL maintenue à 25 °C,
# équipée d'un capteur de pression. À V et T fixés, P = (RT/V) x n_gaz :
# mesurer P, c'est mesurer la quantité de gaz (voir le cours, §2).

# --- constantes et conditions de l'expérience ---
R = 8.31         # J.mol-1.K-1
T = 298.15       # K (25 °C)
V = 2.50e-4      # m3 (250 mL)
n0 = 1.00e-2     # mol de H2O2 au départ
P0 = 1013.0      # hPa : pression initiale (l'air de l'enceinte)

# --- les mesures du capteur ---
t = [0, 100, 200, 300, 400, 500, 600, 700,
     800, 900, 1000, 1100, 1200]          # s
P = [1013, 1117, 1195, 1262, 1310, 1353, 1385, 1409,
     1432, 1447, 1458, 1471, 1478]        # hPa

# --- conversion : de la pression aux quantités de matière ---
n_O2 = []
n_rest = []
for i in range(len(t)):
    dP = (P[i] - P0) * 100        # la surpression, en Pa
    nO2 = 0                       # quantité d'O2 formé      # À COMPLÉTER
    nH2O2 = 0                     # quantité de H2O2 restant # À COMPLÉTER
    n_O2.append(nO2)
    n_rest.append(nH2O2)

# --- temps de demi-réaction (fourni, ne pas modifier) ---
i = 0
while n_rest[i] > n0 / 2:
    i = i + 1
print("temps de demi-reaction : environ", t[i], "s")

# --- tracé (fourni, ne pas modifier) ---
import matplotlib.pyplot as plt
n_rest_mmol = []
for n in n_rest:
    n_rest_mmol.append(n * 1e3)
plt.plot(t, n_rest_mmol, 'o-', label="H2O2 restant")
plt.axhline(n0 / 2 * 1e3, linestyle='--', color='gray', label="n0/2")
plt.xlabel("t (s)")
plt.ylabel("n (mmol)")
plt.legend()
plt.grid()
plt.show()

← Retour au portail du chapitre