Arduino - 高级 I/O 函数

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

analogReference() 函数

配置用于模拟输入的参考电压(即用作输入范围顶部的值)。选项为 −

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

  • INTERNAL −内置参考电压,在 ATmega168 或 ATmega328 上等于 1.1 伏,在 ATmega8 上等于 2.56 伏(Arduino Mega 上不可用)

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

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

  • EXTERNAL − 施加到 AREF 引脚的电压(仅 0 至 5V)用作参考电压

analogReference() 函数语法

analogReference (type);

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

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

MicroController

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

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

示例

int analogPin = 3;// 连接到模拟引脚 3 的电位器电位器(中间端子)
int val = 0; // 变量以存储读取值

void setup() {
    Serial.begin(9600); // 设置串行
    analogReference(EXTERNAL); // 施加到 AREF 引脚的电压(仅 0 到 5V)
    // 用作参考。
}

void loop() {
    val = analogRead(analogPin); // 读取输入引脚
    Serial.println(val); // 调试值
}