📜  Arduino-读取模拟电压

📅  最后修改于: 2020-11-05 03:39:38             🧑  作者: Mango


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

所需组件

您将需要以下组件-

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

程序

遵循电路图,并如下图所示将面包板上的组件连接起来。

模拟面包板

电位器

电位计(或电位计)是一种简单的机电转换器。它将来自输入运算符器的旋转或线性运动转换为电阻的变化。此更改可(或可以)用于控制从高保真音响系统的体积到大型集装箱船的方向的任何事物。

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

电位器

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

草图

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

草图

Arduino代码

/*
   ReadAnalogVoltage
   Reads an analog input on pin 0, converts it to voltage, 
   and prints the result to the serial monitor.
   Graphical representation is available using serial plotter (Tools > Serial Plotter menu)
   Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
*/

// the setup routine runs once when you press reset:

void setup() {
   // initialize serial communication at 9600 bits per second:
   Serial.begin(9600);
}

// the loop routine runs over and over again forever:

void loop() {
   // read the input on analog pin 0:
   int sensorValue = analogRead(A0);
   // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
   float voltage = sensorValue * (5.0 / 1023.0);
   // print out the value you read:
   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处的电压。