函数的作用:
配置用于模拟输入的基准电压/参考电压(即输入范围的最大值)。
在嵌入式应用中,引脚获取模拟电压值之后将根据参考电压将模拟值转换到0~1023
括号内的参数可以为:
-
DEFAULT:默认5V或3.3V为基准电压。
-
INTERNAL:在ATmega168和ATmega328上以1.1V为基准电压,以及在ATmega8上以2.56V为基准电压(Mega2560无此选项)
-
INTERNAL1V1:以1.1V为基准电压(此选项仅针对Mega2560)
-
INTERNAL2V56:以2.56V为基准电压(此选项仅针对Mega2560)
-
EXTERNAL:以AREF引脚(0至5V)的电压作为基准电压。
返回值:无
注意事项:
改变基准电压后,之前从analogRead()读取的数据可能不准确。
思考!
初步了解了analogReference函数,现在让我们回想以前的通过LM35测量温度那个项目。
如果我们用
analogReference(INTERNAL);
调用arduino板子内部1.1V基准,从LM35读取的温度数值会不会得到比原来更精细的温度变化~~~
最终代码:
void setup() {
Serial.begin(9600); //使用9600速率进行串口通讯
analogReference(INTERNAL); //调用板载1.1V基准源
}
void loop() {
int n = analogRead(A0); //读取A0口的电压值
double vol = n * (1.1 / 1024.0*100); //使用双精度浮点数存储温度数据,温度数据由电压值换算得到
Serial.println(vol); //串口输出温度数据
delay(1000); //等待1秒,控制刷新速度
}
网友评论