Projet balance connectée WiFi : HX711 + ESP32

- Datasheet HX711 complété et corrigé (brochage, timing, plages de gain, broche RATE)
- Comparatif VL53L1X vs VL6180X
- Fiche projet balance WiFi : câblage, alimentation, calibration web, dépannage
- Code ESP32 : AP WiFi, portail captif, SSE temps réel, calibration depuis la page web (NVS)
- Annexe installation Arduino IDE Windows 10 (pilote CP2102, support ESP32, bibliothèques)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-26 18:23:29 +02:00
parent df70f3ff25
commit 7a30649787
5 changed files with 639 additions and 35 deletions
@@ -1,6 +1,6 @@
## HX711 — Amplificateur 24-bits pour cellule de charge
**Type :** Convertisseur analogique-numérique (ADC) différentiel avec amplificateur programmable intégré
**Type :** Convertisseur analogique-numérique (ADC) différentiel 24 bits avec amplificateur programmable intégré
**Applications typiques :** balances électroniques, systèmes de pesée, capteurs de force, instrumentation basse fréquence
---
@@ -10,15 +10,25 @@
* ADC 24 bits à faible bruit, optimisé pour capteurs de pont de Wheatstone
* Amplificateur à gain programmable : **32, 64 ou 128**
* Deux canaux d'entrée différentiels :
* **Canal A :** gain 128 ou 64
* **Canal B :** gain 32
* Fréquences d'échantillonnage : **10 Hz ou 80 Hz**
* **Canal B :** gain 32 (fixe)
* Fréquences d'échantillonnage : **10 Hz ou 80 Hz** (sélection par broche RATE)
* Alimentation : **2,6 V à 5,5 V**
* Interface série propriétaire à deux fils (DATA, CLOCK)
* Consommation typique : ~1,5 mA en fonctionnement
* Interface série propriétaire à deux fils (DOUT, PD\_SCK)
* Consommation typique : ~1,5 mA en fonctionnement, ~1 µA en veille
* Oscillateur interne (pas de quartz requis)
* Filtre numérique intégré (réjection 50/60 Hz)
* Plage de température : 40 °C à +85 °C
---
## Plage d'entrée selon gain et canal
| Canal | Gain | Plage différentielle d'entrée |
|-------|------|-------------------------------|
| A | 128 | ±20 mV |
| A | 64 | ±40 mV |
| B | 32 | ±80 mV |
---
@@ -27,7 +37,8 @@
* Amplificateur différentiel faible bruit
* Multiplexeur de canal
* ADC sigma-delta 24 bits
* Régulateur analogique interne
* Régulateur analogique interne (alimente le pont via AVDD)
* Référence de tension interne (bandgap)
* Oscillateur interne
* Interface série synchrone
@@ -35,46 +46,57 @@
## Brochage (package SOP-16)
* **VSUP** : alimentation analogique
* **AVDD** : sortie régulateur analogique
* **AGND** : masse analogique
* **VBG** : référence interne
* **INA+, INA-** : entrée différentielle canal A
* **INB+, INB-** : entrée différentielle canal B
* **PD_SCK** : horloge et mise en veille
* **DOUT** : sortie données
* **DVDD** : alimentation logique
* **DGND** : masse logique
* Autres broches : non connectées (selon package)
| Broche | Nom | Direction | Description |
|-----------|----------|-----------|--------------------------------------------------|
| 1 | VSUP | Entrée | Alimentation analogique |
| 2 | AVDD | Sortie | Tension régulée interne (~VSUP) → excite le pont |
| 34 | AGND | — | Masse analogique |
| 5 | VBG | Sortie | Référence bandgap interne |
| 6 | INA | Entrée | Entrée différentielle canal A () |
| 7 | INA+ | Entrée | Entrée différentielle canal A (+) |
| 8 | INB | Entrée | Entrée différentielle canal B () |
| 9 | INB+ | Entrée | Entrée différentielle canal B (+) |
| 11 | PD\_SCK | Entrée | Horloge série et contrôle veille |
| 12 | DOUT | Sortie | Sortie données série |
| 13 | DVDD | Entrée | Alimentation logique |
| 14 | DGND | — | Masse logique |
| 15 | RATE | Entrée | Sélection fréquence : GND → 10 Hz, DVDD → 80 Hz |
| 16 | XO | — | Non connecté |
> ⚠️ AVDD est une **sortie** : c'est la tension régulée interne utilisée pour alimenter le pont de la cellule de charge. Ne pas injecter de tension sur cette broche.
---
## Fonctionnement
## Fonctionnement — interface série
1. Le HX711 amplifie la tension différentielle issue du pont de jauge.
2. Le signal est converti par un ADC sigma-delta 24 bits.
3. Les données sont lues via une interface série synchrone :
1. Quand la conversion est terminée, **DOUT passe à 0**
2. Envoyer **24 impulsions** sur PD\_SCK → lit les 24 bits (MSB en premier)
3. Les impulsions supplémentaires définissent le **gain et le canal** pour la prochaine conversion :
* DOUT passe à 0 lorsque la conversion est prête
* 24 impulsions d'horloge lisent la valeur
* 2527 impulsions définissent le gain et le canal suivant
| Impulsions totales | Canal suivant | Gain suivant |
|--------------------|---------------|--------------|
| 25 | A | 128 |
| 26 | B | 32 |
| 27 | A | 64 |
4. **Mode veille :** maintenir PD\_SCK à l'état haut pendant > 60 µs
5. **Réveil :** abaisser PD\_SCK à 0
---
## Performances électriques (typique)
* Résolution effective : ~18 à 20 bits (selon bruit)
* Résolution effective : ~18 à 20 bits (selon bruit et gain)
* Bruit d'entrée (gain 128, 10 Hz) : ~50 nV RMS
* Tension pleine échelle : ±20 mV (gain 128)
* Dérive thermique : faible (adapté métrologie)
* Dérive thermique : faible (adapté à la métrologie de pesée)
---
## Modes de fonctionnement
* **Mode normal :** conversions continues
* **Mode veille :** maintenir PD_SCK à 1 > 60 µs
* **Sélection gain/canal :** nombre d'impulsions après lecture
* **Mode normal :** conversions continues, lecture sur demande
* **Mode veille :** PD\_SCK maintenu haut > 60 µs, consommation < 1 µA
* **Sélection gain/canal :** nombre d'impulsions après les 24 bits de données
---
@@ -82,16 +104,18 @@
* Très faible coût et intégration minimale
* Pas de composants externes critiques
* Excellente réjection du bruit secteur
* Directement compatible microcontrôleurs (Arduino, ESP, etc.)
* Excellente réjection du bruit secteur (50/60 Hz)
* Directement compatible microcontrôleurs (Arduino, ESP32, etc.)
* AVDD intégré : pas besoin d'alimentation externe pour le pont
---
## Limitations
* Bande passante faible (pesée statique)
* Bande passante faible (pesée statique uniquement)
* Interface non standard (pas SPI/I²C natif)
* Sensible au routage PCB et au bruit d'alimentation
* Un seul composant par bus (pas d'adressage)
---
@@ -104,4 +128,7 @@
---
Si nécessaire, fournir un schéma de câblage type avec cellule de charge ou un résumé timing interface.
## Fichiers associés
* [Schéma de câblage avec cellule de charge et Arduino](HX711-%20Amplificateur%2024-bits%20pour%20cellule%20de%20charge%20-%20schema%20de%20cablage.md)
* [Code ESP32 (Arduino framework)](HX711-%20Amplificateur%2024-bits%20pour%20cellule%20de%20charge%20-%20code.c)