举例说明Arduino中模拟读取()函数

336 阅读2分钟

有时,我们必须从传感器中获取模拟值的输入,如找出房间的温度,输入值是模拟的。这些值可以由Arduino从其特定的引脚读取,这些值可以用于进一步使用。但是在理解analogRead()之前,我们必须了解什么是模拟值?模拟值总是从负无穷到正无穷变化,它不像数字值那样只限于0和1。

在上面的讨论中,我们举了一个室温的例子,室温可以是35度或10度。它并不限制室温应该是0或1。这些类型的值被称为模拟值。在这篇文章中,我们将详细解释analogRead()函数,在它的帮助下我们可以在Arduino中获取模拟输入值。

什么是Arduino中的analogRead()函数?

在Arduino中,有一个内置的函数可以从其专门用于模拟值的引脚中获取模拟值的输入。在Arduino Uno中,引脚A0到A5被用来获取模拟信号的输入值,这些引脚有一个预装的ADC(模数转换器),它将模拟信号转换为数字信号,从而可以被机器读取。ADC读取不断变化的电压,并将模拟信号从0转换为1023,然后将这个值传达给机器。

例子:Arduino中的analogRead()

考虑一下下面的Arduino代码。

void setup() {
Serial.begin(9600);
}
void loop() {
int in=analogRead(A0);
Serial.println(in);
delay(5000);
}

解释一下:我们声明了一个整数变量 "in",并使用analogRead()函数,存储来自A0引脚的模拟输入值,然后使用9600波特率的串行通信在串行显示器上显示该值。

在最后一条语句中,我们使用delay的函数来产生一个5秒的延迟,以便输出可以被读取。我们在A0引脚上取一个可变电阻的输入,并显示其输出。

硬件组装

这方面的电路包含以下元件。

  • 1KΩ的可变电阻器
  • 跳线--公对公
  • Arduino Uno
  • 面包板

将电位器的一端与Arduino的5V引脚相连,另一端的终端在跳线的帮助下与地线相连。将电位器的中间终端与Arduino的A0针脚连接。

电路图将是这样的:

电路将看起来像这样。

上述电路的串行监控输出是:

我们也可以在串行绘图仪上直观地看到输出。

当我们改变可变电阻的值时,A0引脚的值就会发生变化,这可以在串行监视器和串行绘图仪上看到。

结论

analogRead()是一个用于从模拟引脚读取连续值的函数,然后通过使用电路中已有的ADC电路将其转换为数字。在这篇文章中,我们演示了一个例子来解释Arduino中模拟读取()函数的使用。