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板上的微控制器。


Arduino 高级I/O函数


或者,你可以通过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

  }