Arduino - 读取模拟电压

此示例将向您展示如何读取模拟引脚 0 上的模拟输入。输入从 analogRead() 转换为电压,并打印到 Arduino 软件 (IDE) 的串行监视器。

所需组件

您将需要以下组件 −

  • 1 × 面包板
  • 1 × Arduino Uno R3
  • 1 × 5K 可变电阻器(电位器)
  • 2 ×跳线

步骤

按照电路图,将组件连接到面包板上,如下图所示。

Analog Breadboard

电位器

电位器(或电位器)是一种简单的机电换能器。它将输入操作器的旋转或线性运动转换为电阻变化。这种变化(或可以)用于控制任何东西,从高保真系统的音量到大型集装箱船的方向。

我们所知道的电位器最初被称为变阻器(本质上是可变线绕电阻器)。现在可用的电位器的种类相当惊人,对于初学者(尤其是初学者)来说,确定哪种类型适合给定的任务可能非常困难。几种不同的电位器类型,都可以用于相同的任务,这让工作变得更加困难。

电位器

左侧的图像显示了电位器的标准示意图符号。右侧的图像是电位器。

草图

在您的计算机上打开 Arduino IDE 软件。使用 Arduino 语言编码将控制您的电路。单击新建打开一个新的草图文件。

草图

Arduino 代码

/*
ReadAnalogVoltage
读取引脚 0 上的模拟输入,将其转换为电压,
并将结果打印到串行监视器。
可以使用串行绘图仪(工具 > 串行绘图仪菜单)进行图形表示
将电位器的中心引脚连接到引脚 A0,将外部引脚连接到 +5V 和接地。
*/

// 按下重置时,设置例程运行一次:

void setup() {
	// 以每秒 9600 位初始化串行通信:
   Serial.begin(9600);
}

// 循环例程会永远重复运行:

void loop() {
    // 读取模拟引脚 0 上的输入:
    int sensorValue = analogRead(A0);
    // 将模拟读数(范围从 0 - 1023)转换为电压(0 - 5V):
    float voltage = sensorValue * (5.0 / 1023.0);
    // 打印出您读取的值:
    Serial.println(voltage);
}

需要注意的代码

在下面给出的程序或草图中,您在设置函数中要做的第一件事是使用行 − 开始以每秒 9600 位的速度在电路板和计算机之间进行串行通信。

Serial.begin(9600);

在代码的主循环中,您需要建立一个变量来存储来自电位器的电阻值(介于 0 和 1023 之间,非常适合 int 数据类型)−

int sensorValue = analogRead(A0);

要将值从 0-1023 更改为与引脚读取的电压相对应的范围,您需要创建另一个变量(浮点数),然后进行一些计算。要将数字缩放到 0.0 到 5.0 之间,请将 5.0 除以 1023.0,然后将其乘以 sensorValue −

float voltage= sensorValue * (5.0 / 1023.0);

最后,您需要将此信息打印到串行窗口。您可以在代码的最后一行使用命令 Serial.println() 执行此操作 −

Serial.println(voltage)

现在,通过单击顶部绿色栏右侧的图标或按 Ctrl+Shift+M,在 Arduino IDE 中打开串行监视器。

串行监视器

结果

您将看到从 0.0 到 5.0 的稳定数字流。当您转动电位器时,值将发生变化,与引脚 A0 处的电压相对应。