这次我们利用片内ADC测量电压,做一个串口输出的电压表。
首先了解一下Arduino UNO的ADC情况。
Arduino UNO拥有6路模拟输入:标号A0至A5,每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为0到5V,可以通过AREF调整输入上限。AREF:模拟输入信号的参考电压。【文献1】
分辨率是ADC的一个重要指标,一般以位数来说明,比如为N位,就是将参考电压分成2的N次方份,每一份即为可以测量的最小变化量。Arduino UNO的ADC为10位,默认参考电压为5V,则可分辨的最小变化量为0.00488V,约为0.005V。
由上面可知,可测量的最小变量由分辨率和参考电压决定。Arduino的片内ADC均为10位,当我们需要测量更小的最小变量时,可以通过更改AREF管脚的电压来改变参考电压。
硬件方面,和第四节一样,我们在Arduino UNO实验板上添加"POT-HG"电位器,并将其中间端接至A0口,如图1所示。此处需要注意,AREF需要接至+5V。
软件方面,我们打开Arduino IDE自带例程"AnalogReadSerial",如图2所示。
需要将例程作部分修改,修改后的程序如下所示。
int sensorValue=0;//AD转换后的数字量
float float_sensorValue;//把10位数字量换算成浮点电压量
void setup() {
}
void loop() {
}