Arduino - 高级 I/O 功能


在本章中,我们将学习一些高级的输入和输出函数。

函数

配置用于模拟输入的参考电压(即用作输入范围上限的值)。选项是 -

  • DEFAULT - 默认模拟参考电压为 5 伏(在 5V Arduino 板上)或 3.3 伏(在 3.3V Arduino 板上)

  • 内部- 内置参考,等于 ATmega168 或 ATmega328 上的 1.1 伏,以及 ATmega8 上的 2.56 伏(Arduino Mega 上不可用)

  • INTERNAL1V1 - 内置 1.1V 参考电压(仅限 Arduino Mega)

  • INTERNAL2V56 - 内置2.56V参考电压(仅限Arduino Mega)

  • 外部- 施加到 AREF 引脚的电压(仅限 0 至 5V)用作参考

AnalogReference() 函数语法

analogReference (type);

type - 可以使用以下任何类型(DEFAULT、INTERNAL、INTERNAL1V1、INTERNAL2V56、EXTERNAL)

请勿在 AREF 引脚上使用低于 0V 或高于 5V 的外部参考电压。如果您在 AREF 引脚上使用外部参考,则必须在调用AnalogRead()函数之前将模拟参考设置为 EXTERNAL 。否则,您会将有源参考电压(内部生成)和 AREF 引脚短路,可能会损坏 Arduino 板上的微控制器。

微控制器

或者,您可以通过 5K 电阻将外部参考电压连接到 AREF 引脚,从而允许您在外部和内部参考电压之间切换。

请注意,该电阻器将改变用作参考的电压,因为 AREF 引脚上有一个内部 32K 电阻器。两者充当分压器。例如,通过电阻施加的 2.5V 将在 AREF 引脚处产生 2.5 * 32 / (32 + 5) = ~2.2V。

例子

int analogPin = 3;// potentiometer wiper (middle terminal) connected to analog pin 3 
int val = 0; // variable to store the read value

void setup() {
   Serial.begin(9600); // setup serial
   analogReference(EXTERNAL); // the voltage applied to the AREF pin (0 to 5V only) 
      // is used as the reference.
}

void loop() {
   val = analogRead(analogPin); // read the input pin
   Serial.println(val); // debug value
}