Esta guía muestra cómo leer valores analógicos con la Raspberry Pi Pico usando MicroPython. Por ejemplo, leeremos los valores de un potenciómetro, pero lo que aprenderá puede aplicarse a cualquier sensor o periférico analógico.

Si estás acostumbrado a programar Arduino, ESP32 y/o ESP8266 usando MicroPython, descubrirás que es bastante similar a programar Raspberry Pi Pico.
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 código en la placa.
Lecturas analógicas – Raspberry Pi Pico
En este tutorial, aprenderás a leer una entrada analógica con la Raspberry Pi Pico. Esto es útil para leer valores de resistencias variables, como potenciómetros o sensores analógicos.

La Raspberry Pi Pico cuenta con un convertidor analógico-digital (ADC) de 12 bits con cuatro canales en un conjunto fijo de pines (además de un sensor de temperatura interno adicional). Esto significa que puede transformar una señal analógica en una señal digital con un número entre 0 y 4095.
Sin embargo, esto se maneja en MicroPython y se transforma en un número de 16 bits que va de 0 a 65535 para que se comporte de la misma manera que el ADC en otros microcontroladores MicroPython.
Tiene cinco canales ADC, pero solo cuatro son accesibles en los GPIO: GPIO26, GPIO27, GPIO28 y GPIO29.
Los primeros tres GPIO (26, 27 y 28) se pueden usar para leer el voltaje de los periféricos, mientras que GPIO29 se puede utilizar para medir el nivel de voltaje de la fuente de alimentación VSYS en la placa Raspberry Pi Pico (VSYS es el voltaje de entrada que alimenta la placa).
El quinto canal ADC está conectado a un sensor de temperatura incorporado.
En resumen, aquí están las características clave de los pines analógicos de la placa Raspberry Pi Pico:
- Resolución de 12 bits : transforma una señal analógica en un valor entre 0 y 4095; luego, micropython transforma este número en un rango de 0 a 65535;
- 4 canales ADC en GPIO externos;
- Los GPIO 26, 27 y 28 se pueden utilizar para leer el voltaje de salida de los periféricos;
- GPIO29 puede medir el voltaje de entrada que alimenta la placa (VSYS) ;
- Hay un quinto canal ADC que está conectado a un sensor de temperatura interno .
Identifica los pines del ADC en tu placa Raspberry Pi Pico. Están resaltados en verde oscuro.


Esquemático
Antes de continuar, conecta un potenciómetro a tu placa Raspberry Pi Pico. Puedes conectar el pin de datos a cualquier pin del ADC. Usaremos ADC0 en GPIO 26.
Piezas necesarias
Aquí hay una lista de las piezas que necesitas para construir el circuito:
- Raspberry Pi Pico W
- Potenciómetro
- Tablero de circuitos
- cables puente
Diagrama esquemático de Raspberry Pi Pico
Puedes utilizar el siguiente diagrama como referencia para conectar el potenciómetro a la placa Raspberry Pi Pico.

En este ejemplo, estamos usando
GPIO26
para leer valores analógicos del potenciómetro, pero puede elegir cualquier otro GPIO que admita ADC.
Script: Raspberry Pi Pico lee entradas analógicas
El siguiente código para Raspberry Pi Pico lee valores analógicos de GPIO 26 e imprime los resultados en el Shell.
# Complete project details at https://RandomNerdTutorials.com/raspberry-pi-pico-analog-inputs-micropython/
from machine import Pin, ADC
from time import sleep
pot = ADC(Pin(26))
while True:
pot_value = pot.read_u16() # read value, 0-65535 across voltage range 0.0v - 3.3v
print(pot_value)
sleep(0.1)
Cómo funciona el código
Este código simplemente lee los valores del potenciómetro e imprime esos valores en MicorPython Shell.
Para leer entradas analógicas, importe la clase ADC
además de la clase Pin
en el módulo machine.
También importamos el método sleep
from machine import Pin, ADC
from time import sleepLuego, crea un objeto ADC llamado pot en
GPIO26
, que es el GPIO al que está conectado el potenciómetro.
pot = ADC(Pin(26))while, lee el valor del potenciómetro y guárdalo en la variable pot_value.Para leer el valor del potenciómetro, simplemente usa el método
read_u16() en el objeto potEsto entregará un valor entre 0 y 65.535 dentro de un rango de voltaje de 0 a 3,3 V.
pot_value = pot.read_u16() # read value, 0-65535 across voltage range 0.0v - 3.3vprint(pot_value)sleep(0.1)Demostración
Guarda el código en tu placa Raspberry Pi Pico usando
Thonny IDEo cualquier otro IDE de MicroPython de su elección.
Sigue las siguientes instrucciones si está utilizando Thonny IDE y Copia 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 .

Guarda el archivo con el siguiente nombre: main.py. Sobrescribe 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 ordenador). Haz clic en el botón verde “Ejecutar script actual” o pulsa F5.

Gira el potenciómetro y observe cómo cambian los valores en el shell de MicroPython.

El valor máximo que puede obtener es 65535 y el valor mínimo es 0.

Concluyendo
En este tutorial, aprendiste sobre la lectura analógica con la Raspberry Pi Pico. Tiene cinco canales ADC de 12 bits, cuatro de los cuales son accesibles a través de sus GPIO, y el quinto canal está conectado a un sensor de temperatura interno.
Leer el voltaje en un GPIO usando el firmware MicroPython es tan simple como usar la función read_u16() en un objeto ADC. Esto le dará un valor entre 0 y 65535 en un rango de voltaje entre 0,0 V y 3,3 V.
Preguntas frecuentes
¿Cómo leo un valor analógico con la Raspberry Pi Pico?
Con MicroPython, leyendo uno de los pines ADC de la placa. El ejemplo del tutorial usa un potenciómetro, pero lo aprendido se aplica a cualquier sensor o periférico analógico.
¿Es muy distinto programar la Pico que un Arduino o un ESP32?
No. Si ya se programa Arduino, ESP32 o ESP8266 con MicroPython, programar la Raspberry Pi Pico resulta bastante similar; cambian los nombres de los pines y poco más.
¿Qué necesito para el ejemplo de lectura analógica?
Una Raspberry Pi Pico con el firmware de MicroPython instalado, un potenciómetro y los cables para conectarlo según el diagrama esquemático que incluye el tutorial.
¿Cuántos pines analógicos tiene la Raspberry Pi Pico?
La Pico dispone de varios pines ADC, y hay que usar uno de esos para leer señales analógicas: los GPIO normales solo distinguen entre alto y bajo.
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