Aprender

Por qué una entrada necesita una pull-up, y no solo un interruptor

O mira todas las lecciones.

  • 465componentes en el banco de trabajo
  • 43placas funcionando ahora
  • 1.00xtiempo real, en todas las placas
Resistencia pull-uplive0.000 s 0.00x
Mantén presionado el botón
Una pull-up de 10 kilohm, un botón y una compuerta NOT que enciende un LED mientras lo mantienes presionado.

Un botón, por sí solo, solo puede hacer una conexión. No puede romper una que no existía, y mucho menos decidir qué lee un cable cuando nadie lo toca. Conecta un lado de un botón a una entrada digital y el otro a tierra, sin nada más en esa red, y en el momento en que sueltas el botón la entrada queda flotando: no está en alto ni en bajo, sino con la carga que le haya quedado. En una entrada CMOS, que casi no consume corriente en ningún sentido, esa carga sobrante puede quedarse ahí un tiempo sorprendentemente largo, y puede leerse como 1 o como 0 más o menos al azar.

La resistencia pull-up resuelve esto al darle a la red a dónde ir cuando el botón no está presionado. En el circuito de arriba, una resistencia de 10 kilohm va de 5 V a la misma red que el botón lleva a tierra. Con el botón suelto, la resistencia es lo único que maneja la red, así que queda en 5 V: un nivel alto lógico limpio y real. Presiona el botón y conecta la red directo a tierra, lo que vence fácilmente el jalón débil de la resistencia, así que la red baja a 0 V limpios. Suéltalo y la resistencia la vuelve a subir. Nunca queda nada sin manejar.

Diez kilohm es una elección deliberada, no una regla. Tiene que ser lo bastante pequeña para que la red regrese a 5 V rápido y con firmeza, y lo bastante grande para que al presionar el botón no se desperdicie una cantidad importante de corriente llevándola a tierra: 5 V en 10 kilohm es medio miliamperio, poco comparado con casi cualquier otra cosa en la placa y más que suficiente para definir el voltaje. La compuerta NOT de la derecha convierte la señal que está en alto suelta y en bajo presionada en un LED encendido justo mientras mantienes presionado el botón, que es la forma habitual de que la lógica se lea como la gente espera, sin cargar la red de lectura como pasaría si conectaras un LED directo a ella.

Todas las placas que modela Mokxi tienen esa misma resistencia integrada y se puede activar desde el firmware. El modo INPUT_PULLUP del Uno activa una pull-up interna de 35 kilohm dentro del propio ATmega328P, y el ESP32-C3 y las demás placas ofrecen la misma idea en sus propios pads. Por eso los sketches de button incluidos leen el pin en bajo cuando está presionado: la resistencia interna ya hace el trabajo que hace aquí la externa, solo que más débil y con un componente menos en la protoboard. La versión externa de arriba es lo que en realidad pasa por debajo en cualquier caso, hecho visible.

Ármalo en la vida real

Abre el editor, cambia un valor y mira cómo el número cambia con él. Nada que instalar y sin necesidad de cuenta.