Convertisseur de niveau logique : relier 3,3 V et 5 V sans risque
Convertisseur de niveau logique : pourquoi l'ESP32 et le Pico ne supportent pas 5 V, seuils VIH/VIL, pont diviseur, BSS138 pour l'I2C, 74HCT et modules.
Un convertisseur de niveau logique est un petit circuit qui permet à une carte en 3,3 V (ESP32, Raspberry Pi Pico, ESP8266) de dialoguer en sécurité avec une carte ou un module en 5 V (Arduino Uno, LCD I2C, HC-SR04, WS2812B). Relier une sortie 5 V directement à une broche 3,3 V peut l'abîmer lentement ou d'un coup ; dans l'autre sens, une entrée 5 V ne voit parfois même pas un signal 3,3 V comme un « 1 ». Savoir quand un convertisseur est nécessaire, et lequel suffit, fait disparaître les pannes mystérieuses de la moitié des projets à tensions mixtes.
Dans cet article, tu verras d'abord ce que signifient les seuils VIH et VIL et pourquoi les broches de l'ESP32 et du Pico ne supportent pas 5 V. Ensuite, nous verrons trois solutions avec des exemples : la conversion unidirectionnelle avec un pont diviseur à deux résistances, le convertisseur bidirectionnel à MOSFET BSS138 pour l'I2C, et les circuits 74HCT pour les signaux rapides comme le WS2812B ou le SPI. À la fin, un tableau indique quels modules fonctionnent directement en 3,3 V, suivi d'une liste d'erreurs fréquentes.

Que sont les niveaux logiques 3,3 V et 5 V ?
Une broche numérique ne connaît que 0 et 1, mais dans le monde réel la tension peut prendre n'importe quelle valeur entre 0 et l'alimentation. C'est pourquoi chaque fiche technique donne quatre seuils. VIH (entrée HIGH) est la tension la plus basse que l'entrée lit à coup sûr comme 1. VIL (entrée LOW) est la tension la plus haute lue à coup sûr comme 0. Entre les deux, la zone est indéterminée : la puce peut y lire 0 ou 1. Côté sortie, VOH est la tension minimale garantie quand la broche est à HIGH, et VOL la tension maximale garantie à LOW. Pour que deux puces dialoguent sans erreur, le VOH de l'émetteur doit rester nettement au-dessus du VIH du récepteur, et son VOL nettement sous le VIL du récepteur. L'article sur les portes logiques montre comment les portes décident avec ces seuils, et tu peux essayer dans l'outil portes logiques.
| Puce (alimentation) | VIL (max) | VIH (min) | VOL (max) | VOH (min) | Maximum sur la broche |
|---|---|---|---|---|---|
| ATmega328P, Arduino Uno (5 V) | 1,5 V (0,3 × VCC) | 3,0 V (0,6 × VCC) | 0,9 V | 4,2 V | 5,5 V |
| ESP32 (3,3 V) | 0,83 V (0,25 × VDD) | 2,48 V (0,75 × VDD) | 0,33 V | 2,64 V | 3,6 V |
| RP2040, Raspberry Pi Pico (3,3 V) | 0,8 V | 2,0 V | 0,5 V | Environ 2,6 V | 3,8 V |
| Série 74HC (5 V) | 1,5 V | 3,5 V | 0,1 V | 4,4 V | 5,5 V |
| Série 74HCT (5 V) | 0,8 V | 2,0 V | 0,1 V | 4,4 V | 5,5 V |
Le tableau mène à trois conclusions importantes. D'abord, la sortie HIGH d'un Uno 5 V (4,2–5 V) dépasse nettement la limite de 3,6 V de l'ESP32 et de 3,8 V du Pico : dans ce sens, la conversion est indispensable. Ensuite, la sortie HIGH 3,3 V de l'ESP32 franchit généralement le seuil VIH de 3,0 V de l'Uno, mais le VOH minimal garanti par la fiche technique n'est que de 2,64 V ; la liaison fonctionne donc souvent, mais devient limite quand le fil s'allonge ou que la broche est chargée. Enfin, une puce 74HC alimentée en 5 V, un expandeur I2C à seuil de 0,7 × VCC comme le PCF8574 ou une LED WS2812B ne considèrent pas de façon fiable comme HIGH une tension inférieure à 3,5 V ; pour eux, un signal 3,3 V est réellement insuffisant. La série 74HCT a un VIH de 2,0 V, c'est pourquoi elle est l'un des moyens les plus propres de passer de 3,3 V à 5 V.
Pourquoi les broches de l'ESP32 et du Pico ne supportent-elles pas 5 V ?
Chaque broche d'entrée d'une puce 3,3 V possède de petites diodes de protection qui la relient au rail 3,3 V et à GND. Elles sont conçues pour absorber des impulsions très brèves comme une décharge électrostatique, pas un courant permanent. Si tu appliques 5 V sur la broche, la diode du haut conduit et un courant circule de la source 5 V vers le rail 3,3 V. Si la résistance interne de la source est faible, ce courant atteint des dizaines de milliampères et détruit la diode et le circuit de la broche en les échauffant. S'il est plus faible, la broche ne meurt pas tout de suite, mais la puce s'use avec le temps, et le rail 3,3 V peut même être tiré vers le haut au point que la carte s'alimente par la broche : tu débranches le câble d'alimentation et la LED de l'ESP32 reste faiblement allumée. La fiche technique de l'ESP32 fixe pour les broches une limite d'alimentation + 0,3 V (environ 3,6 V), celle du RP2040 d'alimentation + 0,5 V (environ 3,8 V). « J'ai essayé une fois et ça n'a pas cassé » ne veut pas dire que la broche tolère 5 V.
De quoi as-tu besoin selon le cas ?
| Cas | Exemple | Solution |
|---|---|---|
| Sortie 5 V → entrée 3,3 V | TX de l'Uno → RX de l'ESP32, ECHO du HC-SR04 → Pico | Pont diviseur (signaux lents) ou tampon 74LVC (signaux rapides) |
| Sortie 3,3 V → entrée 5 V (VIH vers 3 V) | TX de l'ESP32 → RX de l'Uno | Fonctionne souvent en direct ; un 74HCT pour une marge garantie |
| Sortie 3,3 V → entrée 5 V (VIH 3,5 V) | ESP32 → WS2812B, puce 74HC en 5 V | Un tampon comme le 74HCT125 / 74AHCT125 |
| Ligne bidirectionnelle à drain ouvert | I2C (SDA, SCL), 1-Wire | Convertisseur à MOSFET BSS138 |
| Ligne bidirectionnelle rapide push-pull | Bus de données parallèle | 74LVC245 avec broche de direction, ou TXS0108E |
Conversion unidirectionnelle avec un pont diviseur (5 V → 3,3 V)
Le moyen le plus simple d'amener une sortie 5 V sur une entrée 3,3 V, ce sont deux résistances. Le signal entre par la résistance du haut R1, le point milieu va à la broche 3,3 V, et la résistance du bas R2 va à GND. La sortie vaut Vsortie = 5 V × R2 / (R1 + R2) ; avec R2 égale au double de R1, les 5 V tombent à 3,33 V. Le pont ne fonctionne que dans un sens, de la tension haute vers la basse : il ne convient donc pas aux lignes bidirectionnelles où le côté 3,3 V doit répondre. Sa vitesse est aussi limitée, car la résistance de sortie du pont forme avec la capacité de la broche un petit filtre RC qui arrondit les fronts. Pour choisir les valeurs, utilise le calculateur de pont diviseur, et pour l'explication complète, l'article sur le pont diviseur de tension.
| R1 (côté signal) | R2 (côté GND) | Sortie sous 5 V | Résistance de sortie | Usage conseillé |
|---|---|---|---|---|
| 1 kΩ | 2 kΩ (deux 1 kΩ en série) | 3,33 V | 667 Ω | La plupart des usages, y compris les signaux rapides ; consomme 1,7 mA à HIGH |
| 2,2 kΩ | 3,3 kΩ | 3,00 V | 1,3 kΩ | La marge la plus sûre ; UART, ECHO du HC-SR04 |
| 10 kΩ | 20 kΩ | 3,33 V | 6,7 kΩ | Faible courant ; UART jusqu'à 115200 bauds et signaux lents |
| 4,7 kΩ | 10 kΩ | 3,40 V | 3,2 kΩ | Limite ; si le rail 5 V monte à 5,25 V on obtient 3,57 V, déconseillé |
Exemple : UART entre un Arduino Uno et un ESP32
Dans les projets où l'Uno lit les capteurs et où l'ESP32 envoie les données sur Internet par Wi-Fi, les deux cartes dialoguent en UART. Comme la ligne TX de l'Uno délivre 5 V, elle rejoint la broche RX de l'ESP32 par un pont de 1 kΩ + 2 kΩ. La ligne TX 3,3 V de l'ESP32 peut aller directement à la broche RX de l'Uno, car l'Uno considère comme HIGH tout ce qui dépasse 3,0 V. Pour laisser le port série USB de l'Uno (D0, D1) libre pour l'ordinateur, l'Uno utilise SoftwareSerial sur D10 et D11 ; sur l'ESP32, le deuxième port série matériel, Serial2, fonctionne sur GPIO 16 (RX) et 17 (TX). Les GND des deux cartes doivent impérativement être reliés.
1// Arduino Uno: SoftwareSerial ile ESP32'ye veri gönder / send data to the ESP32 with SoftwareSerial
2// Uno D11 (TX, 5 V) -> 1k -> ESP32 GPIO 16 ; GPIO 16 -> 2k -> GND
3// ESP32 GPIO 17 (TX, 3,3 V) -> Uno D10 (RX) doğrudan / directly ; GND <-> GND
4#include <SoftwareSerial.h>
5
6SoftwareSerial link(10, 11); // RX, TX
7
8void setup() {
9 Serial.begin(9600); // bilgisayar / computer
10 link.begin(9600); // ESP32 hattı / ESP32 line
11}
12
13void loop() {
14 int raw = analogRead(A0);
15 link.print(F("A0="));
16 link.println(raw); // ör. / e.g. "A0=512"
17
18 unsigned long start = millis();
19 while (millis() - start < 1000) { // 1 sn cevap bekle / wait 1 s for a reply
20 if (link.available()) {
21 String reply = link.readStringUntil('\n');
22 Serial.print(F("ESP32: "));
23 Serial.println(reply);
24 }
25 }
26}1// ESP32: Serial2 ile Uno'dan gelen satırları oku ve cevap ver / read lines from the Uno on Serial2 and reply
2const int RX2_PIN = 16; // bölücünün orta noktası / divider midpoint
3const int TX2_PIN = 17; // Uno D10'a doğrudan / straight to Uno D10
4
5void setup() {
6 Serial.begin(115200);
7 Serial2.begin(9600, SERIAL_8N1, RX2_PIN, TX2_PIN);
8}
9
10void loop() {
11 if (Serial2.available()) {
12 String line = Serial2.readStringUntil('\n');
13 line.trim();
14 Serial.print("Uno: ");
15 Serial.println(line);
16 Serial2.print("OK "); // 3,3 V çıkış Uno için yeterli / 3.3 V output is enough for the Uno
17 Serial2.println(line.length());
18 }
19}Avant de téléverser, mesure le point milieu du pont au multimètre : Uno en marche et sans émission, tu dois lire environ 3,3 V, car une ligne UART est à HIGH au repos. Si le moniteur série de l'Uno affiche chaque seconde une ligne comme « ESP32: OK 6 », la communication fonctionne dans les deux sens. À 9600 bauds, un bit dure 104 µs, alors que le retard introduit par le pont 1 kΩ + 2 kΩ se compte en nanosecondes ; la vitesse ne pose donc aucun problème.
Exemple : brancher un HC-SR04 sur un Raspberry Pi Pico

Le HC-SR04 ne fonctionne de manière fiable qu'en 5 V. Si tu alimentes le Pico par USB, relie le VCC du capteur à la broche VBUS du Pico (broche 40). L'entrée TRIG détecte sans problème l'impulsion 3,3 V du Pico et va donc directement sur GP15. ECHO renvoie en revanche une impulsion de 5 V : une résistance de 1 kΩ se place entre ECHO et GP14, et une de 2 kΩ entre GP14 et GND. Le code mesure la durée de l'impulsion ECHO en microsecondes avec time_pulse_us et la convertit en distance avec la vitesse du son dans l'air (environ 343 m/s).
1# Raspberry Pi Pico + HC-SR04 (ECHO bölücüyle) / Raspberry Pi Pico + HC-SR04 (ECHO through a divider)
2# VCC -> VBUS (pin 40), GND -> GND, TRIG -> GP15, ECHO -> 1k -> GP14 -> 2k -> GND
3from machine import Pin, time_pulse_us
4import time
5
6trig = Pin(15, Pin.OUT)
7echo = Pin(14, Pin.IN)
8
9
10def distance_cm():
11 trig.value(0)
12 time.sleep_us(2)
13 trig.value(1) # 10 µs tetik darbesi / 10 µs trigger pulse
14 time.sleep_us(10)
15 trig.value(0)
16 t = time_pulse_us(echo, 1, 30000) # en fazla 30 ms bekle / wait at most 30 ms
17 if t < 0:
18 return None # yankı yok / no echo
19 return t * 0.0343 / 2 # gidiş-dönüş / round trip
20
21
22while True:
23 d = distance_cm()
24 if d is None:
25 print("Olcum yok / No echo")
26 else:
27 print("Mesafe / Distance: {:.1f} cm".format(d))
28 time.sleep(0.5)Le convertisseur de niveau bidirectionnel BSS138
La plupart des petites cartes vendues comme « convertisseur de niveau logique 4 canaux » comportent, pour chaque canal, un MOSFET canal N BSS138 et deux résistances de tirage de 10 kΩ. Le circuit est d'une grande simplicité : la grille du MOSFET est reliée à 3,3 V (LV), la source au côté basse tension et le drain au côté haute tension. Chaque côté a sa propre résistance de tirage vers sa tension. Ce montage est conçu pour les lignes à drain ouvert comme l'I2C, qui ne font que tirer la ligne à 0 et laissent le niveau 1 aux résistances de tirage, et il fonctionne tout seul dans les deux sens ; aucune broche de direction n'indique quel côté parle.
- Les deux côtés au repos : la grille et la source du MOSFET sont toutes deux à 3,3 V, la tension entre elles est nulle et le MOSFET est bloqué. Chaque côté est tiré à HIGH par sa propre résistance : le côté LV à 3,3 V, le côté HV à 5 V.
- Le côté 3,3 V tire la ligne à LOW : la source descend à 0 V ; la grille restant à 3,3 V, la tension grille-source atteint 3,3 V et le MOSFET conduit. Le côté HV est tiré à LOW à travers le MOSFET.
- Le côté 5 V tire la ligne à LOW : la diode interne (body diode) du MOSFET conduit et abaisse la source vers 0,7 V. Dès que la tension grille-source atteint environ 2,6 V, le MOSFET conduit pleinement et le côté LV passe lui aussi entièrement à LOW.
| Broche du module | À relier à | Remarque |
|---|---|---|
| LV | Broche 3V3 de la carte 3,3 V | Alimentation côté bas et tension de grille des MOSFET |
| HV | Source 5 V (5V de l'Uno ou VIN de l'ESP32) | Alimentation des tirages côté haut |
| GND (deux) | GND des deux cartes | Masse commune obligatoire |
| LV1–LV4 | Broches de l'ESP32 ou du Pico | Signaux côté 3,3 V |
| HV1–HV4 | Broches du module 5 V | Chacune correspond à la broche LV de même numéro |
Exemple : relier un ESP32 à un LCD I2C 5 V
Les écrans LCD 16x2 à caractères n'offrent pas assez de contraste s'ils ne sont pas alimentés en 5 V, et le module I2C PCF8574 placé au dos tire SDA et SCL vers 5 V avec des résistances de 4,7 kΩ. De plus, le seuil VIH du PCF8574 vaut 0,7 × VCC, soit 3,5 V sous 5 V ; les 3,3 V de l'ESP32 restent en dessous. Placer un convertisseur BSS138 entre le LCD I2C et l'ESP32 protège donc les broches et fiabilise la communication. Le câblage est le suivant : 3V3 de l'ESP32 sur LV, VIN (5 V de l'USB) sur HV et sur le VCC du LCD, tous les GND reliés ; GPIO 21 sur LV1 et HV1 vers SDA du LCD ; GPIO 22 sur LV2 et HV2 vers SCL du LCD. Si le code de scan ci-dessous trouve l'écran (généralement à 0x27 ou 0x3F), le convertisseur fonctionne.
1// ESP32 I2C tarayıcı: BSS138 dönüştürücü üzerinden 5 V'luk cihazları bul
2// ESP32 I2C scanner: find 5 V devices through a BSS138 converter
3// GPIO 21 -> LV1 / HV1 -> SDA ; GPIO 22 -> LV2 / HV2 -> SCL ; 3V3 -> LV ; VIN (5 V) -> HV
4#include <Wire.h>
5
6const int SDA_PIN = 21;
7const int SCL_PIN = 22;
8
9void setup() {
10 Serial.begin(115200);
11 Wire.begin(SDA_PIN, SCL_PIN);
12 Wire.setClock(100000); // 100 kHz, BSS138 için rahat hız / comfortable speed for the BSS138
13}
14
15void loop() {
16 int found = 0;
17 for (byte addr = 1; addr < 127; addr++) {
18 Wire.beginTransmission(addr);
19 if (Wire.endTransmission() == 0) { // 0 = ACK, cihaz var / device present
20 Serial.printf("Cihaz / Device: 0x%02X\n", addr);
21 found++;
22 }
23 }
24 if (found == 0) Serial.println("Cihaz yok / No device found");
25 Serial.println("---");
26 delay(3000);
27}Circuits 74HCT : signaux rapides unidirectionnels
Quand le pont et le BSS138 sont trop lents, la solution professionnelle est un circuit tampon. La série 74HCT s'alimente en 5 V, mais ses entrées ont des seuils compatibles TTL (VIH = 2,0 V) : elle reconnaît donc sans peine le signal 3,3 V d'un ESP32 ou d'un Pico comme HIGH et délivre un vrai signal 5 V aux fronts nets. L'usage le plus courant est la ligne de données des rubans WS2812B : la broche de l'ESP32 va à l'entrée d'un 74AHCT125, dont la sortie rejoint le DIN du ruban via une résistance de 330 Ω ; la broche OE (validation) du 74AHCT125 est reliée à GND. Pour le sens inverse, ramener un signal 5 V rapide à 3,3 V, on utilise un 74LVC125 ou un 74LVC245 alimenté en 3,3 V ; leurs entrées supportent jusqu'à 5,5 V quelle que soit leur propre alimentation.
| Solution | Alimentation | Sens | Canaux | Usage typique |
|---|---|---|---|---|
| 74AHCT125 / 74HCT125 | 5 V | 3,3 V → 5 V | 4 | Données WS2812B, SPI, MAX7219 |
| 74HCT245 | 5 V | 3,3 V → 5 V | 8 | Bus de données parallèle, nombreuses sorties |
| 74LVC125 / 74LVC245 | 3,3 V | 5 V → 3,3 V | 4 / 8 | Sorties rapides de capteurs 5 V, modules carte SD |
| Module BSS138 | 3,3 V et 5 V | Bidirectionnel | 4 | I2C, 1-Wire, UART lent |
| Pont diviseur | Aucune | 5 V → 3,3 V | 1 | RX d'UART, ECHO du HC-SR04, boutons |
Quels modules fonctionnent directement en 3,3 V ?
Le tableau ci-dessous indique si les modules les plus utilisés dans les projets ESP32 et Pico peuvent se brancher sans convertisseur sur une carte 3,3 V. Les modules marqués « Oui » s'alimentent par la broche 3V3 et leurs broches de signal se relient directement. Attention toutefois : des modules vendus sous le même nom existent en plusieurs versions ; regarde si la carte porte un régulateur ou un convertisseur de niveau et, en cas de doute, mesure au multimètre la tension de la broche de signal, VCC sous tension.
| Module | Direct en 3,3 V | Remarque |
|---|---|---|
| Module BME280 / BMP280 | Oui | La puce elle-même accepte 3,6 V au maximum ; alimente-la par 3V3 |
| DHT11 / DHT22 | Oui | 3,3–5,5 V ; en 3,3 V, garde le câble court |
| DS18B20 | Oui | 3,0–5,5 V ; résistance de tirage de 4,7 kΩ vers 3,3 V |
| OLED 0,96" (SSD1306) | Oui | Le module a un régulateur ; l'alimenter en 3V3 garde aussi l'I2C en 3,3 V |
| MPU6050 (GY-521) | Oui | Les résistances de tirage du module vont à VCC ; alimente-le par 3V3 |
| RFID RC522 | Oui, 3,3 V uniquement | L'alimenter en 5 V détruit le module |
| nRF24L01 | Oui, 3,3 V uniquement | Ajoute un condensateur de 10–100 µF sur l'alimentation |
| HC-SR04 | Non | Alimente-le en 5 V et divise ECHO ; la version 3,3 V est le HC-SR04P |
| LCD 16x2 I2C (PCF8574) | En partie | Le LCD veut du 5 V ; utilise un BSS138 pour SDA et SCL |
| Ruban LED WS2812B | En partie | Alimenté en 5 V ; des données en 3,3 V sont limites, un 74AHCT125 est conseillé |
| Module relais 5 V | En partie | Sur les modules actifs à l'état bas, un HIGH de 3,3 V peut ne pas relâcher complètement le relais ; choisis un module à commande 3,3 V |
| Servo SG90 | Signal oui | Alimente le moteur en 5 V ; un signal PWM de 3,3 V suffit en général |
Erreurs fréquentes et solutions
| Symptôme | Cause probable | Solution |
|---|---|---|
| Le convertisseur BSS138 ne fonctionne pas du tout | LV et HV non alimentées ou inversées | Applique 3,3 V sur LV et 5 V sur HV ; relie les GND |
| La LED de l'ESP32 reste faiblement allumée sans USB | Un signal 5 V alimente la carte par une broche | Ajoute un pont ou un convertisseur sur cette ligne |
| Signal déformé ou arrondi après le pont | Résistances trop grandes pour une ligne rapide | Passe à 1 kΩ + 2 kΩ ou utilise un tampon 74LVC |
| La première LED d'un ruban WS2812B scintille | Les données 3,3 V sont sous le seuil VIH de 3,5 V | Convertis en 5 V avec un 74AHCT125 et ajoute 330 Ω sur la ligne de données |
| L'I2C marche parfois et se bloque parfois | Tirages vers 5 V et seuil VIH élevé sur le périphérique | Utilise un BSS138 et descends à 100 kHz |
| Le relais ne retombe jamais | Le module relais actif à l'état bas ne voit pas 3,3 V comme HIGH | Utilise un module à commande 3,3 V ou un étage à transistor |
| Caractères UART corrompus à travers le convertisseur | Pas de masse commune | Relie les GND des deux cartes |
La conversion de niveau logique paraît technique, mais elle se résume à trois règles : protège toujours une ligne qui va du 5 V vers le 3,3 V, vérifie le seuil VIH du récepteur sur une ligne qui va du 3,3 V vers le 5 V, et utilise un BSS138 sur les lignes bidirectionnelles comme l'I2C. Avec ces règles, tu peux réunir sans souci un Arduino, un ESP32 et un Pico dans le même projet. Dans l'application BlueGrays, chaque connexion des projets ESP32 et Raspberry Pi Pico est expliquée avec des broches adaptées au niveau logique de la carte et un schéma pas à pas.
Questions fréquentes
L'ESP32 tolère-t-il le 5 V ?
Non. La fiche technique de l'ESP32 limite les GPIO à l'alimentation + 0,3 V, soit environ 3,6 V. Sous 5 V, les diodes de protection de la broche conduisent, le courant part vers le rail 3,3 V et la broche peut lâcher avec le temps ou immédiatement. Le fait que cela semble fonctionner un moment ne le rend pas sûr.
Peut-on relier un Arduino et un ESP32 sans convertisseur de niveau ?
En partie. Les signaux 3,3 V qui vont de l'ESP32 vers l'Arduino franchissent généralement le seuil de 3,0 V de l'Uno et peuvent être reliés directement. En revanche, les signaux 5 V qui vont de l'Arduino vers l'ESP32 doivent toujours passer par un pont diviseur ou un convertisseur. Dans tous les cas, les GND des deux cartes doivent être reliés.
Quel convertisseur de niveau logique utiliser pour l'I2C ?
Les lignes I2C étant à drain ouvert, le meilleur choix est un convertisseur bidirectionnel à MOSFET BSS138, qui fonctionne sans souci à 100 et 400 kHz. Les puces conçues pour l'I2C comme le PCA9306 font le même travail. Un pont diviseur est inutilisable en I2C, car la ligne transporte des données dans les deux sens.
Un WS2812B fonctionne-t-il avec les données 3,3 V de l'ESP32 ?
Souvent oui, mais rien n'est garanti. Un WS2812B alimenté en 5 V attend au moins 3,5 V sur son entrée de données, et 3,3 V est sous ce seuil ; la première LED peut scintiller, surtout avec un long fil ou une alimentation au-dessus de 5 V. La solution fiable est un tampon comme le 74AHCT125 ou le 74HCT125 sur la ligne de données.
Faut-il un pont diviseur ou un module convertisseur de niveau ?
Pour abaisser de 5 V à 3,3 V un signal lent et unidirectionnel, comme le RX d'une UART ou l'ECHO du HC-SR04, deux résistances suffisent et c'est la solution la moins chère. Si la ligne est bidirectionnelle (I2C) ou s'il faut élever 3,3 V à 5 V, le pont ne sert à rien ; utilise un module BSS138 ou un tampon 74HCT. Pour les signaux très rapides, les circuits tampons sont le bon choix.
Que signifient HV et LV sur un convertisseur de niveau logique ?
HV (high voltage) désigne le côté haute tension, généralement relié au 5 V, et LV (low voltage) le côté basse tension, relié au 3,3 V. Les broches HV1–HV4 vont aux signaux de l'appareil 5 V, et les broches LV1–LV4 de même numéro aux broches de la carte 3,3 V. Les GND des deux côtés se rejoignent sur les broches GND du module.
Projets à réaliser après cet article
Voir tous les projets
Clignotement LED avec ESP32
Enseigne l'utilisation de base des sorties GPIO avec l'ESP32. Nous obtenons un effet de clignotement en allumant et éteignant une LED à partir de la broche numérique. Version ESP32 du projet blink classique sur Arduino UNO ; les commandes de base de blink dans l'environnement Arduino restent les mêmes, mais le brochage et les niveaux GPIO de 3,3 V de l'ESP32 diffèrent de ceux de l'Arduino UNO.

ESP32 Contrôle de LED avec bouton poussoir (Push)
La LED s'allume lorsque le bouton est enfoncé et s'éteint lorsqu'il est relâché. Montre comment la broche d'entrée numérique de l'ESP32 et la résistance pull-up interne sont utilisées. Grâce au mode INPUT_PULLUP, aucune résistance externe n'est nécessaire.

Mesure de l'intensité lumineuse avec le module LDR ESP32
Suivi en temps réel sur le moniteur série de la valeur brute de l'ADC du module LDR et du pourcentage relatif de luminosité calculé à partir de références dans l'obscurité et à la lumière. Ce pourcentage n'est pas une mesure en lux. Permet de comprendre le principe de calibrage du module. Il est préférable de réaliser cet exercice avant le projet 10, car il sert à déterminer la valeur seuil.

Clignotement LED Intégrée Raspberry Pi Pico (Pico et Pico W)
Le projet d'ouverture de la série Raspberry Pi Pico ! Nous faisons clignoter la LED verte intégrée pour vérifier que la carte fonctionne — une première expérience classique "Hello World". AUCUN composant externe, juste Pico et câble USB. Le code est écrit en MicroPython (le langage officiellement soutenu par la Raspberry Pi Foundation). Apprends la classe machine.Pin, le mode Pin.OUT, les méthodes led.on()/off() et time.sleep() dans Thonny IDE. Suis chaque basc

Écran LCD I2C ESP32 (16x2)
Dans ce projet, nous affichons du texte en connectant un écran LCD 16x2 à l'ESP32 via le protocole I2C. Grâce à l'I2C, nous pouvons contrôler l'écran avec seulement 2 broches de données (SDA et SCL) ; cela évite le gaspillage de 6 broches ou plus inhérent à la connexion parallèle classique. Le code affiche un message fixe sur la première ligne et un compteur qui augmente chaque seconde sur la deuxième ligne. De plus, au démarrage, nous lançons un scanner I2C pour afficher l'adresse de l'écran su

ESP32 HC-SR04 Télémètre à ultrasons
Le capteur à ultrasons HC-SR04 calcule la distance en mesurant le temps de vol (Time of Flight) de l'onde sonore qu'il émet lorsqu'elle rebondit sur un objet. Dans ce projet, nous enverrons une impulsion de 10 microsecondes depuis l'ESP32 vers la broche TRIG du capteur et nous lirons la durée de l'écho provenant de la broche ECHO à l'aide de la fonction pulseIn(). Nous afficherons la distance calculée en cm sur un écran LCD I2C 16x2. Le capteur HC-SR04 fonctionnant en 5 V, un diviseur de ten

Contrôle d'une bande NeoPixel WS2812B avec l'ESP32
Les LED adressables WS2812B (NeoPixel) sont des LED RGB intelligentes pouvant être contrôlées en série via une seule broche de données. Dans ce projet, nous allons contrôler une bande WS2812B de 8 LED à l'aide de la bibliothèque Adafruit_NeoPixel afin de créer une animation fluide représentant un arc-en-ciel. Bien que le niveau logique 3,3 V de l'ESP32 fonctionne sans problème avec la plupart des composants WS2812B, nous présenterons une solution comprenant une résistance en série de 470 Ω et un

Allumage d'une LED externe sur le Raspberry Pi Pico (plaque d'essai)
Après la LED intégrée du Pico : connecter une LED externe à la maquette et la contrôler via la broche GP14. Ce projet vous permet d’apprendre comment utiliser n’importe quelle broche GPIO à usage général du Pico en sortie, de comprendre la polarité de la LED (grande patte = anode/+, petite patte = cathode/–) et de découvrir pourquoi une résistance de limitation de courant (220 Ω) est indispensable. Si vous n'installez pas cette résistance, un courant excessif traversera la LED et celle-ci risque
Autres articles
Application BlueGrays
Réalise ce montage pas à pas sur ton téléphone
Schéma, code et liste des composants sur un seul écran. Plus de 200 projets Arduino, ESP32 et Pico à réaliser.
Scanne avec ton téléphone
Pointe l’appareil photo vers le code : la boutique d’applications de ton téléphone s’ouvre.
ou ouvre la boutique

