Arduino有提供類比輸入,也就是具有ADC(analog to digital converter)轉換功能的接腳,
如下圖右下角紅框所示,從A0到A5,共6個類比輸入:
這幾個接腳能提供1024階解析度的ADC,也就是從0-1023。
預設是Analog Reference是5V,所以解析度是5V/1024=0.0048828125V,約為4.88mV。
可以透過左上角的AREF腳來改變Analog Reference的電壓值,可以進一步提升解析度,
例如將AREF接到3.3V,解析度可以成為3.3V/1024=0.00322265625V,3.22mV。
此時要注意輸入電壓不藥超過3.3V以免輸入腳位損壞。
類比輸入為內建功能,不需要導入或開啟library即可使用。
範例程式如下:
const byte analogPin = A0;
int value;
void setup() {
Serial.begin(9600);
}
void loop() {
value = analogRead(analogPin);
Serial.println(value);
delay(1000);
}
程式第一行指定類比輸入的腳位,這裡用A0為輸入腳。
第二行指定value為整數。
loop主程式的第一行指定value為AnalogPin的讀值,
然後將此值每隔一秒輸出到serial port。
底下以一個VR(可變電阻)左右腳接到5V跟0V,中間輸出到A0腳讀取。
這是接線照片:
當VR轉到最右邊食讀值為0:
VR在中間左右調整時讀值會變動:
VR調整到最右邊時讀值為1023:
也可以將VR的5V接腳改接到3.3V,再把AREF也接到3.3V,此時讀值範圍就是0到3.3V。
留言列表