
La plupart des tutoriels Arduino sautent directement au code. Mais les composants autour du microcontrôleur sont analogiques — la résistance qui maintient une LED en vie, le diviseur qui transforme un capteur en tension, le transistor qui commute un moteur, le régulateur qui fabrique du 5 V à partir d’un adaptateur secteur. Quand l’un de ces éléments est mal dimensionné, aucun code ne peut le corriger.
Velxio simule aussi cette moitié. Il exécute ngspice, le simulateur de circuits SPICE open source, compilé en WebAssembly, de sorte que résistances, condensateurs, diodes, transistors, amplis-op et régulateurs se comportent comme leurs homologues réels dans votre navigateur. Vous pouvez les mesurer avec un voltmètre, un ampèremètre et un oscilloscope, et modifier n’importe quelle valeur pendant que le circuit tourne.
Cet article parcourt sept projets. Les cinq premiers n’ont aucun microcontrôleur, seulement des composants. Les deux derniers mêlent circuits analogiques avec un Arduino et un ESP32. Chaque projet est dans la galerie d’exemples, et chaque chiffre ci-dessous a été lu dans le simulateur puis vérifié par la formule qui l’explique.
Avant de commencer — les trois instruments
- Les circuits sans carte se lancent dès leur ouverture. Faites un clic droit sur n’importe quel composant pour ouvrir son inspecteur et y changer sa valeur — la résistance d’une résistance, la capacité d’un condensateur, le niveau de lumière ou la température d’un capteur. Le circuit se résout à nouveau avec la nouvelle valeur.
- Voltmètre et ampèremètre sont des composants comme les autres — le voltmètre se branche aux bornes de ce que vous voulez mesurer, l’ampèremètre en série. Sur un circuit continu, ils affichent un seul nombre. Sur un circuit alternatif, ils affichent la valeur efficace, la crête et la moyenne continue, mesurées une fois le circuit stabilisé.
- L’oscilloscope montre comment une tension évolue dans le temps. Faites un clic droit sur un fil et choisissez Add to scope ; chaque voie s’adapte automatiquement pour cadrer le signal. Avec une carte sur le canevas, arrêtez d’abord la simulation — pendant qu’un sketch tourne, le canevas garde les clics pour les composants.
Une chose à savoir — pour les circuits avec sources alternatives, Velxio résout une courte fenêtre de temps à partir de la mise sous tension (quelques cycles du signal) et affiche la trace d’oscilloscope de cette fenêtre. Il répète la résolution à chaque modification, donc l’image reste à jour, mais ce n’est pas un enregistrement continu.
1. Une LED et une résistance — la loi d’Ohm

Le premier circuit que tout débutant monte, et celui que l’on monte le plus souvent mal — une LED branchée directement sur une pile grille, car rien ne limite son courant. La résistance en série fait ce travail.
Les multimètres racontent toute l’histoire :
- Le voltmètre aux bornes de la résistance de 470 Ω lit 7,136 V.
- L’ampèremètre lit 15,18 mA. La loi d’Ohm dit la même chose — 7,136 V / 470 Ω = 15,2 mA.
- Le reste des 9 V chute aux bornes de la LED — environ 1,84 V, la tension directe d’une LED rouge.
C’est la formule pour choisir la résistance — R = (Valim − VLED) / I. Pour 15 mA depuis une pile 9 V — (9 − 1,8) / 0,015 = 480 Ω, donc 470 Ω est la valeur normalisée la plus proche.
Essayez — faites un clic droit sur la résistance et passez-la à 1 kΩ. Le courant tombe à 7,2 mA et la LED faiblit, tandis que sa propre tension bouge à peine (1,81 V). Une LED maintient sa tension presque constante et laisse la résistance fixer le courant.
Ouvrir le circuit LED et loi d’Ohm dans Velxio
2. Une alimentation 5 V — redresseur, condensateur et régulateur
L’alimentation linéaire classique, celle qui équipe tous les vieux adaptateurs secteur, en quatre étages :
- Transformateur. Il convertit le secteur AC en une tension alternative plus basse et plus sûre. Ici, c’est un secondaire 12-0-12 V à point milieu, représenté par deux générateurs de signal en opposition de phase (12 V crête chacun, 50 Hz).
- Redresseur. Deux diodes 1N4007, une par moitié du secondaire. Chacune conduit sur sa propre demi-alternance, si bien que la sortie reçoit une impulsion positive toutes les 10 ms — un redressement double alternance.
- Condensateur de réservoir. Le condensateur de 220 µF se charge à chaque crête et alimente la charge entre deux. La tension qu’il maintient n’est pas plate — elle retombe entre les crêtes. Cette retombée, c’est l’ondulation.
- Régulateur. Le 7805 prend cette tension vacillante et maintient sa sortie exactement à 5 V, tant que son entrée reste au moins environ 2 V au-dessus de la sortie.
L’image d’oscilloscope en haut de cet article montre les 12 V AC du transformateur et la tension redressée aux bornes du condensateur. Le condensateur oscille entre 10,1 V et 11,8 V, soit environ 1,7 V d’ondulation avec une charge de 50 mA, et le voltmètre en sortie lit un 5,000 V stable.
L’estimation rapide de l’ondulation est ΔV ≈ I / (2·f·C) — 0,05 A / (2 × 50 Hz × 220 µF) = 2,3 V. Cette formule suppose que le condensateur alimente la charge pendant toute la demi-alternance ; en réalité les diodes le rechargent un peu avant, si bien que les 1,7 V mesurés sont plus faibles.
Essayez — faites un clic droit sur le condensateur et passez-le à 47 µF. L’ondulation grimpe à 6 V, les creux descendent à 5,9 V, en dessous de ce dont le 7805 a besoin, et sa sortie plonge à 3,9 V à chaque cycle. C’est pourquoi les alimentations utilisent de gros condensateurs.
Ouvrir l’alimentation 5 V dans Velxio
3. Une veilleuse avec une LDR et deux transistors

Une veilleuse automatique, sans microcontrôleur et sans code. Une photorésistance (LDR) mesure la lumière, et deux transistors allument la LED quand il fait sombre.
Le module capteur de lumière est un diviseur de tension — la LDR en haut et une résistance de 10 kΩ en bas. En plein jour, la résistance de la LDR est faible et la sortie du module (AO) est haute ; dans le noir, elle grimpe à plusieurs centaines de kΩ et AO retombe vers 0 V.
- Q1 est l’interrupteur du capteur. Quand AO dépasse environ 0,6 V, Q1 conduit et tire la base de Q2 presque à 0 V.
- Q2 pilote la LED. Tant que Q1 est passant, Q2 est bloqué et la LED est éteinte. Quand la lumière baisse, Q1 cesse de conduire, la résistance de 10 kΩ tire la base de Q2 vers le haut, Q2 s’allume et la LED s’éclaire.
Pourquoi deux transistors ? Parce qu’un seul ferait l’inverse — allumer la LED quand il fait clair. Le premier étage inverse le signal.
Dans la simulation, à 20 lux (une pièce sombre), AO est à 0,50 V, Q1 est bloqué et la LED est parcourue par 13 mA. À 30 lux, AO est à 0,67 V, Q1 conduit et la LED s’éteint. Faites un clic droit sur le capteur de lumière et faites varier Illumination (lux) dans cette plage pour la basculer :

Ouvrir la veilleuse dans Velxio
4. Un amplificateur à transistor : l’étage à émetteur commun

Voici comment un petit signal devient un grand : l’amplificateur à émetteur commun, la brique de base de tout amplificateur audio discret. Une sinusoïde de 1 kHz de 0,4 V crête à crête entre par un condensateur de couplage et ressort du collecteur environ quatre fois et demie plus grande, et inversée. (L’alimentation 9 V est le symbole d’alimentation de paillasse en haut à gauche ; le générateur de signal est en dessous.)
Deux choses le font fonctionner.
La polarisation. Un transistor n’amplifie que lorsqu’il est partiellement passant. Le diviseur 47 kΩ / 10 kΩ fixe la base à 1,54 V. L’émetteur se trouve une chute de diode plus bas, 0,89 V, donc 0,89 mA traverse la résistance d’émetteur de 1 kΩ. Le même courant traversant la résistance de collecteur de 4,7 kΩ provoque une chute de 4,2 V, laissant le collecteur à 4,83 V, près du milieu de l’alimentation, avec de la marge pour osciller dans les deux sens.
Le gain. Une variation à la base apparaît presque inchangée à l’émetteur, elle modifie donc le courant de ΔV / Re. Cette variation de courant traverse Rc et déplace le collecteur de ΔV × Rc / Re, dans le sens opposé. Le gain vaut donc −Rc/Re = −4,7. Le simulateur mesure 4,54 : le transistor ajoute une petite résistance d’émetteur interne d’environ 26 mV / Ie ≈ 29 Ω, et 4700 / 1029 = 4,57.
Sur l’oscilloscope, la base (vert) varie de 0,4 V autour de 1,5 V et le collecteur (rouge) varie de 1,8 V autour de 4,8 V, avec ses pics là où la base a ses creux.
Essayez : faites un clic droit sur le générateur de signal et augmentez son amplitude à 1 V. Le collecteur devrait osciller de 9 V, plus que l’alimentation ne le permet, donc le haut de l’onde s’aplatit contre 9 V et le bas contre la saturation : l’écrêtage, le son d’un amplificateur saturé.
Ouvrir l’amplificateur à émetteur commun dans Velxio
5. Un thermostat avec un comparateur à ampli-op

Un thermostat qui allume un ventilateur quand il fait chaud, avec un seul ampli-op LM358 et sans code.
Le capteur. La résistance de la thermistance CTN diminue quand elle se réchauffe (10 kΩ à 25 °C, environ 7,4 kΩ à 32 °C). Le module la place sous une résistance fixe de 10 kΩ, donc sa sortie diminue avec la température : 2,50 V à 25 °C, 2,12 V à 32 °C.
Le point de consigne. Le potentiomètre est un second diviseur. Son curseur se trouve à 2,336 V, la tension que donne la thermistance à 28 °C. Le voltmètre l’affiche.
Le comparateur. Un ampli-op sans rétroaction a un gain si élevé que sa sortie bascule vers l’un ou l’autre rail selon laquelle des entrées est la plus haute. Le point de consigne va sur l’entrée + et la thermistance sur l’entrée − : en dessous de 28 °C, la tension de la thermistance est plus haute et la sortie est à 0 V ; au-dessus de 28 °C, elle est plus basse et la sortie saute à environ 3,7 V, allumant la LED. À 27 °C la LED est éteinte, à 29 °C elle est allumée.
Pourquoi 3,7 V et non 5 V ? Le LM358 ne peut pas amener sa sortie jusqu’à son alimentation positive ; il s’arrête environ 1,3 V avant. Le projet 6 rencontre la même limite.
Un vrai thermostat ajoute une hystérésis, pour ne pas s’allumer et s’éteindre sans cesse quand la température oscille autour du seuil. Le projet 7 le fait en code.
Essayez : faites un clic droit sur la thermistance et changez sa température, ou faites un clic droit sur le potentiomètre et changez sa position (0 à 1023) pour déplacer le point de consigne.
Ouvrir le thermostat à ampli-op dans Velxio
6. Arduino : transformer le PWM en une vraie tension analogique

Un Arduino Uno n’a pas de DAC : analogWrite() ne sort pas une tension, il sort du PWM, une onde carrée à 490 Hz dont le rapport cyclique fixe la moyenne. Une LED ou un moteur s’en moquent, mais beaucoup de circuits ont besoin d’une vraie tension stable. Un filtre analogique en produit une.
- Filtre passe-bas RC. 10 kΩ et 10 µF moyennent le PWM. Sa constante de temps, τ = R·C = 0,1 s, vaut cinquante fois la période du PWM, donc l’ondulation à 490 Hz est presque complètement éliminée. Le coût, c’est la vitesse : après un changement, la sortie met environ 5τ = 0,5 s à se stabiliser.
- Suiveur de tension. Un LM358 dont la sortie est reliée à son entrée − recopie la tension du filtre sur sa sortie. Il ne tire presque aucun courant du filtre, donc ce que vous branchez ensuite ne fait pas chuter la tension.
- Rétroaction. A0 relit le résultat, et le sketch affiche ce qu’il a demandé et ce qu’il a obtenu.
PWM 0 expected 0.00 V measured 0.02 V
PWM 64 expected 1.25 V measured 1.26 V
PWM 128 expected 2.51 V measured 2.51 V
PWM 192 expected 3.76 V measured 3.77 V
PWM 255 expected 5.00 V measured 4.03 V
Jusqu’à 192, le DAC est précis à 10 mV près. À 255, il s’arrête à 4,03 V : le filtre atteint bien 5 V, mais le LM358, alimenté en 5 V, ne peut pas amener sa sortie aussi haut. La solution est un ampli-op rail-to-rail comme le MCP6002, ou de n’utiliser que la plage que le LM358 peut atteindre.
Ouvrir le DAC PWM Arduino dans Velxio
7. ESP32 : un thermomètre qui commande un ventilateur

De nouveau le thermostat, cette fois avec un microcontrôleur qui décide, ce qui lui permet de faire des choses qu’un comparateur ne peut pas : afficher la température en degrés et ajouter une hystérésis.
Lire la température. La sortie du module CTN va sur GPIO34, une broche en entrée seule du premier ADC de l’ESP32. Le sketch moyenne 16 lectures, calcule la résistance de la thermistance à partir du diviseur (R = 10 kΩ × V / (3,3 V − V)), et la convertit en degrés avec l’équation Beta de la fiche technique de la thermistance : 1/T = 1/T₀ + ln(R/R₀)/β, avec R₀ = 10 kΩ à T₀ = 25 °C et β = 3950. Le moniteur série affiche 25,0 °C quand la thermistance est réglée à 25 °C, et 35,0 °C à 35 °C.
Commander la charge. Une broche GPIO peut fournir quelques milliampères, pas les centaines dont un ventilateur a besoin. GPIO25 commande plutôt la grille d’un MOSFET 2N7000, via une résistance de 100 Ω, et le MOSFET relie le ventilateur (une LED verte ici) à la masse. À 35 °C, le drain est à 0,06 V : le MOSFET est complètement passant.
L’hystérésis. Le ventilateur s’allume à 30 °C et ne s’éteint qu’en dessous de 28 °C. Sans cet écart de 2 °C, une température oscillant autour du seuil allumerait et éteindrait le ventilateur chaque seconde.
Pour un vrai ventilateur, utilisez un MOSFET à niveau logique dimensionné pour le courant du ventilateur (le 2N7000 ne convient qu’aux petites charges) et une diode en parallèle du ventilateur pour absorber le pic de tension du moteur à la coupure.
Ouvrir le thermomètre et ventilateur ESP32 dans Velxio
Ce que nous avons corrigé en les construisant
Écrire cet article a impliqué de mesurer chaque circuit, et les mesures ont révélé des problèmes dans le simulateur, tous corrigés avant publication :
- Après
analogWrite(pin, 0)ouanalogWrite(pin, 255)à la suite d’une valeur PWM, le circuit continuait de voir l’ancien niveau PWM. Le tableau du projet 6 l’a mis en évidence. - Le voltmètre et l’ampèremètre intégraient le transitoire d’allumage dans leurs mesures AC : la sortie du 7805 affichait 3,47 V au lieu de 5 V.
- Les voies analogiques de l’oscilloscope avaient une plage fixe de ±4 V, donc un signal de 5 V ou 12 V sortait de l’écran. Elles s’adaptent désormais automatiquement.
- Les régulateurs de tension ne tiraient aucun courant de leur entrée, donc une alimentation n’affichait aucune ondulation.
Si vous construisez un circuit analogique dans Velxio et que les chiffres ne correspondent pas à la formule, dites-le-nous sur GitHub. C’est ainsi que ceux-ci ont été trouvés.