close

Arduino有提供類比輸入,也就是具有ADC(analog to digital converter)轉換功能的接腳,

如下圖右下角紅框所示,從A0到A5,共6個類比輸入:

Arduino UNO analog input

這幾個接腳能提供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腳讀取。

這是接線照片:

Arduino analog input 00001

Arduino analog input 00002

 

當VR轉到最右邊食讀值為0:

2021-07-24

 

VR在中間左右調整時讀值會變動:

2021-07-24 (1)

 

VR調整到最右邊時讀值為1023:

2021-07-24 (2)

 

也可以將VR的5V接腳改接到3.3V,再把AREF也接到3.3V,此時讀值範圍就是0到3.3V。

arrow
arrow
    創作者介紹
    創作者 呂阿谷 的頭像
    呂阿谷

    呂阿谷的部落格

    呂阿谷 發表在 痞客邦 留言(0) 人氣()