【用Proteus仿真Arduino】 03 -ADC模數轉換器

3.1 可以調節明亮度的LED燈

3.1.1 關於模數轉換

ADC是Analog-to-Digital Converter的縮寫,即模擬/數字轉換器,可以實現將模擬量轉換爲數字量的電子器件。

ADC是模擬量與數字量的橋樑,因爲計算機等只能處理數字量。

Arduino UNO擁有6路模擬輸入:標號A0至A5,每一路具有10位的分辨率(即輸入有1024個不同值),默認輸入信號範圍爲0到5V,可以通過AREF調整輸入上限。AREF:模擬輸入信號的參考電壓。

3.1.2 繪製原理圖

  1. 創建Arduino UNO實驗板原理圖
  2. 添加電位器(滑動變阻器、可調電阻),在元器件搜索欄中輸入“POT-HG”,如圖所示。
    在這裏插入圖片描述
  3. 在原來的Arduino UNO實驗板上添加"POT-HG",並將中間接線端接至A0口,添加“LED”燈,將它正極連接到IO9,負極連接到10Ω電阻,修改後的原理圖如圖所示。
    在這裏插入圖片描述

3.1.3 編寫代碼

int sensorPin = A0;    // select the input pin for the potentiometer
int ledPin = 9;      // select the pin for the LED
int sensorValue = 0;  // variable to store the value coming from the sensor 
void setup() {
  // declare the ledPin as an OUTPUT:
  pinMode(ledPin, OUTPUT);  
}
 
void loop() {
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);    
  analogWrite(ledPin, sensorValue/4);          
}

3.1.4 仿真

由於Arduino的ADC爲10位,數字量的變化範圍爲0至1023,而Arduino的PWM的輸出變化範圍爲0至255,所以將獲得ADC除以4,就轉換至PWM輸出。
開始仿真,並調節電位器,電阻越大,LED燈較暗;電阻較小時,LED燈較亮

3.1.5 演示:

3.1.6 參考文獻

模仿地址

3.2 電壓表

3.2.1 分辨率

分辨率是ADC的一個重要指標,假如它的分辨率爲N位,就是將參考電壓分成2的N次方份,每一份即爲可以測量的最小變化量。Arduino UNO的ADC爲10位,默認參考電壓爲5V,則可分辨的最小變化量爲:
AREF210=51024=0.00488V0.005V \frac{AREF}{2^{10}}=\frac{5}{1024}=0.00488V,約爲0.005V。

可知,可測量的最小變量由分辨率和參考電壓決定。Arduino的片內ADC均爲10位,當我們需要測量更小的最小變量時,可以通過更改AREF管腳的電壓來改變參考電壓。

3.2.2 原理圖

硬件方面,和第四節一樣,我們在Arduino UNO實驗板上添加"POT-HG"電位器,並將其中間端接至A0口,AREF需要接至+5V,在”POT-HG”兩端接了一個virtual instrument(虛擬儀器)“DC Voltmeter,可以直觀觀察電壓變化。
在這裏插入圖片描述

3.2.3 程序代碼

int sensorValue=0;//AD轉換後的數字量
float float_sensorValue;//把10位數字量換算成浮點電壓量
void setup() {
  	Serial.begin(9600);  //定義串口波特率爲9600
}
void loop() {
  	sensorValue = analogRead(A0);  //讀取A0口電壓值
   	float_sensorValue=(float)sensorValue/1023*5.00;  //換算爲浮點電壓值
  	Serial.println(float_sensorValue,2);  //保留兩位小數發送數據
  	delay(1000);        // 一秒刷新一次
}

編譯好了之後,下面我們進行仿真。調節電位器的阻值,觀察串口輸出的數據,並與虛擬電壓表進行比較。不同阻值下,串口輸出的電壓值不同

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章