Correo: [email protected] - Teléfono: +56979962128

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.

Lecturas analógicas de Raspberry Pi Pico con MicroPython

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.

Potenciómetro Pico de Raspberry Pi

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.

Distribución de pines de Raspberry Pi Pico W
 
Distribución de pines de Raspberry Pi Pico
 

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
Puedes encontrar todos estos productos en www.MCIELECTRONICS.CL

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.

Diagrama esquemático del potenciómetro Pico de Raspberry Pi (Fritzing)
   

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 sleep
 



Luego, crea un objeto ADC llamado pot en

GPIO26

, que es el GPIO al que está conectado el potenciómetro.

pot = ADC(Pin(26))
En el bucle 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 pot
Esto 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.3v
  Entonces, imprime el valor de pot
print(pot_value)
Al final, agrega una demora de 100 ms.
sleep(0.1)
 

Demostración

Guarda el código en tu placa Raspberry Pi Pico usando  

Thonny IDE

  o 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.

Thonny IDE Raspberry Pi Pico Leer valores analógicos

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

Guardar archivos en Raspberry Pi Pico Thonny IDE

Guarda el archivo con el siguiente nombre:  main.py. Sobrescribe cualquier archivo existente con el mismo nombre.

Micropython guarda el archivo main.py en Thonny IDE
Nota:

 Cuando nombras un archivo

main.py

La 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.

Código de ejecución de Thonny IDE

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

 
Potenciómetro de ajuste de lectura analógica Raspberry Pi Pico
 

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

 
Shell de Micropython para lectura de valores analógicos de Raspberry Pi Pico
 

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: