🎛️ Schéma Potentiomètre Numérique : Guide Ultime (MCP41010, X9C103 & ESP32)
Salut les makers ! Ici Electro. Vous en avez assez des potentiomètres mécaniques qui grincent, s'usent et se dérèglent avec le temps ? Aujourd'hui, on passe au niveau supérieur avec le potentiomètre numérique (digipot) : un composant qui se pilote par code (SPI ou I2C), sans aucune pièce mobile, et qui ouvre la porte aux alimentations réglables pilotées par ESP32, aux préamplis à volume mémorisé et aux calibrations automatiques.
🔄 Guide mis à jour en 2026 : schémas de câblage, code ESP32/Arduino prêt à téléverser, BOM complet et astuces de pro.
🧠 Qu'est-ce qu'un Potentiomètre Numérique ?
Un potentiomètre numérique reproduit le comportement d'un potentiomètre classique (3 bornes : A, B et le curseur W), mais la position du curseur est fixée par une commande numérique au lieu d'un axe mécanique.
- Échelle de résistances interne : 256 positions pour le MCP41010 (SPI), 100 pas pour le X9C103.
- Zéro usure mécanique : aucune piste qui s'use, aucun grésillement.
- Contrôle par logiciel : idéal pour la domotique, la calibration automatique et les interfaces sans bouton.
📊 Les Modèles les Plus Courants
| Modèle | Interface | Résistance | Particularité |
|---|---|---|---|
| MCP41010 | SPI | 10 kΩ | 256 positions, simple et économique |
| MCP42010 | SPI | 10 kΩ | Double potentiomètre (stéréo) |
| X9C103 | 3 fils (INC/U/D/CS) | 10 kΩ | 100 pas, mémoire non volatile |
| AD5241 | I2C | 10 kΩ | 256 positions, adresse I2C |
| DS1803 | I2C | 10 kΩ | Double, idéal audio stéréo |
📐 Schéma de Câblage : MCP41010 avec ESP32 / Arduino
- CS (broche 1) → GPIO 10 (Arduino) / GPIO 5 (ESP32)
- SCK (broche 2) → SCK (GPIO 13 Arduino / GPIO 18 ESP32)
- SI (broche 3) → MOSI (GPIO 11 Arduino / GPIO 23 ESP32)
- VDD → 3,3 V ou 5 V ; VSS → GND
- PA0 / PW0 / PB0 → votre circuit (diviseur, contre-réaction, entrée audio)
- 100 nF de découplage au plus près de VDD
💻 Code Prêt à Téléverser (SPI)
#include <SPI.h>
const int CS_PIN = 10; // Broche CS du MCP41010
void setup() {
pinMode(CS_PIN, OUTPUT);
digitalWrite(CS_PIN, HIGH);
SPI.begin();
}
void setPotentiometre(byte valeur) {
digitalWrite(CS_PIN, LOW);
SPI.transfer(0x11); // Commande : écriture potentiomètre 0
SPI.transfer(valeur); // Position 0 à 255
digitalWrite(CS_PIN, HIGH);
}
void loop() {
// Balayage complet pour tester toutes les positions
for (int v = 0; v <= 255; v += 16) {
setPotentiometre(v);
delay(300);
}
}
🛒 Liste des Composants (BOM)
| Composant | Modèle | Rôle |
|---|---|---|
| Potentiomètre numérique | MCP41010 ou X9C103 | Résistance variable pilotée par code |
| Microcontrôleur | ESP32 / Arduino Uno | Contrôle SPI / I2C |
| Condensateur | 100 nF céramique | Découplage alimentation |
| Régulateur (option) | LM317 | Alimentation réglable pilotée |
| Divers | Breadboard + jumpers | Prototypage |
🛠️ Applications Pratiques
- Alimentation de labo réglable : le digipot dans la boucle de contre-réaction d'un LM317 = tension de sortie pilotée par ESP32.
- Volume audio mémorisable : un X9C103 conserve sa position même après extinction.
- Amplificateur à gain programmable (PGA) : avec un AOP en montage inverseur.
- Calibration de capteurs : ajustement automatique sans tourner de bouton.
⚠️ Limites à Connaître (Astuces de Pro)
- Courant limité : ±1 à ±25 mA selon le modèle → réservé au signal, jamais à la puissance.
- Tension bornée : le signal doit rester entre VSS et VDD, sinon distorsion et dommage.
- Volatilité : le MCP41010 perd sa position à l'extinction ; préférez le X9C103 (EEPROM) pour mémoriser le réglage.
❓ Questions Fréquentes (FAQ)
Quelle différence avec un potentiomètre mécanique ?
Aucune pièce mobile : la position du curseur est un registre numérique. Résultat : pas d'usure, pas de grésillement, et un contrôle possible à distance par logiciel.
Peut-il remplacer un potentiomètre de puissance ?
Non. Un digipot ne supporte que quelques milliampères. Pour la puissance (moteurs, lampes), utilisez un PWM + MOSFET ou un triac.
SPI ou I2C : lequel choisir ?
Le SPI (MCP41010) est plus simple et plus rapide pour un seul composant. L'I2C (AD5241, DS1803) est idéal quand plusieurs capteurs/actionneurs partagent le même bus.
🎯 Conclusion
Le potentiomètre numérique est le pont parfait entre le monde analogique et le contrôle numérique : alimentations pilotées, audio intelligent, calibration automatique... Avec un MCP41010 à moins de 2 € et un ESP32, vous avez tout ce qu'il faut pour démarrer. Alors, à vos fers à souder !
Vous avez des questions sur le câblage SPI ou l'intégration dans une alimentation LM317 ? Laissez un commentaire ci-dessous, je me ferai un plaisir de vous aider !

