📜  Arduino-高级I / O功能

📅  最后修改于: 2020-11-05 03:32:22             🧑  作者: Mango


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

AnalogReference()函数

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

  • 默认-默认模拟参考电压为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);

类型-可以使用以下任意类型(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
}