Arduino 读取模拟电压

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

必需的组件

你将需要以下组件:

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

程序

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

Arduino 读取模拟电压

电位器

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

我们知道电位器最初被称为变阻器(本质上是一个可变的绕线电阻)。现在可用的电阻器的种类现在相当惊人的,而初学者(特别是)可能很难确定哪种类型适合于给定的任务。一些不同的电阻器类型,都可以用于相同的任务,使得确定工作更难。

Arduino 读取模拟电压

左边的图像显示电阻器的标准原理图符号。右边的图像是电位器。

草图

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

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中的串口监视器。

Arduino 读取模拟电压

结果

你会看到一个从0.0到5.0的稳定的数字流。当你转动电位器时,这些值会改变,对应于引脚A0上的电压。