Aprende a configurar las entradas y salidas GPIO de Raspberry Pi Pico como entradas y salidas digitales usando el firmware MicroPython. Por ejemplo, aprenderás a leer el valor de un pulsador y a encender un LED según corresponda. Con este sencillo ejemplo, aprenderás a leer cualquier entrada digital y a controlar cualquier salida digital.

Prerrequisitos
Para seguir este tutorial, necesitas tener instalado el firmware MicroPython en tu placa Raspberry Pi Pico. También necesitas un IDE para escribir y cargar el código en la placa.
El IDE de MicroPython recomendado para Raspberry Pi Pico es Thonny IDE. Sigue el siguiente tutorial para aprender a instalar Thonny IDE, instalar el firmware de MicroPython y cargar el código en la placa.
Descripción general del proyecto
Para mostrarte cómo usar las entradas y salidas digitales, crearemos un proyecto sencillo con un pulsador y un LED. Analizaremos el estado del pulsador y encenderemos el LED según corresponda, como se muestra en la siguiente figura.

GPIO de Raspberry Pi Pico
La Raspberry Pi Pico viene con 40 pines, 26 de los cuales son GPIO programables que puedes usar para conectar periféricos.
Puede usar la siguiente distribución de pines como referencia para identificar y localizar cada GPIO en su placa. La distribución de pines es ligeramente diferente para Pico y Pico W.
La siguiente imagen muestra la distribución de pines del Raspberry Pi Pico (qué funciones admite cada pin).
Los pines marcados en rojo son de alimentación y tienen una salida de 3,3 V. Los pines negros son de tierra. Todos los pines en verde claro se pueden usar como GPIO (entrada y salida) normales.
Entradas digitales
Para obtener el valor de un GPIO, primero debe crear un Pin objeto
y configurarlo como entrada. Por ejemplo:
button = Pin(21, Pin.IN)Esto crea una
Pinobjeto llamado
buttonen GPIO 21. Entonces, cuando usas esta línea de código, le estás diciendo a tu programa que GPIO 21 debe actuar como una entrada (
Pin.IN).
También puede configurar las entradas para que usen la resistencia pull-up o pull-down interna del microcontrolador. Para un pulsador, es útil usar la resistencia pull-down interna. Para ello, puede agregar un tercer parámetro a Pin
()
constructor (PULL_DOWN
).
button = Pin(21, Pin.IN, Pin.PULL_DOWN)button = Pin(21, Pin.IN, Pin.PULL_UP)Después de declararlo como entrada, para obtener su valor, debe utilizar el metodo
value()
en el objeto PIN
sin pasar ningún argumento. Por ejemplo, para obtener el estado de el objeto PIN
llamado BUTTON
, utiliza la siguiente expresión:
button.value()Le mostraremos con más detalle cómo funciona todo en el ejemplo del proyecto.
Salidas digitales
Para activar o desactivar un GPIO, primero debes configurarlo como salida. Por ejemplo:
led = Pin(20, Pin.OUT)Esto crea un objeto PIN
llamado led
en GPIO 20. Por lo tanto, cuando usa esta línea de código, le está diciendo a su programa que GPIO 20 debe actuar como una salida (
Pin.OUT).
Para controlar el GPIO, utilice el método
value()
en el objeto PIN
y pase
1
o
0
como argumento. Por ejemplo, el siguiente comando establece el objeto PIN
(led
) en ALTO—enciende el LED:
led.value(1)Para establecer el GPIO en BAJO, pase
0
como argumento—apaga el LED:
led.value(0)Esquemático
Antes de continuar, necesitas ensamblar un circuito con un LED y un pulsador. Conectaremos el LED a
GPIO 20
y el pulsador para
GPIO 21
Piezas necesarias
Aquí hay una lista de las piezas que necesitas para construir el circuito:
- Raspberry Pi Pico
- LED de 5 mm
- Resistencia de 330 ohmios
- Pulsador
- Resistencia de 10 kOhm
- Tablero de circuitos
- cables puente
¡Puedes encontrar todos estos productos en www.Mcielectronics.cl !
.
Esquema – Raspberry Pi Pico
Puedes utilizar el siguiente diagrama como referencia para conectar el pulsador y el LED a la placa Raspberry Pi Pico.

SCRIPT
El siguiente código lee el estado del pulsador y enciende el LED en consecuencia.
# Rui Santos
# Complete project details at https://RandomNerdTutorials.com/raspberry-pi-pico-outputs-inputs-micropython/
from machine import Pin
from time import sleep
led = Pin(20, Pin.OUT)
button = Pin(21, Pin.IN, Pin.PULL_DOWN)
while True:
led.value(button.value())
sleep(0.1)
print(button.value())Cómo funciona el código
Comienza importando la clase PIN de el módulo Machine , y la clase Sleep de el módulo tiempofrom machine import Pin
from time import sleepLuego, crea un objeto Pin llamado led en GPIO 20. Los LEDs son salidas, así que pasa como segundo argumento Pin.OUT.
led = Pin(20, Pin.OUT)También creamos un objeto llamado button en
GPIO 21
. Los pulsadores son entradas, y queremos usar la resistencia interna de pull-down, así que lo declaramos de la siguiente forma.
button = Pin(21, Pin.IN, Pin.PULL_DOWN)Usar
buttón.value()
para devolver/leer el estado del botón. Luego, pasa la expresión button.value
()
como argumento del valor del LED.
led.value(button.value())De esta manera, cuando presionamos el botón, button.value() devuelve 1. Entonces, esto es lo mismo que tener led.value(1).
Esto establece el estado del LED en 1, encendiendo el LED. Cuando el pulsador no está siendo presionado, button.value() devuelve 0. Entonces, tenemos led.value(0), y el LED permanece apagado.
Demostración
Guarde el código en su placa Raspberry Pi Pico usando
Thonny IDEo cualquier otro IDE de MicroPython de su elección.
Siga las siguientes instrucciones si está utilizando Thonny IDE.
Copie el código proporcionado al archivo sin título de Thonny IDE.

Con el código copiado al archivo, haz clic en el icono
Guardar. Luego, selecciona
Raspberry Pi Pico.

Guarde el archivo con el siguiente nombre:
main.py.Sobrescriba cualquier archivo existente con el mismo nombre.

Cuando nombras un archivo main
.pyLa Raspberry Pi Pico ejecutará ese archivo automáticamente al arrancar. Si le asigna un nombre diferente, se guardará en el sistema de archivos de la placa, pero no se ejecutará automáticamente al arrancar.
Reinicia tu placa (desconéctala y conéctala a tu computadora).
Luego, el LED debería encenderse cuando presiones el botón y permanecer apagado cuando lo sueltes.


Concluyendo
Para resumir, para leer el valor de un GPIO, simplemente necesitamos usar el método value()
en el objeto PIN correspondiente
. Para establecer el valor de un GPIO, solo necesitamos pasar como argumento
1
o
0 hacia el método value
()
para activarlo o desactivarlo, respectivamente.
Preguntas frecuentes
¿Cómo configuro un pin de la Raspberry Pi Pico como entrada o salida?
Desde MicroPython, declarando el GPIO correspondiente como entrada o como salida. El ejemplo del tutorial lee el valor de un pulsador y enciende un LED según corresponda.
¿Qué diferencia hay entre entrada y salida digital?
La entrada lee si el pin está en alto o bajo, por ejemplo el estado de un botón. La salida fija ese estado para actuar sobre algo, como encender un LED.
¿Este ejemplo sirve para otros componentes?
Sí. Con ese ejemplo sencillo se aprende a leer cualquier entrada digital y a controlar cualquier salida digital; solo cambia el componente conectado al pin.
¿Qué necesito para seguir este tutorial?
Una Raspberry Pi Pico con el firmware de MicroPython instalado, un LED, un pulsador y los componentes del esquema que incluye la guía.
Aprende esto en un curso
Si prefieres verlo en vivo y con alguien que resuelva tus dudas, estos cursos presenciales de MCI Educación cubren el tema de este tutorial:
- uPython y Electrónica Creativa con Raspberry Pi Pico — nivel inicial, 15 horas presenciales en Santiago
- Domina la Raspberry Pi: Sistemas y Conectividad — nivel intermedio, 18 horas presenciales en Santiago
