Convertidor de nivel lógico: conectar 3,3 V y 5 V sin riesgos
¿Qué es un convertidor de nivel lógico? Por qué ESP32 y Pico no aguantan 5 V, umbrales VIH/VIL, divisor de voltaje, BSS138 para I2C, chips 74HCT y módulos.
Un convertidor de nivel lógico es un pequeño circuito que permite que una placa de 3,3 V (ESP32, Raspberry Pi Pico, ESP8266) se comunique con seguridad con una placa o un módulo de 5 V (Arduino Uno, LCD I2C, HC-SR04, WS2812B). Conectar una salida de 5 V directamente a un pin de 3,3 V puede dañarlo poco a poco o de golpe; en sentido contrario, a veces una entrada de 5 V ni siquiera ve una señal de 3,3 V como un "1". Saber cuándo hace falta un convertidor, y cuál basta, elimina los fallos misteriosos de la mitad de los proyectos con tensiones mezcladas.
En este artículo verás primero qué significan los umbrales VIH y VIL y por qué los pines del ESP32 y la Pico no soportan 5 V. Después veremos tres soluciones con ejemplos: la conversión en un solo sentido con un divisor de voltaje de dos resistencias, el convertidor bidireccional con MOSFET BSS138 para I2C y los chips 74HCT para señales rápidas como WS2812B o SPI. Al final hay una tabla con los módulos que funcionan directamente a 3,3 V y una lista de errores frecuentes.

¿Qué son los niveles lógicos de 3,3 V y 5 V?
Un pin digital solo conoce el 0 y el 1, pero en el mundo real la tensión puede tomar cualquier valor entre 0 y la alimentación. Por eso la hoja de datos de cada chip da cuatro umbrales. VIH (entrada HIGH) es la tensión más baja que la entrada lee con seguridad como 1. VIL (entrada LOW) es la tensión más alta que se lee con seguridad como 0. La zona intermedia está indefinida: ahí el chip puede leer 0 o 1. En la salida, VOH es la tensión mínima que garantiza el pin al dar HIGH y VOL la máxima que garantiza al dar LOW. Para que dos chips se entiendan sin fallos, el VOH del emisor debe quedar holgadamente por encima del VIH del receptor y su VOL holgadamente por debajo del VIL del receptor. Cómo deciden las puertas con estos umbrales lo explica el artículo sobre puertas lógicas, y puedes probarlo en la herramienta de puertas lógicas.
| Chip (alimentación) | VIL (máx.) | VIH (mín.) | VOL (máx.) | VOH (mín.) | Máximo en el pin |
|---|---|---|---|---|---|
| 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 | Unos 2,6 V | 3,8 V |
| Serie 74HC (5 V) | 1,5 V | 3,5 V | 0,1 V | 4,4 V | 5,5 V |
| Serie 74HCT (5 V) | 0,8 V | 2,0 V | 0,1 V | 4,4 V | 5,5 V |
De la tabla salen tres conclusiones importantes. Primera, la salida HIGH de un Uno de 5 V (4,2–5 V) supera claramente el límite de 3,6 V del ESP32 y de 3,8 V de la Pico, así que en ese sentido la conversión es obligatoria. Segunda, la salida HIGH de 3,3 V del ESP32 suele superar el umbral VIH de 3,0 V del Uno, pero el VOH mínimo que garantiza la hoja de datos es de 2,64 V; la conexión funciona a menudo, pero queda al límite cuando el cable se alarga o el pin tiene carga. Tercera, un chip 74HC alimentado a 5 V, un expansor I2C con umbral de 0,7 × VCC como el PCF8574 o un LED WS2812B no consideran HIGH con seguridad nada por debajo de 3,5 V; para ellos una señal de 3,3 V realmente no basta. La serie 74HCT tiene un VIH de 2,0 V, y por eso es una de las formas más limpias de pasar de 3,3 V a 5 V.
¿Por qué los pines del ESP32 y la Pico no aguantan 5 V?
Cada pin de entrada de un chip de 3,3 V tiene pequeños diodos de protección que lo conectan a la línea de 3,3 V y a GND. Están pensados para absorber pulsos muy cortos, como una descarga electrostática, no una corriente continua. Si aplicas 5 V al pin, el diodo superior conduce y circula corriente desde la fuente de 5 V hacia la línea de 3,3 V. Si la resistencia interna de la fuente es baja, esa corriente llega a decenas de miliamperios y destruye el diodo y el circuito del pin al calentarlos. Si es menor, el pin no muere enseguida, pero el chip se desgasta con el tiempo, e incluso la línea de 3,3 V puede subir hasta que la placa empieza a alimentarse a través del pin: desconectas el cable de alimentación y el LED del ESP32 sigue brillando débilmente. La hoja de datos del ESP32 fija para los pines un límite de alimentación + 0,3 V (unos 3,6 V), y la del RP2040, de alimentación + 0,5 V (unos 3,8 V). "Lo probé una vez y no se rompió" no significa que el pin tolere 5 V.
¿Qué necesitas en cada caso?
| Caso | Ejemplo | Solución |
|---|---|---|
| Salida de 5 V → entrada de 3,3 V | TX del Uno → RX del ESP32, ECHO del HC-SR04 → Pico | Divisor de voltaje (señales lentas) o búfer 74LVC (señales rápidas) |
| Salida de 3,3 V → entrada de 5 V (VIH de unos 3 V) | TX del ESP32 → RX del Uno | Suele funcionar directamente; un 74HCT para ir sobre seguro |
| Salida de 3,3 V → entrada de 5 V (VIH 3,5 V) | ESP32 → WS2812B, chip 74HC de 5 V | Un búfer como el 74HCT125 / 74AHCT125 |
| Línea bidireccional de drenador abierto | I2C (SDA, SCL), 1-Wire | Convertidor con MOSFET BSS138 |
| Línea bidireccional rápida push-pull | Bus de datos paralelo | 74LVC245 con pin de dirección o TXS0108E |
Conversión en un solo sentido con divisor de voltaje (5 V → 3,3 V)
La forma más sencilla de llevar una salida de 5 V a una entrada de 3,3 V son dos resistencias. La señal entra por la resistencia superior R1, el punto medio va al pin de 3,3 V y la resistencia inferior R2 va a GND. La salida es Vsal = 5 V × R2 / (R1 + R2); si R2 es el doble que R1, los 5 V bajan a 3,33 V. El divisor funciona en un solo sentido, de la tensión alta a la baja, así que no sirve en líneas bidireccionales en las que el lado de 3,3 V tenga que responder. Además, su velocidad es limitada, porque la resistencia de salida del divisor forma con la capacidad del pin un pequeño filtro RC que redondea los flancos de la señal. Para elegir los valores usa la calculadora de divisor de voltaje, y para la explicación completa el artículo sobre el divisor de voltaje.
| R1 (lado de la señal) | R2 (lado de GND) | Salida con 5 V | Resistencia de salida | Uso adecuado |
|---|---|---|---|---|
| 1 kΩ | 2 kΩ (dos de 1 kΩ en serie) | 3,33 V | 667 Ω | La mayoría de usos, incluidas señales rápidas; consume 1,7 mA en HIGH |
| 2,2 kΩ | 3,3 kΩ | 3,00 V | 1,3 kΩ | El margen más seguro; UART, ECHO del HC-SR04 |
| 10 kΩ | 20 kΩ | 3,33 V | 6,7 kΩ | Poco consumo; UART hasta 115200 baudios y señales lentas |
| 4,7 kΩ | 10 kΩ | 3,40 V | 3,2 kΩ | Al límite; si la línea de 5 V sube a 5,25 V da 3,57 V, no recomendado |
Ejemplo: UART entre un Arduino Uno y un ESP32
En los proyectos en los que el Uno lee los sensores y el ESP32 lleva los datos a internet por Wi-Fi, las dos placas se comunican por UART. Como la línea TX del Uno da 5 V, llega al pin RX del ESP32 a través de un divisor de 1 kΩ + 2 kΩ. La línea TX de 3,3 V del ESP32 puede ir directamente al pin RX del Uno, porque el Uno considera HIGH todo lo que supere 3,0 V. Para dejar libre el puerto serie USB del Uno (D0, D1) para el ordenador, en el Uno se usa SoftwareSerial en D10 y D11; en el ESP32, el segundo puerto serie por hardware, Serial2, funciona en GPIO 16 (RX) y 17 (TX). Los GND de ambas placas deben estar unidos.
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}Antes de cargar, mide el punto medio del divisor con el multímetro: con el Uno en marcha y sin enviar nada deberías ver unos 3,3 V, porque una línea UART en reposo está en HIGH. Si en el Monitor Serie del Uno aparece cada segundo una línea como "ESP32: OK 6", la comunicación funciona en ambos sentidos. A 9600 baudios un bit dura 104 µs, mientras que el retardo que introduce el divisor de 1 kΩ + 2 kΩ es de nanosegundos, así que la velocidad no es ningún problema.
Ejemplo: conectar un HC-SR04 a una Raspberry Pi Pico

El HC-SR04 solo funciona de forma fiable a 5 V. Si alimentas la Pico por USB, conecta el VCC del sensor al pin VBUS de la Pico (pin 40). La entrada TRIG detecta sin problemas el pulso de 3,3 V de la Pico, así que va directamente a GP15. ECHO, en cambio, devuelve un pulso de 5 V; una resistencia de 1 kΩ va entre ECHO y GP14, y otra de 2 kΩ entre GP14 y GND. El código mide la duración del pulso ECHO en microsegundos con time_pulse_us y la convierte en distancia con la velocidad del sonido en el aire (unos 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)El convertidor de nivel bidireccional BSS138
La mayoría de las pequeñas placas que se venden como "convertidor de nivel lógico de 4 canales" llevan por canal un MOSFET de canal N BSS138 y dos resistencias pull-up de 10 kΩ. El circuito es muy sencillo: la puerta del MOSFET está unida a 3,3 V (LV), la fuente va al lado de baja tensión y el drenador al lado de alta tensión. Cada lado tiene su propia pull-up que lleva la línea a su alimentación. Este montaje está pensado para líneas de drenador abierto como el I2C, que solo llevan la línea a 0 y dejan el nivel 1 a las pull-up, y funciona solo en ambos sentidos; no hay ningún pin de dirección que indique qué lado habla.
- Ambos lados en reposo: La puerta y la fuente del MOSFET están a 3,3 V, la tensión entre ellas es cero y el MOSFET está cortado. Cada lado queda en HIGH por su propia resistencia: el lado LV a 3,3 V y el lado HV a 5 V.
- El lado de 3,3 V pone la línea a LOW: La fuente baja a 0 V; como la puerta sigue a 3,3 V, la tensión puerta-fuente pasa a 3,3 V y el MOSFET conduce. El lado HV también se lleva a LOW a través del MOSFET.
- El lado de 5 V pone la línea a LOW: El diodo interno (body diode) del MOSFET conduce y baja la fuente a unos 0,7 V. Cuando la tensión puerta-fuente llega a unos 2,6 V, el MOSFET conduce del todo y el lado LV también queda totalmente en LOW.
| Pin del módulo | Dónde conectarlo | Nota |
|---|---|---|
| LV | Pin 3V3 de la placa de 3,3 V | Alimentación del lado bajo y tensión de puerta de los MOSFET |
| HV | Fuente de 5 V (5V del Uno o VIN del ESP32) | Alimentación de las pull-up del lado alto |
| GND (dos) | GND de ambas placas | La masa común es obligatoria |
| LV1–LV4 | Pines del ESP32 o la Pico | Señales del lado de 3,3 V |
| HV1–HV4 | Pines del módulo de 5 V | Cada uno corresponde al pin LV del mismo número |
Ejemplo: conectar un ESP32 a una LCD I2C de 5 V
Las LCD de caracteres 16x2 no dan suficiente contraste si no se alimentan a 5 V, y el módulo I2C PCF8574 de su parte trasera lleva SDA y SCL a 5 V con resistencias de 4,7 kΩ. Además, el umbral VIH del PCF8574 es de 0,7 × VCC, es decir, 3,5 V a 5 V; los 3,3 V del ESP32 quedan por debajo. Por eso, poner un convertidor BSS138 entre la LCD I2C y el ESP32 protege los pines y hace la comunicación fiable. La conexión es así: 3V3 del ESP32 a LV, VIN (5 V del USB) a HV y al VCC de la LCD, todos los GND unidos; GPIO 21 a LV1 y HV1 al SDA de la LCD; GPIO 22 a LV2 y HV2 al SCL de la LCD. Si el código de escaneo de abajo encuentra la LCD (normalmente en 0x27 o 0x3F), el convertidor funciona.
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}Chips 74HCT: señales rápidas en un solo sentido
Cuando el divisor y el BSS138 se quedan cortos de velocidad, la solución profesional es un chip búfer. La serie 74HCT se alimenta a 5 V, pero sus entradas tienen umbrales compatibles con TTL (VIH = 2,0 V), así que ve sin problemas como HIGH la señal de 3,3 V del ESP32 o la Pico y entrega una señal de 5 V completa y con flancos limpios. El uso más habitual es la línea de datos de las tiras WS2812B: el pin del ESP32 va a la entrada de un 74AHCT125 y su salida, a través de una resistencia de 330 Ω, al DIN de la tira; el pin OE (habilitación) del 74AHCT125 se conecta a GND. Para el sentido contrario, es decir, bajar una señal rápida de 5 V a 3,3 V, se usa un 74LVC125 o 74LVC245 alimentado a 3,3 V; sus entradas soportan hasta 5,5 V independientemente de su alimentación.
| Solución | Alimentación | Sentido | Canales | Uso típico |
|---|---|---|---|---|
| 74AHCT125 / 74HCT125 | 5 V | 3,3 V → 5 V | 4 | Datos de WS2812B, SPI, MAX7219 |
| 74HCT245 | 5 V | 3,3 V → 5 V | 8 | Bus de datos paralelo, muchas salidas |
| 74LVC125 / 74LVC245 | 3,3 V | 5 V → 3,3 V | 4 / 8 | Salidas rápidas de sensores de 5 V, módulos de tarjeta SD |
| Módulo BSS138 | 3,3 V y 5 V | Bidireccional | 4 | I2C, 1-Wire, UART lento |
| Divisor de voltaje | Ninguna | 5 V → 3,3 V | 1 | RX de UART, ECHO del HC-SR04, botones |
¿Qué módulos funcionan directamente a 3,3 V?
La tabla siguiente resume si los módulos más usados en proyectos con ESP32 y Pico pueden conectarse a una placa de 3,3 V sin convertidor. Los módulos marcados con "Sí" puedes alimentarlos desde el pin 3V3 y conectar sus pines de señal directamente. Aun así, módulos vendidos con el mismo nombre pueden tener versiones distintas; mira si la placa lleva regulador o convertidor de niveles y, si dudas, mide con el multímetro la tensión del pin de señal con VCC conectado.
| Módulo | Directo a 3,3 V | Nota |
|---|---|---|
| Módulo BME280 / BMP280 | Sí | El propio chip admite como máximo 3,6 V; aliméntalo desde 3V3 |
| DHT11 / DHT22 | Sí | 3,3–5,5 V; a 3,3 V mantén el cable corto |
| DS18B20 | Sí | 3,0–5,5 V; pull-up de 4,7 kΩ a 3,3 V |
| OLED de 0,96" (SSD1306) | Sí | El módulo lleva regulador; alimentarlo desde 3V3 deja también el I2C a 3,3 V |
| MPU6050 (GY-521) | Sí | Las pull-up del módulo van a VCC; aliméntalo desde 3V3 |
| RFID RC522 | Sí, solo 3,3 V | Alimentarlo a 5 V lo destruye |
| nRF24L01 | Sí, solo 3,3 V | Añade un condensador de 10–100 µF en la alimentación |
| HC-SR04 | No | Aliméntalo a 5 V y divide ECHO; la versión de 3,3 V es el HC-SR04P |
| LCD 16x2 I2C (PCF8574) | En parte | La LCD necesita 5 V; usa un BSS138 para SDA y SCL |
| Tira LED WS2812B | En parte | Se alimenta a 5 V; los datos a 3,3 V van al límite, se recomienda un 74AHCT125 |
| Módulo de relé de 5 V | En parte | En módulos activos a nivel bajo, un HIGH de 3,3 V puede no soltar del todo el relé; elige un módulo con disparo a 3,3 V |
| Servo SG90 | Señal sí | Alimenta el motor a 5 V; una señal PWM de 3,3 V suele bastar |
Errores frecuentes y cómo solucionarlos
| Síntoma | Causa probable | Solución |
|---|---|---|
| El convertidor BSS138 no funciona en absoluto | LV y HV sin alimentar o intercambiados | Lleva 3,3 V a LV y 5 V a HV; une los GND |
| El LED del ESP32 brilla débilmente sin USB | Una señal de 5 V alimenta la placa a través de un pin | Añade un divisor o un convertidor en esa línea |
| La señal sale deformada o redondeada tras el divisor | Resistencias demasiado grandes para una línea rápida | Baja a 1 kΩ + 2 kΩ o usa un búfer 74LVC |
| El primer LED de una tira WS2812B parpadea | Los datos a 3,3 V no llegan al umbral VIH de 3,5 V | Convierte a 5 V con un 74AHCT125 y añade 330 Ω en la línea de datos |
| El I2C a veces funciona y a veces se cuelga | Pull-up a 5 V y umbral VIH alto en el dispositivo | Usa un BSS138 y baja a 100 kHz |
| El relé nunca se suelta | El módulo de relé activo a nivel bajo no ve 3,3 V como HIGH | Usa un módulo con disparo a 3,3 V o un driver con transistor |
| Los caracteres UART se corrompen con el convertidor | No hay masa común | Une los GND de ambas placas |
La conversión de niveles lógicos suena técnica, pero se reduce a tres reglas: protege siempre una línea que va de 5 V a 3,3 V, revisa el umbral VIH del receptor en una línea que va de 3,3 V a 5 V y usa un BSS138 en líneas bidireccionales como el I2C. Con estas reglas puedes combinar sin problemas un Arduino, un ESP32 y una Pico en el mismo proyecto. En la app BlueGrays, cada conexión de los proyectos con ESP32 y Raspberry Pi Pico se explica con pines adecuados al nivel lógico de la placa y un esquema paso a paso.
Preguntas frecuentes
¿El ESP32 tolera 5 V?
No. La hoja de datos del ESP32 fija para los GPIO un máximo de alimentación + 0,3 V, unos 3,6 V. Con 5 V, los diodos de protección del pin conducen, la corriente va a la línea de 3,3 V y el pin puede estropearse con el tiempo o al instante. Que parezca funcionar durante un tiempo no significa que sea seguro.
¿Puedo conectar un Arduino a un ESP32 sin convertidor de nivel?
En parte. Las señales de 3,3 V que van del ESP32 al Arduino suelen superar el umbral de 3,0 V del Uno, así que pueden conectarse directamente. En cambio, las señales de 5 V que van del Arduino al ESP32 deben pasar siempre por un divisor de voltaje o un convertidor. En todos los casos hay que unir los GND de ambas placas.
¿Qué convertidor de nivel lógico uso para I2C?
Como las líneas I2C son de drenador abierto, la mejor opción es un convertidor bidireccional con MOSFET BSS138, que funciona sin problemas a 100 y 400 kHz. Los chips diseñados para I2C, como el PCA9306, hacen lo mismo. Un divisor de voltaje no sirve para I2C, porque la línea lleva datos en ambos sentidos.
¿Funciona un WS2812B con los datos de 3,3 V del ESP32?
A menudo sí, pero no está garantizado. Un WS2812B alimentado a 5 V espera al menos 3,5 V en su entrada de datos, y 3,3 V está por debajo de ese umbral; el primer LED puede parpadear, sobre todo con cables largos o si la alimentación supera los 5 V. La solución fiable es un búfer como el 74AHCT125 o el 74HCT125 en la línea de datos.
¿Uso un divisor de voltaje o un módulo convertidor de nivel?
Si vas a bajar de 5 V a 3,3 V una señal lenta y de un solo sentido, como el RX de una UART o el ECHO del HC-SR04, bastan dos resistencias y es la solución más barata. Si la línea es bidireccional (I2C) o necesitas subir 3,3 V a 5 V, el divisor no sirve; usa un módulo BSS138 o un búfer 74HCT. Para señales muy rápidas, los chips búfer son la opción correcta.
¿Qué significan HV y LV en un convertidor de nivel lógico?
HV (high voltage) es el lado de alta tensión y suele ir a 5 V, mientras que LV (low voltage) es el lado de baja tensión y va a 3,3 V. Los pines HV1–HV4 van a las señales del dispositivo de 5 V y los LV1–LV4 del mismo número a los pines de la placa de 3,3 V. Los GND de ambos lados se unen en los pines GND del módulo.
Proyectos para hacer después de leer esto
Ver todos los proyectos
LED Parpadeante con ESP32
Enseña el uso básico de la salida GPIO con ESP32. Conseguimos un efecto de parpadeo encendiendo y apagando un LED desde el pin digital. Versión para ESP32 del clásico proyecto blink en Arduino UNO; los comandos básicos de blink en el entorno Arduino son los mismos, pero la distribución de pines y los niveles GPIO de 3,3 V del ESP32 difieren de los del Arduino UNO.

Control de LED con pulsador en ESP32 (Push)
El LED se enciende cuando se pulsa el botón y se apaga cuando se suelta. Muestra cómo se utiliza el pin de entrada digital del ESP32 y la resistencia pull-up interna. Gracias al modo INPUT_PULLUP, no se necesita ninguna resistencia externa.

Lectura de la intensidad luminosa con el módulo LDR del ESP32
Visualización en tiempo real en el monitor serie del valor bruto del ADC del módulo LDR y del porcentaje relativo de luz calculado a partir de referencias de oscuridad y claridad. Este porcentaje no es una medición en lux. Explica el funcionamiento de la calibración del módulo. Es recomendable realizarlo antes del Proyecto 10, ya que se utiliza para determinar el valor umbral.

Parpadeo LED Integrado Raspberry Pi Pico (Pico y Pico W)
¡El proyecto de apertura de la serie Raspberry Pi Pico! Hacemos parpadear el LED verde integrado para verificar que la placa funciona — un experimento clásico "Hello World". SIN componentes externos, solo Pico y cable USB. El código está escrito en MicroPython (el lenguaje oficialmente respaldado por la Raspberry Pi Foundation). Aprende la clase machine.Pin, el modo Pin.OUT, los métodos led.on()/off() y time.sleep() en Thonny IDE. Sigue cada cambio en vivo en l

Pantalla LCD I2C para ESP32 (16x2)
En este proyecto, mostramos texto conectando una pantalla LCD de 16x2 caracteres al ESP32 a través del protocolo I2C. Gracias al I2C, podemos controlar la pantalla con solo 2 pines de datos (SDA y SCL); así se elimina el desperdicio de pines que supone la conexión paralela clásica, que requiere más de 6 pines. El código imprime un mensaje fijo en la primera línea y un contador que aumenta cada segundo en la segunda línea. Además, al inicio ejecutamos el escáner I2C para mostrar la dirección de l

ESP32 HC-SR04 Medidor de distancia por ultrasonidos
El sensor ultrasónico HC-SR04 calcula la distancia midiendo el tiempo de vuelo (Time of Flight) de la onda sonora que emite al chocar contra un objeto y rebotar. En este proyecto, enviaremos un pulso de 10 microsegundos desde el ESP32 al pin TRIG del sensor y leeremos el tiempo de eco procedente del pin ECHO mediante pulseIn(). Mostraremos la distancia calculada en centímetros en una pantalla LCD I2C de 16x2. Dado que el HC-SR04 funciona a 5 V, es obligatorio utilizar un divisor de tensión

Control de la tira NeoPixel WS2812B con ESP32
Los LED direccionables WS2812B (NeoPixel) son LED RGB inteligentes que se pueden controlar en cadena a través de un único pin de datos. En este proyecto, controlaremos una tira de 8 LED WS2812B con la biblioteca Adafruit_NeoPixel para crear una animación fluida de arcoíris. Aunque el nivel lógico de 3,3 V del ESP32 funciona sin problemas en la mayoría de los componentes WS2812B, mostraremos la solución de una resistencia en serie de 470 Ω y un condensador de 1000 µF en caso de inestabilidad. La

Encendido de un LED externo con la Raspberry Pi Pico (placa de pruebas)
El siguiente paso tras el LED integrado de Pico: conectar un LED externo a la placa de pruebas y controlarlo a través del pin GP14. Con este proyecto aprenderás a utilizar cualquier pin GPIO de uso general del Pico como salida, la polaridad del LED (patilla larga = ánodo/+, patilla corta = cátodo/–) y por qué es imprescindible utilizar una resistencia limitadora de corriente (220 Ω). Si no colocas la resistencia, el LED recibirá una corriente excesiva y podría quemarse. El circuito es muy sencil
Más artículos
App BlueGrays
Monta este circuito paso a paso en tu teléfono
Esquema, código y lista de piezas en una sola pantalla. Más de 200 proyectos de Arduino, ESP32 y Pico listos para montar.
Escanea con tu teléfono
Apunta la cámara al código y se abrirá la tienda de apps de tu teléfono.
o ábrela en la tienda

