這次我們利用片內(nèi)ADC測(cè)量電壓,做一個(gè)串口輸出的電壓表。
首先了解一下Arduino UNO的ADC情況。
Arduino UNO擁有6路模擬輸入:標(biāo)號(hào)A0至A5,每一路具有10位的分辨率(即輸入有1024個(gè)不同值),默認(rèn)輸入信號(hào)范圍為0到5V,可以通過AREF調(diào)整輸入上限。AREF:模擬輸入信號(hào)的參考電壓。【文獻(xiàn)1】
分辨率是ADC的一個(gè)重要指標(biāo),一般以位數(shù)來說明,比如為N位,就是將參考電壓分成2的N次方份,每一份即為可以測(cè)量的最小變化量。Arduino UNO的ADC為10位,默認(rèn)參考電壓為5V,則可分辨的最小變化量為0.00488V,約為0.005V。
由上面可知,可測(cè)量的最小變量由分辨率和參考電壓決定。Arduino的片內(nèi)ADC均為10位,當(dāng)我們需要測(cè)量更小的最小變量時(shí),可以通過更改AREF管腳的電壓來改變參考電壓。
硬件方面,和第四節(jié)一樣,我們?cè)贏rduino UNO實(shí)驗(yàn)板上添加"POT-HG"電位器,并將其中間端接至A0口,如圖1所示。此處需要注意,AREF需要接至+5V。
軟件方面,我們打開Arduino IDE自帶例程"AnalogReadSerial",如圖2所示。
需要將例程作部分修改,修改后的程序如下所示。
int sensorValue=0;//AD轉(zhuǎn)換后的數(shù)字量
float float_sensorValue;//把10位數(shù)字量換算成浮點(diǎn)電壓量
void setup() {
}
void loop() {
}