====== TP : Mesure d’une masse avec jauge de contraintes, HX711 et écran OLED ======
===== Problématique =====
Comment concevoir une balance électronique capable de :
* mesurer une masse ;
* afficher la valeur sur un écran OLED ;
* être étalonnée avec une masse connue ;
* évaluer sa sensibilité et sa précision.
===== Organisation du TP =====
Le TP est composé de 4 parties progressives :
* A — Découvrir : jauge de contraintes et HX711
* B — Mesurer : valeurs brutes et tare
* C — Étalonner : masse connue et coefficient de conversion
* D — Intégrer : balance complète avec affichage OLED
===== Matériel =====
* Arduino Uno / Uno R4
* Module HX711 (librairie HX711 à installer - voir exemples)
* Jauge de contrainte / cellule de charge
* Écran OLED SSD1306 I2C 128×64
* Breadboard + fils
* Masse connue : 100 g, 200 g, 500 g ou 1 kg
* Support mécanique pour la cellule de charge
----
====== PARTIE A — Découverte du capteur ======
===== Objectif =====
Comprendre le rôle de la jauge de contraintes et du module HX711.
===== A1 — Observation =====
==== Questions ====
- Que mesure réellement une jauge de contraintes ?
- Pourquoi la variation électrique est-elle très faible ?
- Quel est le rôle du module HX711 ?
- Pourquoi ne peut-on pas brancher directement la jauge sur une entrée analogique Arduino ?
===== A2 — Câblage =====
==== Travail demandé ====
Réaliser le câblage :
^ HX711 ^ Arduino ^
| VCC | 5 V |
| GND | GND |
| DT / DOUT | D3 |
| SCK | D2 |
Pour l’écran OLED :
^ OLED SSD1306 ^ Arduino ^
| VCC | 5 V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
==== Question ====
Pourquoi l’écran OLED utilise-t-il seulement deux fils de communication ?
----
====== PARTIE B — Lecture des valeurs brutes ======
===== Objectif =====
Lire les valeurs fournies par le HX711 sans chercher encore à afficher une masse.
===== B1 — Valeur brute =====
==== Travail demandé ====
Afficher dans le moniteur série la valeur brute fournie par le HX711.
==== Questions ====
- La valeur est-elle parfaitement stable ?
- Que se passe-t-il lorsqu’on appuie légèrement sur la cellule ?
- La valeur augmente-t-elle ou diminue-t-elle ?
- Pourquoi le signe peut-il dépendre du sens de montage ?
==== Notion importante ====
À ce stade, l’Arduino ne mesure pas encore une masse.
Il mesure une valeur numérique proportionnelle à la déformation.
----
===== B2 — Tare =====
==== Travail demandé ====
Créer une fonction de tare :
* mesurer la valeur à vide ;
* la mémoriser ;
* soustraire cette valeur aux mesures suivantes.
==== Formule ====
valeur_corrigee = valeur_brute - valeur_tare
==== Questions ====
- Pourquoi faut-il faire une tare ?
- Que représente la valeur obtenue après tare ?
- Pourquoi ne faut-il rien poser sur la balance pendant la tare ?
----
Prévoir une tare sur l'appui d'un bouton pouissoir.
====== PARTIE C — Étalonnage avec une masse connue ======
===== Objectif =====
Transformer une valeur numérique en masse exprimée en grammes.
===== C1 — Masse connue =====
==== Travail demandé ====
- Faire la tare à vide.
- Poser une masse connue.
- Relever la valeur corrigée.
- Calculer le coefficient d’étalonnage.
==== Formule ====
coefficient = valeur_corrigee / masse_connue
Donc :
masse = valeur_corrigee / coefficient
Cette logique correspond au principe classique d’étalonnage du HX711 : on fait une tare, on place une masse connue, puis on détermine le facteur de calibration à partir de la lecture obtenue. :contentReference[oaicite:1]{index=1}
==== Exemple ====
Si une masse de 200 g donne une valeur corrigée de 84500 :
coefficient = 84500 / 200 = 422,5 points par gramme
Donc si la valeur corrigée vaut ensuite 126750 :
masse = 126750 / 422,5 = 300 g
----
===== C2 — Sensibilité =====
==== Définition =====
La sensibilité indique la variation de la mesure pour une variation de masse.
sensibilité = variation de valeur brute / variation de masse
==== Travail demandé ====
Faire plusieurs mesures :
^ Masse connue ^ Valeur brute ^ Valeur corrigée ^
| 0 g | | |
| 100 g | | |
| 200 g | | |
| 300 g | | |
| 500 g | | |
==== Questions ====
- La relation entre masse et valeur corrigée semble-t-elle linéaire ?
- La sensibilité est-elle constante ?
- Que peut-on faire pour améliorer la précision ?
- Pourquoi est-il préférable d’utiliser plusieurs masses connues ?
----
===== C3 — Incertitude et répétabilité =====
==== Travail demandé ====
Pour une même masse, faire 5 mesures successives.
^ Essai ^ Masse affichée ^
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
==== Questions ====
- Les valeurs sont-elles identiques ?
- Quelle est la valeur moyenne ?
- Quel est l’écart maximal observé ?
- La mesure est-elle suffisamment stable pour l’application visée ?
----
====== PARTIE D — Affichage OLED ======
===== Objectif =====
Afficher la masse mesurée sur un écran OLED SSD1306.
===== D1 — Message simple =====
==== Travail demandé ====
Afficher :
Balance prete
----
===== D2 — Affichage de la masse =====
==== Travail demandé ====
Afficher sur l’écran :
Masse :
xxx g
==== Questions ====
- Pourquoi faut-il éviter de rafraîchir l’écran trop rapidement ?
- Pourquoi peut-on moyenner plusieurs mesures ?
- Quel compromis existe-t-il entre rapidité et stabilité ?
----
===== D3 — Balance complète =====
==== Fonctionnement attendu ====
- Initialisation du HX711
- Initialisation OLED
- Tare à vide
- Lecture de la valeur brute
- Correction par la tare
- Conversion en grammes
- Affichage sur OLED
==== Algorithme ====
- Initialiser le HX711
- Initialiser l’écran OLED
- Attendre que la balance soit vide
- Faire la tare
- Lire plusieurs mesures
- Calculer la moyenne
- Convertir en masse
- Afficher la masse
- Recommencer
----
====== Critères de réussite ======
* Le HX711 fournit une valeur brute exploitable.
* La tare ramène la mesure proche de zéro.
* Une masse connue permet de calculer un coefficient d’étalonnage.
* La masse affichée est cohérente.
* L’écran OLED affiche clairement la mesure.
* L’élève sait expliquer la différence entre valeur brute, tare, coefficient et masse.
----
====== Pour aller plus loin ======
* Ajouter un bouton de tare.
* Afficher “Surcharge” si la masse dépasse une limite.
* Afficher la masse en livres
* Afficher le poids en newtons : P = m × g.
* Transmettre la donnée par Bluetooth vers le téléphone (installer Serial BluEtooth Terminal pour contrôler)
* Faire une appli AppInvntor
* Tracer la courbe valeur corrigée = f(masse).
* Comparer étalonnage à un point et étalonnage multipoints.
* Réaliser une régression linéaire dans un tableur.
* Étudier la dérive de la mesure dans le temps.