Arduino analogRead() 读取模拟引脚数据

发布时间 2023-08-10 23:44:40作者: wonderhoi

analogRead() 用于从 Arduino 的模拟输入引脚读取数值。

在 Arduino UNO 上,除了 14 个数字输入/输出引脚,还带有 6 个模拟引脚,即板上编号带 A 的引脚。引脚 A0 到 A5 被用来获取模拟信号的输入值,这些引脚有一个预装的 ADC(Analog-to-Digital Converter,模数转换器),它将模拟信号转换为数字信号,从而可以被机器读取。

ADC 读取不断变化的电压,并将模拟信号从 0 转换为 1023,然后将这个值传达给机器。换句话说,我们可以将 5V 等分成 1024 份。0V 的输入信号对应着数值 0,而 5V 的输入信号对应着 1023。

Arduino 读取一次模拟输入需要消耗 100 微秒的时间,最大频率为 10000HZ。

注意:在模拟输入引脚没有任何连接的情况下,用 analogRead() 读取该引脚,这时获得的返回值为不固定的数值。这个数值可能受到多种因素影响,如将手靠近引脚也可能使得该返回值产生变化。

示例代码:

// 传感器数据传输引脚连接在Arduino的A0引脚
// 传感器另外两个引脚分别连接在Arduino的5V和GND引脚

// 变量sensorValue用来存储模拟输入信号
int sensorValue = 0;           

void setup()
{
  // Arduino串口通讯初始化 
  Serial.begin(9600); 
}

void loop()
{
  // 读取引脚A0输入信号
  sensorValue = analogRead(A0);   

  // 将A0输入信号转换为0-1023之间的数值
  // 并且通过串口监视器显示 
  Serial.println(sensorValue); 
}