Por qué#
Una entrada que no está conectada a nada flota: capta ruido y lee valores aleatorios. Una resistencia de pull-up (a 3V3) hace que lea 1 hasta que algo la lleve a nivel bajo; una de pull-down (a GND) hace que lea 0 hasta que algo la ponga en alto. La resistencia es débil a propósito, para que un pulsador o una salida puedan imponerse fácilmente.
Dónde la necesitas#
| Señal | Resistencia |
|---|---|
| Pulsador a GND | pull-up de 10 kΩ (o la interna del chip) |
| SDA y SCL de I²C | pull-ups de 4.7 kΩ a 3V3, una vez por bus |
| EN y pines de strapping de arranque del ESP32 | pull-ups de 10 kΩ, según la hoja de datos |
| Puerta de MOSFET controlada por un GPIO | pull-down de 10–100 kΩ, para que la carga siga apagada durante el reset |
| CC de USB-C (dispositivo) | pull-downs de 5.1 kΩ, mira USB-C |
Cómo elegir el valor#
- Demasiado bajo desperdicia corriente mientras la línea está llevada al otro nivel (3.3 V / 1 kΩ = 3.3 mA) y puede sobrecargar al que la controla.
- Demasiado alto hace los flancos lentos y la línea sensible al ruido. I²C a 400 kHz necesita ≤ 4.7 kΩ en un bus típico; 10 kΩ va bien para pulsadores.
- Los pull-ups internos (30–100 kΩ) sirven para pulsadores con cables cortos, pero son demasiado débiles para I²C con cables.
Errores comunes#
- Dos módulos I²C, cada uno con sus propios pull-ups, está bien; cinco en paralelo (≈1 kΩ) es demasiado fuerte. Quita los que sobran.
- Un pull-up a 5 V en un pin de un chip de 3.3 V le mete 5 V.