返回

在树莓派Pico上使用Velxio读取模拟传感器

引言

欢迎来到Velxio博客的又一篇动手实践教程!今天,我们将深入探讨树莓派Pico的ADC(模数转换器)。Pico是一款功能强大的小型开发板,其最酷的特性之一就是能够读取模拟电压——非常适合传感器、电位器等设备。在本示例中,我们将读取三个电位器的外部模拟信号,并获取内部温度传感器的数值。这一切都可以在浏览器中通过Velxio的SPICE精确仿真来运行。

在Velxio仿真器画布上的pico-adc-read电路图

电路详解

让我们来看看这个电路。我们有一个树莓派Pico(在Velxio中为Nano RP2040变体),连接了两个电位器和一个LED。

组件

接线细节

注意:Pico的ADC引脚支持3.3V电压,因此我们使用3.3V电源。电位器充当分压器,在其滑动端提供0到3.3V的可变电压。

代码详解

现在我们来分析代码。代码采用Arduino风格的C++编写,适用于树莓派Pico。

// 树莓派Pico — ADC读取测试
// 读取A0-A2(GPIO26-28)的模拟值以及内部温度传感器

void setup() {
  Serial.begin(115200);
  delay(500);
  Serial.println("=== Pico ADC读取 ===");
  Serial.println("A0=GP26  A1=GP27  A2=GP28  温度=内部传感器");
  Serial.println("12位分辨率(0-4095),3.3V参考电压");
  Serial.println();

  analogReadResolution(12);
}

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

  // 内部温度传感器位于通道4
  // T = 27 - (V - 0.706) / 0.001721
  int tempRaw = analogRead(A3); // Pico核心将通道4映射到A3
  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("  温度: "); Serial.print(tempC, 1); Serial.println(" °C");

  delay(1000);
}

关键点

关键概念

常见问题与调试技巧

建议扩展

亲自尝试!

准备好实验了吗?在Velxio中打开实时示例,开始调整电路或代码。点击下方链接,即可在浏览器中启动仿真。

在Velxio上启动Pico ADC读取示例

祝您玩得开心!


分享到:
David Montero

作者

David Montero

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

GitHub velxio.dev

相关文章


上一篇
Pico 多协议演示:RP2040 上的串行、I2C、SPI 与 ADC
下一篇
Pico SPI 回环测试:验证你的 RP2040 串行通信