Le XD-21 est un étage d’amplification prêt à l’emploi : une petite carte de 32,7 × 13,3 mm, un LM358 — le double amplificateur opérationnel le plus répandu de l’électronique — et un potentiomètre de 10 kΩ soudé sur la carte pour régler le gain jusqu’à 100 fois. Alimenté en 5 à 12 V, il prend une tension qui se compte en millivolts et la rend assez grande pour être lue par l’entrée analogique d’une carte Arduino ou observée à l’oscilloscope.
C’est le module qu’on intercale entre un capteur qui parle trop bas et un microcontrôleur qui n’entend rien en dessous de quelques dizaines de millivolts. Il est déjà câblé, il n’y a rien à souder et aucune formule à calculer : le gain se règle au tournevis.
Caractéristiques techniques
| Référence | XD-21 — module amplificateur à gain réglable, à base de LM358 |
|---|---|
| Circuit | LM358, amplificateur opérationnel double en boîtier DIP-8, soudé sur la carte |
| Alimentation | 5 à 12 V en continu, alimentation simple : aucune tension négative n’est nécessaire |
| Gain | Réglable jusqu’à 100 environ, par le potentiomètre de 10 kΩ de la carte |
| Nature du signal | Alternatif : l’entrée est couplée par un condensateur, seules les variations du signal passent |
| Point de repos de la sortie | À la moitié de l’alimentation — environ 2,5 V sous 5 V — quand l’entrée est au silence |
| Tension de sortie maximale | Environ alimentation moins 1,5 V : près de 3,5 V sous 5 V, près de 10,5 V sous 12 V |
| Bande passante | Environ 12 kHz au gain maximal, le LM358 ayant un produit gain × bande de 1,2 MHz |
| Connectique | Broches sorties sur peigne mâle au pas de 2,54 mm, repérées par la sérigraphie |
| Dimensions | 32,7 × 13,3 mm |
| Poids | Environ 3 g |
Ce que le module amplifie, et ce qu’il ne peut pas amplifier
L’entrée de la carte est couplée en alternatif : un condensateur sépare le signal d’entrée de l’étage d’amplification. La conséquence est directe et elle compte plus que tout le reste : une tension continue, ou une tension qui varie lentement, ne passe pas. Un thermocouple, un capteur de pesage, une sonde de température LM35 ou la tension d’un accumulateur donneront une sortie plate, quel que soit le réglage du potentiomètre. Ce module est fait pour tout ce qui bouge : son, impulsions, vibrations, signaux alternatifs de mesure.
Pour la même raison, la sortie se repose au milieu de l’alimentation et oscille autour de cette valeur au rythme du signal amplifié. C’est ce point de repos qui explique la lecture d’une entrée analogique d’Arduino : au silence, elle tourne autour de 512 et non de 0, et c’est la variation autour de cette valeur qui porte l’information.
Deux usages typiques s’en déduisent. La sortie analogique brute d’un capteur de son — la capsule micro, avant tout traitement — est un signal faible qui gagne à être relevé avant la lecture. Et pour ce qui est réellement continu, comme un capteur de pesage, ce n’est pas ce module qu’il faut mais un convertisseur HX711, conçu pour les ponts de jauges de contrainte.
La limite à connaître : la saturation de la sortie
Un amplificateur ne peut pas sortir une tension supérieure à la sienne, et le LM358 s’arrête même à environ 1,5 V de son alimentation. Sous 5 V, la sortie plafonne donc vers 3,5 V. Avec un gain de 100, cela signifie que l’entrée ne doit pas dépasser une dizaine de millivolts en crête : au-delà, le haut et le bas du signal sont rognés, et la mesure devient fausse sans que rien ne le signale à l’écran.
| Sous 5 V | Entrée utile jusqu’à environ 10 mV en crête, soit 20 mV crête à crête |
|---|---|
| Sous 12 V | Environ 25 mV en crête : deux fois et demie plus de marge avant saturation |
| Comment la reconnaître | Une sortie collée près de son maximum, qui ne redescend pas quand le signal d’entrée faiblit, est saturée : baissez le gain ou l’amplitude d’entrée |
| Avec une carte Arduino | Si le module est alimenté en 12 V, sa sortie peut monter à 10,5 V alors que l’entrée analogique de la carte n’accepte que 5 V : un pont diviseur entre les deux est obligatoire |
Le réglage du gain
Le potentiomètre de la carte n’est pas un simple interrupteur : il fixe le gain de l’étage, depuis la valeur la plus basse jusqu’à 100 fois. La méthode qui marche à tous les coups est expérimentale. Branchez le module, alimentez-le, appliquez le signal d’entrée, lisez la sortie, puis tournez la vis d’un quart de tour et relisez. Deux ou trois essais suffisent à trouver la position où le signal est net et la sortie encore loin de son maximum — c’est cette position-là qui donne la mesure la plus juste.
Applications
- Préamplificateur de capteur — remonter le signal d’une capsule micro, d’un capteur piézo ou d’un bobinage avant de l’envoyer dans une entrée analogique.
- Conditionnement de signal — adapter une petite tension alternative à l’échelle attendue par un convertisseur analogique-numérique.
- Détection de bruit ou de vibration — amplifier un signal faible puis comparer son amplitude à un seuil dans le programme.
- Expérimentation sur les amplificateurs opérationnels — deux étages en cascade, un gain réglable : de quoi mesurer l’effet du gain sur une bande passante, sans rien souder.
- Dépannage d’un montage existant — ajouter un étage d’amplification sur une carte dont la sortie de capteur est trop faible, en quelques minutes.
Mini-projet : mesurer le gain du module avec une carte Arduino
Puisque ce module n’amplifie pas le continu, nous allons lui fabriquer un signal alternatif minuscule : l’Arduino produit un signal carré de 1 kHz sur sa sortie 9, deux ponts diviseurs en série l’atténuent plus de deux mille fois, et le module doit le rendre cent fois plus grand. En comparant ce qui entre et ce qui sort, vous lisez le gain réel de la carte — et du même coup vous vérifiez que votre exemplaire fonctionne. Comptez une demi-heure, plaque d’essai comprise.
Ce qu’il faut
| Le module | Le module amplificateur XD-21 de cette page |
|---|---|
| La carte de mesure | Arduino Uno R3 avec câble USB, une Nano convient tout autant |
| Le montage | Plaque d’essai 830 points et fils de prototypage mâle-mâle |
| Les résistances | Deux résistances 10 kΩ et deux résistances 220 Ω, qui forment les deux diviseurs |
| L’alimentation | Le +5 V de l’Arduino suffit ; pour alimenter le module séparément, une alimentation 5 V 2 A convient, les masses restant communes |
Le câblage
La carte ne comporte qu’un peigne de broches : deux pour l’alimentation et la masse, une pour l’entrée du signal, une pour la sortie amplifiée. Repérez-les sur la sérigraphie avant de brancher — une alimentation montée à l’envers détruit le LM358 en une seconde.
| Alimentation du module | broche d’alimentation au +5 V de l’Arduino, masse à la masse commune |
|---|---|
| Premier diviseur | sortie 9 de l’Arduino — 10 kΩ — nœud A — 220 Ω — masse. Le signal carré de 5 V tombe à environ 108 mV |
| Second diviseur | nœud A — 10 kΩ — nœud B — 220 Ω — masse. Le signal tombe alors à environ 2,3 mV |
| Entrée du module | nœud B vers la broche d’entrée de la carte |
| Sortie du module | broche de sortie vers l’entrée analogique A0 de l’Arduino |
Le condensateur d’entrée du module rend le montage indulgent : le décalage continu des diviseurs ne le traverse pas, seul le signal carré est amplifié. Vous devez retrouver à la sortie une tension qui oscille autour de 2,5 V, jamais collée à 0 V ni à 3,5 V.
Le programme
À téléverser sur l’Arduino, puis à observer dans le moniteur série réglé à 9 600 bauds. Le programme n’utilise aucune bibliothèque : il produit le signal de test et mesure son amplitude en sortie.
/*
* Mesure du gain du module XD-21 avec une carte Arduino Uno
* Le module est alimente en 5 V, son entree recoit un signal carre
* de 1 kHz attenue deux fois, sa sortie est lue sur A0.
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
const byte PIN_SIGNAL = 9; // sortie qui produit le signal de test
const byte PIN_SORTIE = 0; // entree analogique A0, reliee au module
const int LECTURES = 300; // environ 34 ms, soit 33 periodes
void setup() {
Serial.begin(9600);
pinMode(PIN_SIGNAL, OUTPUT);
tone(PIN_SIGNAL, 1000); // signal carre de 1 kHz
delay(100);
}
void loop() {
int mini = 1023;
int maxi = 0;
for (int i = 0; i != LECTURES; i++) {
int niveau = analogRead(PIN_SORTIE);
mini = min(mini, niveau);
maxi = max(maxi, niveau);
}
int amplitude = maxi - mini;
long millivolts = amplitude * 5000L / 1023L;
Serial.print("Amplitude en sortie : ");
Serial.print(millivolts);
Serial.println(" mV crete a crete");
if (amplitude == 0) {
Serial.println("Aucun signal : verifier l entree et l alimentation");
}
delay(500);
}Comment ça marche
tone()fait basculer la sortie 9 entre 0 et 5 V à 1 000 fois par seconde : un signal carré, donc alternatif, ce que l’entrée couplée en alternatif du module accepte.- Les deux diviseurs se multiplient : 5 V deviennent 108 mV, puis 2,3 mV. C’est cette amplitude-là qui arrive à l’entrée du module, très loin de la limite de saturation.
- Les 300 lectures d’affilée couvrent une trentaine de périodes du signal. Le minimum et le maximum rencontrés donnent l’amplitude crête à crête, ce que la fonction
analogRead()seule ne sait pas faire. - Chaque niveau vaut environ 4,9 mV (5 000 mV divisés par 1 023). Un signal de 230 mV occupe donc une quarantaine de niveaux : largement lisible.
- Pour retrouver le gain, divisez l’amplitude affichée par les 2,3 mV d’entrée. Un résultat entre 80 et 110 est normal : la tolérance des résistances du diviseur et le réglage du potentiomètre expliquent l’écart autour de 100.
- Amplitude nulle ou clignotante : vérifiez d’abord que la masse du module est commune avec celle de l’Arduino, puis que l’entrée et la sortie ne sont pas interverties.
Pour aller plus loin
- Changer la fréquence de test — remplacez 1000 par 200 ou par 5000 dans
tone()et refaites la mesure : l’amplitude doit rester stable jusqu’à quelques kilohertz, puis diminuer. C’est la bande passante du module, mesurée à la maison. - Chercher le point de saturation — augmentez progressivement le gain au potentiomètre : l’amplitude affichée monte, puis se bloque. À partir de ce moment, la mesure ne décrit plus l’entrée mais la limite du module.
- Un signal de test plus propre — un NE555 monté en oscillateur produit un signal carré réglable en fréquence, indépendant de l’Arduino, pour vérifier le module sur toute sa bande.
- Passer à une vraie source — remplacez le signal de test par la sortie analogique brute du capteur de son cité plus haut, et comparez l’amplitude affichée avec celle obtenue par le diviseur : vous vérifiez ainsi que le module amplifie bien ce que le capteur lui envoie.
Questions fréquentes
Puis-je amplifier la tension d’un capteur de pesage ou d’un thermocouple ?
Non, et ce n’est pas une question de réglage : l’entrée de ce module est couplée en alternatif, un condensateur bloque toute composante continue. Un pont de jauges de contrainte ou un thermocouple délivre justement une tension continue de quelques millivolts, exactement ce que le module ne sait pas voir. Un capteur de pesage demande un convertisseur HX711, qui est un amplificateur continu conçu pour cela.
Le potentiomètre permet-il de descendre le gain, ou seulement de le monter ?
Il le règle dans les deux sens : la position basse donne un gain faible, la position haute approche les 100 fois. C’est utile dès que la source est plus forte que prévu : plutôt que d’ajouter un atténuateur devant le module, baissez le gain et faites la mesure.
La sortie reste collée près de 3,5 V, quoi que je fasse
C’est une saturation, et elle vient presque toujours de l’entrée. Trois causes possibles : le signal d’entrée dépasse une dizaine de millivolts en crête sous 5 V, le gain est réglé au maximum alors que la source est déjà forte, ou l’entrée reçoit une tension continue en plus du signal — l’entrée couplée en alternatif bloque le continu de la source, mais pas le décalage créé en aval si le câblage est en cause. Baissez le gain en premier : c’est un tour de vis, et l’effet est immédiat.
Puis-je l’alimenter en 12 V et le brancher directement sur l’Arduino ?
L’alimentation en 12 V est prévue, et elle augmente la marge avant saturation. En revanche, la sortie peut alors monter à 10,5 V, très au-delà des 5 V qu’accepte une entrée analogique d’Arduino : sans pont diviseur entre la sortie et la carte, c’est l’entrée du microcontrôleur qui est en danger. Restez en 5 V tant que le signal mesuré est faible, et ne passez en 12 V qu’avec le diviseur en place.
Faut-il une alimentation symétrique, avec une tension négative ?
Non. Le LM358 fait partie des amplificateurs conçus pour fonctionner sur une alimentation simple, et c’est tout l’intérêt de cette carte : une seule tension positive entre 5 et 12 V, une masse, et le point de repos de la sortie se place automatiquement à mi-alimentation.
Que puis-je brancher en entrée sans risque ?
Tout signal alternatif de quelques millivolts : capsule micro, capteur piézo, bobinage, sortie analogique d’un module de capteur, signal de test d’un générateur. Restez sous la limite de saturation, et vérifiez au multimètre la tension d’alimentation de la carte avant d’y appliquer quoi que ce soit. Évitez en revanche de lui envoyer directement une sortie de haut-parleur ou une tension secteur, même à travers un diviseur.
À combiner avec
Pour le montage de cette page, il vous faut une carte Uno R3, une plaque d’essai 830 points, des fils mâle-mâle, deux résistances de 10 kΩ et deux résistances de 220 Ω. Le Kit Arduino Uno réunit déjà la carte, les fils et une réserve de résistances, ce qui évite les achats séparés pour un premier montage.
Prévoyez aussi une alimentation 5 V 2 A si le module doit tourner sans être branché à l’ordinateur, et un multimètre DT-9205 pour contrôler la tension d’alimentation et la sortie avant de tout brancher sur la carte. Pour lire l’amplitude mesurée sans passer par l’ordinateur, un afficheur LCD 16×02 en I2C se câble en deux fils sur la carte Arduino. Et pour disposer d’un signal de test indépendant de la carte, un NE555 monté en oscillateur complète bien l’ensemble.







