📜  Arduino AnalogRead()

📅  最后修改于: 2020-12-27 03:14:57             🧑  作者: Mango

Arduino模拟读()

AnalogRead()函数从特定Arduino板上存在的指定模拟引脚读取值。

Arduino板上的ADC(模数转换器)是一个多通道转换器。它将输入电压和工作电压映射在0到1023之间。工作电压可以是5V或3.3V。

0到1023之间的值是整数值。也可以写为0到(2 ^ 10)-1。

在板上(UNO,Mega,Mini和Nano)读取模拟输入信号的时间约为100微秒或0.0001秒。

因此,模拟输入的最大读取速率约为每秒10000次。

让我们讨论一些Arduino板的工作电压和分辨率。

  • Arduino UNO,Mini,Mega,Nano,Leonardo和Micro的工作电压为5V,分辨率为10位
  • MKR系列主板,Arduino Due和零的工作电压为3 V,分辨率为12位

更改输入电压和分辨率

  • 在特定板上,我们可以使用analogReference ()函数更改输入电压

AnalogReference()

用于模拟输入的参考电压由analogReference()配置。

语法为:

analogReference (type)

注:AREF引脚上的外部基准电压不应超过5V或小于0V。在AREF引脚上工作时,我们需要将模拟参考设置为外部。否则,可能会损坏Arduino板上的微控制器。

  • 我们只能使用AnalogReadResolution()函数更改MKR系列,零位和到期板的分辨率

AnalogReadResolution()

MKR系列,零到期具有12位的ADC分辨率。

AnalogReadResolution()将从analogRead()函数返回0到4095之间的整数值。

语法为:

analogReadResolution (bits)

哪里,

:表示由AnalogRead()函数返回的分辨率位。我们可以在1到32之间设置位的值。

注意:如果指定了比电路板功能高的分辨率位,则Arduino将用零填充额外的位。例如,analogReadResolution(14)上面的函数将给出一个14位的近似数字,其中前两个12位(包括ADC读数)和后两个填充位。

AnalogRead()的语法

语法为:

analogRead(pin)

哪里,

pin :包括要读取的特定模拟引脚的名称。

数据类型为int

未连接的模拟引脚也可以返回一些值。该值取决于我们在板上的手的位置以及附近其他模拟输入的位置。

代码示例

让我们通过一个例子来理解AnalogRead的概念。

考虑下面的代码:

  // Below is an example for the better understanding of the analogRead( ) function 
 int AnaPin = A3; // Analog pin A3 is specified here
int value = 0;  // variable declared to store the value read
void setup() 
{
  Serial.begin(9600);           //  It sets the serial rate at bps
}
void loop() 
{
  value = analogRead(AnaPin);  // It reads the input pin  
  Serial.println(value);          
}

上面的代码从指定的模拟引脚(AnaPin)读取电压并显示电压。