這篇文章來源于DevicePlus.com英語網(wǎng)站的翻譯稿。
本文最初發(fā)布在deviceplus.jp網(wǎng)站上,而后被翻譯成英語。
前言
使用數(shù)字輸入,可以將5V讀取為“HIGH”,將0V讀取為“LOW”??梢酝ㄟ^狀態(tài)來判斷開關(guān)是否已導(dǎo)通。但是,實際上電壓不只是5V和0V,而是各種各樣。例如,一節(jié)AA電池的電壓為1.5V,日本家用插座的電壓為100V。
Arduino支持模擬輸入,以能夠讀取這些不同的電壓。利用模擬輸入功能,能夠讀取逐漸變化的電子元器件的狀態(tài)。例如,使用“電位器”可以調(diào)節(jié)亮度或音量,也可以從溫度傳感器獲取當(dāng)前溫度。
本文是本系列文章的最后一篇,將介紹使用“電位器”進(jìn)行模擬輸入的方法。
將模擬值轉(zhuǎn)換為數(shù)字值
實際的電壓不是像1V或5V這樣的精確值,而是像5.01342…V這樣的無理數(shù),其小數(shù)點后的數(shù)字是無限不循環(huán)的。這樣的值是無法通過計算機(jī)直接處理的。因此,在電子電路中,會使用一種稱為“AD轉(zhuǎn)換器”的機(jī)制將模擬值轉(zhuǎn)換為數(shù)字值,以便它們可以由計算機(jī)處理。Arduino作為標(biāo)配搭載了AD轉(zhuǎn)換器,可以讀取模擬電壓值并將其轉(zhuǎn)換為數(shù)字值。
AD轉(zhuǎn)換器會將對象電壓等分。對于Arduino Uno而言,可以讀取0-5V范圍內(nèi)的電壓,并會將這些0-5V的電壓值分成1023等份。AD轉(zhuǎn)換器會將讀取到的模擬電壓值轉(zhuǎn)換為最接近等分值的值。例如,如果電壓為3V,則“614”是最接近的值。這個值將發(fā)送給Arduino使用。
讀取到的多達(dá)1023個的整數(shù)值將會用于程序處理。但是,輸入值不是電壓值。如果想知道電壓值,可以進(jìn)行如下計算:
例如,如果來自AD轉(zhuǎn)換器的值為“614”,則除以1023再乘以5即可得到約3V。
Arduino的模擬輸入
要使用Arduino Uno的數(shù)字輸入功能時,有從A0到A5的6個引腳可用。通過將電子元器件連接到這些引腳上,即可讀取施加了多少電壓。但是,引腳A4和A5也用于稱為“I2C”的數(shù)字通信。請注意,在連接傳感器或顯示器等使用I2C數(shù)字通信的電子元器件時,這些引腳不能用于模擬輸入。
可以調(diào)節(jié)電壓的電位器
“電位器”是一個可以用來調(diào)節(jié)音量或照明亮度的電子部件。在電位器內(nèi)部配有電阻元件,并有在電阻元件上移動的引腳。通過移動引腳可以改變電阻。
電位器通常會配有三個引腳。左右兩側(cè)的引腳安裝在電阻器的兩端。中間的引腳可以在電阻元件上移動。如果將中間引腳向右移動,則左側(cè)和中間引腳之間的電阻會增加。反之,如果將中間引腳向左移動,則左側(cè)和中間引腳之間的電阻會減小。
在上圖中,電阻元件是線性的,但在旋轉(zhuǎn)式的電位器中,內(nèi)部電阻元件是圓形的。盡管形狀不同,但它們的工作原理基本相同。
Arduino的模擬輸入使用電壓的變化進(jìn)行輸入。但是,由于電位器的電阻會發(fā)生變化,因此無法通過將其直接連接到Arduino來讀取電位器的變化情況。因此,需要將電阻的變化轉(zhuǎn)換為電壓的變化。將電源和GND分別連接到電阻的左右引腳。這樣,中間引腳的電壓將根據(jù)引腳的位置發(fā)生變化。例如,假設(shè)將GND連接到左側(cè)引腳,將電源(5V)連接到右側(cè)引腳,當(dāng)中間引腳向右移動,電壓會升高,向左移動時,電壓會降低。此外,由于左端為0V,右端為5V,因此可以使電壓值在0V到5V的范圍內(nèi)變化。
只要將這個中間引腳與Arduino的模擬輸入引腳相連接,就可以通過操作電位器來更改輸入。
通過電位器實現(xiàn)模擬輸入
現(xiàn)在,我們嘗試使用電位器進(jìn)行模擬輸入。需要準(zhǔn)備好以下電子部件:
電位器
電位器會記錄可調(diào)范圍內(nèi)的電阻值。作為Arduino輸入使用時,最好使用10kΩ的電位器。另外,如果電位器的旋轉(zhuǎn)軸配有旋鈕會更容易操作。
鱷魚夾線
用于連接電位器,使用時用鱷魚夾夾住電位器的引腳。點擊鏈接可以看到我們使用的是2條紅線和2條黑線配套銷售的產(chǎn)品。
所需部件準(zhǔn)備好以后,按如下方式連接。由于電位器無法插入面包板,因此需要使用鱷魚夾線將其直接連接到Arduino。此時需要注意的是,要確保鱷魚夾的金屬部分不要接觸相鄰的夾子部分。
編寫以下程序:
要確認(rèn)模擬輸入引腳的連接狀態(tài)時,請在第11行的“analogRead()”中指定對象引腳。這樣,即可使用0到1023的值輸入引腳電壓值。如果想知道電壓,請按第13行所示進(jìn)行計算并將計算值轉(zhuǎn)換為電壓值。
將程序發(fā)送給Arduino并顯示串行監(jiān)視器。
您可以看到,經(jīng)AD轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字的值顯示在“Value:”之后,經(jīng)計算并轉(zhuǎn)換為電壓的值顯示在“Volt:”之后,當(dāng)轉(zhuǎn)動電位器時,值也隨之變化。
總結(jié)
在本系列連載文章中,我們介紹了Arduino基礎(chǔ)的用法。歡迎您根據(jù)這些內(nèi)容來嘗試制作各種電子作品或者讓一些電子部件動起來。非常感謝您連續(xù)關(guān)注這個長達(dá)半年的連載系列,謝謝!
審核編輯:湯梓紅
-
電位器
+關(guān)注
關(guān)注
14文章
1017瀏覽量
67828 -
電壓
+關(guān)注
關(guān)注
45文章
5703瀏覽量
117682 -
Arduino
+關(guān)注
關(guān)注
189文章
6497瀏覽量
190538
發(fā)布評論請先 登錄
使用Arduino計算直流電壓的方式

arduino讀取電壓模擬值
使用Arduino讀取MPU6050數(shù)據(jù)的程序免費下載

使用Arduino mega 2560讀取PS2無線手柄信號并控制小車運動

讀取負(fù)張力的Arduino示波器的想法

用Arduino讀取DHT22(或DHT11)

讓Arduino充當(dāng)玻璃容器中的控制器和傳感器讀取器

用Arduino庫來讀取DHT11濕度和溫度傳感器數(shù)據(jù)

Arduino HDC2010讀取數(shù)據(jù)和舒適區(qū)警報

Arduino之如何逐行讀取SD卡文本文件

如何將光敏電阻連接到Arduino板并讀取電壓

評論