Caso práctico: Resistor en serie para protección de entrada GPIO

Esquemático — Caso práctico: Resistor en serie para protección de entrada GPIO

Objetivo y caso de uso

Qué construirás: Una entrada digital para un microcontrolador con un pulsador y un resistor en serie (p. ej. 10 kΩ) que limite la corriente y proteja el pin GPIO al trabajar con 5 V. Implementarás además un pequeño programa que muestre en el monitor serie los cambios de estado del botón.

Para qué sirve

  • Proteger el pin GPIO cuando se conecta un pulsador a 5 V en placas como Arduino o ESP32.
  • Evitar daños si el pin se configura por error como salida en estado contrario al nivel del botón.
  • Reducir picos de corriente causados por los rebotes mecánicos del pulsador.
  • Permitir la conexión segura de botones externos en protoboard o paneles de control simples.
  • Ilustrar el uso práctico de un resistor en serie con entradas lógicas como patrón de diseño básico.

Resultado esperado

  • El GPIO lee un nivel estable: ≈0 V (LOW) con el botón suelto y ≈5 V (HIGH) al pulsarlo.
  • Corriente limitada a unos pocos cientos de microamperios al pulsar (I ≈ 5 V / 10 kΩ ≈ 0,5 mA).
  • La tensión en el pin nunca supera el rango de alimentación del microcontrolador en uso normal.
  • Un programa básico informa por el monitor serie cada cambio de estado sin provocar resets ni bloqueos.
  • No se aprecia sobrecalentamiento en el microcontrolador ni en el resistor tras varios minutos de pruebas.

Público objetivo: Personas que empiezan a trabajar con microcontroladores y electrónica digital básica; Nivel: principiante–intermedio.

Arquitectura/flujo: Pulsador conectado a 5 V → resistor en serie (≈10 kΩ) → pin GPIO configurado como entrada (idealmente con resistencia interna de pull-down o pull-up complementaria) → firmware que lee el pin en bucle, detecta flancos y envía eventos al monitor serie.

Materiales

  • 1 × Placa de desarrollo con microcontrolador (por ejemplo, Arduino Uno).
  • 1 × Pulsador tipo botón (push-button) de 4 patas o 2 patas.
  • 1 × Resistor de 10 kΩ (R1) para serie con la entrada GPIO.
  • 1 × Resistor de 10 kΩ (R2) para pull-down (referencia a GND).
  • 1 × Fuente de 5 V (puede ser la misma del Arduino, pin +5V).
  • 1 × Protoboard.
  • 6–8 × Cables de conexión tipo macho-macho.

Guía de conexionado

  • Conecta el pin +5V del microcontrolador (por ejemplo, Arduino Uno) a la línea de alimentación positiva de la protoboard (etiquétala como +5V).
  • Conecta el pin GND del microcontrolador a la línea de masa de la protoboard (etiquétala como GND).
  • Elige un pin digital del microcontrolador, por ejemplo GPIO D2; este será el nodo GPIO.
  • Conecta un extremo del pulsador a +5V.
  • Conecta el otro extremo del pulsador al nodo VA (este será el nodo intermedio entre pulsador y resistor serie).
  • Conecta el resistor R1 = 10 kΩ entre el nodo VA y el nodo GPIO (serie de protección de entrada).
  • Conecta el resistor R2 = 10 kΩ entre el nodo GPIO y GND (pull-down para que el pin esté en 0 V cuando el botón no se pulsa).
  • Verifica que no haya ninguna conexión directa (cable solamente) entre +5V y GND.
  • En el código del microcontrolador, configura el pin D2 como entrada digital estándar (INPUT, sin pull-up interno).

Esquemático

            +5V
            |
            |
          [PULS] Pulsador
            |
            o VA node
            |
          [R1] 10kΩ  (serie protección)
            |
            o GPIO node (pin D2 MCU)
            |
          [R2] 10kΩ  (pull-down)
            |
           GND
Esquemático (ASCII)

Mediciones y pruebas

  • Comprobación básica con multímetro:

    • Mide la continuidad del circuito con el multímetro en modo continuidad entre +5V y GND: no debe pitar (no debe haber cortocircuito directo).
    • Verifica el valor aproximado de R1 y R2 midiendo su resistencia en ohmios antes de montarlos (alrededor de 10 kΩ cada uno).
  • Medición de tensión en el pin GPIO (V_GPIO):

    • V_GPIO significa “tensión en el pin GPIO” respecto a GND.
    • Coloca la punta negra del multímetro en GND y la punta roja en el nodo GPIO.
    • Con el pulsador SUELTO: deberías medir aproximadamente 0 V (gracias al resistor R2 como pull-down).
    • Con el pulsador PULSADO: deberías medir aproximadamente 5 V (la tensión se transmite a través de R1 hasta el pin GPIO).
  • Medición de corriente a través del resistor serie (I_R1):

    • I_R1 significa “corriente que atraviesa el resistor R1”.
    • Para medir corriente, el multímetro debe ponerse en serie con el componente:
      • Desconecta el extremo de R1 que va al nodo VA.
      • Conecta la punta roja del multímetro al nodo VA y la punta negra al extremo libre de R1 (así la corriente pasa por el multímetro).
    • Pulsa el botón y lee la corriente: deberías obtener un valor del orden de 0,5 mA (5 V / 10 kΩ = 0,5 mA aproximadamente).
  • Prueba funcional con el microcontrolador:

    • Sube un programa sencillo que lea el pin D2 y envíe por el puerto serie el texto “BOTON: PULSADO” o “BOTON: SUELTO”.
    • Observa en el monitor serie que:
      • Sin pulsar el botón: se reporte estado bajo (0 lógico) de forma estable.
      • Pulsando el botón: se reporte estado alto (1 lógico) de forma clara.
    • Si el microcontrolador se resetea o se cuelga al pulsar el botón, revisa las conexiones y valores de R1 y R2.
  • Criterios de éxito:

    • V_GPIO ≈ 0 V con el pulsador suelto y V_GPIO ≈ 5 V al pulsarlo.
    • I_R1 ≈ 0,5 mA (menos de 1 mA) al pulsar el botón.
    • El microcontrolador detecta correctamente los cambios de estado sin comportamientos erráticos.
    • No hay calentamiento apreciable en resistores ni en el microcontrolador al tacto.

Errores comunes

  • Conectar el pulsador directamente entre +5V y el pin GPIO sin resistor serie:
  • Esto funciona muchas veces, pero reduce la protección del pin: si se configura accidentalmente como salida en bajo, la corriente puede ser muy alta (limitada solo por la resistencia interna).
  • Olvidar el resistor pull-down (R2):
  • El pin queda “flotando” cuando el botón no se pulsa, provocando lecturas aleatorias (saltos espurios entre HIGH y LOW).
  • Conectar mal el pulsador de 4 patas:
  • En muchos botones las patas están unidas por parejas; si se cablea en paralelo en lugar de en serie, el botón puede quedar siempre activado.
  • Poner el resistor R1 en el lugar equivocado:
  • R1 debe ir entre el pulsador y el pin GPIO (nodo VA hacia nodo GPIO), no entre +5V y el pulsador, ni entre el GPIO y GND (esa función es de R2).

Seguridad y buenas prácticas

  • Trabaja siempre con alimentación de 5 V o menos para estas prácticas básicas.
  • No cambies el cableado con el circuito alimentado: primero desconecta el USB o la alimentación externa.
  • Usa valores de resistor de al menos 1 kΩ cuando pongas algo en serie con un pin GPIO, a menos que tengas un motivo claro para usar menos.
  • Lee en la hoja de datos de tu microcontrolador la corriente máxima recomendada por pin y por puerto para saber cuánta protección necesitas.

Posibles mejoras

  • Añadir un condensador pequeño (por ejemplo, 100 nF) entre el nodo GPIO y GND para reducir aún más el rebote del pulsador (filtro RC simple).
  • Implementar en el firmware un algoritmo de debounce por software (por ejemplo, ignorar cambios dentro de una ventana de 20 ms).
  • Cambiar R2 por un pull-up (entre GPIO y +5V) y conectar el otro lado del pulsador a GND, con la misma idea de añadir R1 en serie para protección.
  • Probar con diferentes valores de R1 (4,7 kΩ, 22 kΩ, 47 kΩ) y observar cómo cambia la corriente I_R1 y el ruido recogido en el pin GPIO.

Más Casos Prácticos en Prometeo.blog

Encuentra este producto y/o libros sobre este tema en Amazon

Ir a Amazon

Como afiliado de Amazon, gano con las compras que cumplan los requisitos. Si compras a través de este enlace, ayudas a mantener este proyecto.

Quiz rápido

Pregunta 1: ¿Cuál es el objetivo principal de usar un pulsador con un resistor en serie en la entrada de un microcontrolador?




Pregunta 2: ¿Qué valor típico de resistencia se menciona para colocar en serie con el pulsador?




Pregunta 3: ¿Qué corriente aproximada circula al pulsar el botón con 5 V y un resistor de 10 kΩ?




Pregunta 4: Además de proteger el GPIO, ¿qué otra función ayuda a cumplir el resistor en serie?




Pregunta 5: ¿Qué condición de funcionamiento se espera respecto a la tensión en el pin GPIO?




Pregunta 6: ¿Qué niveles lógicos se esperan en el pin GPIO al usar el montaje descrito?




Pregunta 7: ¿Por qué el resistor en serie ayuda si el pin GPIO se configura por error como salida en estado contrario al botón?




Pregunta 8: ¿Qué característica del firmware se menciona en relación con la lectura del pulsador?




Pregunta 9: ¿Qué comportamiento se considera correcto tras varios minutos de pruebas del circuito?




Pregunta 10: ¿Para qué tipo de aplicaciones se menciona que es útil este montaje con pulsador y resistor en serie?




Carlos Núñez Zorrilla
Carlos Núñez Zorrilla
Electronics & Computer Engineer

Ingeniero Superior en Electrónica de Telecomunicaciones e Ingeniero en Informática (titulaciones oficiales en España).

Sígueme:
Scroll to Top