Volver

Lectura de sensores analógicos en Raspberry Pi Pico con Velxio

Introducción

¡Bienvenido a otro tutorial práctico en el blog de Velxio! Hoy nos adentramos en el ADC (Convertidor Analógico-Digital) de la Raspberry Pi Pico. La Pico es una placa pequeña pero potente, y una de sus características más interesantes es la capacidad de leer voltajes analógicos, perfecta para sensores, potenciómetros y más. En este ejemplo, leeremos tres señales analógicas externas de potenciómetros y también obtendremos el valor del sensor de temperatura interno. Todo esto se ejecuta directamente en tu navegador con la simulación de precisión SPICE de Velxio.

Diagrama del circuito de pico-adc-read en el lienzo del simulador de Velxio

Explicación del circuito

Veamos el circuito. Tenemos una Raspberry Pi Pico (la variante Nano RP2040 en Velxio) conectada a dos potenciómetros y un LED.

Componentes

Detalles del cableado

Nota: Los pines ADC de la Pico toleran 3.3V, por lo que usamos la fuente de 3.3V. Los potenciómetros actúan como divisores de tensión, proporcionando un voltaje variable de 0 a 3.3V en su terminal central.

Explicación del código

Ahora examinemos el código. Está escrito en C++ estilo Arduino para la Raspberry Pi Pico.

// Raspberry Pi Pico — Prueba de lectura ADC
// Lee valores analógicos de A0-A2 (GPIO26-28) y del sensor de temperatura interno

void setup() {
  Serial.begin(115200);
  delay(500);
  Serial.println("=== Lectura ADC Pico ===");
  Serial.println("A0=GP26  A1=GP27  A2=GP28  Temp=interno");
  Serial.println("Resolución de 12 bits (0-4095), ref. 3.3V");
  Serial.println();

  analogReadResolution(12);
}

void loop() {
  int a0 = analogRead(A0);
  int a1 = analogRead(A1);
  int a2 = analogRead(A2);

  // Sensor de temperatura interno en el canal 4
  // T = 27 - (V - 0.706) / 0.001721
  int tempRaw = analogRead(A3); // Canal 4 mapeado a A3 por el núcleo de la Pico
  float voltage = tempRaw * 3.3f / 4095.0f;
  float tempC = 27.0f - (voltage - 0.706f) / 0.001721f;

  Serial.print("A0: "); Serial.print(a0);
  Serial.print("  A1: "); Serial.print(a1);
  Serial.print("  A2: "); Serial.print(a2);
  Serial.print("  Temp: "); Serial.print(tempC, 1); Serial.println(" C");

  delay(1000);
}

Puntos clave

Conceptos clave

Errores comunes y consejos de depuración

Extensiones sugeridas

¡Pruébalo tú mismo!

¿Listo para experimentar? Abre el ejemplo en vivo en Velxio y empieza a modificar el circuito o el código. Haz clic en el enlace de abajo para lanzar la simulación directamente en tu navegador.

Lanzar el ejemplo de lectura ADC de la Pico en Velxio

¡Feliz experimentación!


Compartir en:
David Montero

Escrito por

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

Artículos relacionados


Artículo anterior
Demo Multi-Protocolo Pico: Serial, I2C, SPI y ADC en RP2040
Artículo siguiente
Bucle de retorno SPI en Pico: Prueba la comunicación serie de tu RP2040