|
Hi,大家好!經(jīng)過上一次的學(xué)習(xí),我們知道了如何獲取外部電器元件輸入的數(shù)字信號。這次我們將一起學(xué)習(xí)如何獲取外部電器元件輸入的模擬信號,也即連續(xù)信號。
和上一次同理,這次我們使用的元器件換成了一個模擬信號輸入器件,使用旋轉(zhuǎn)電位計代替上一次的按鍵開關(guān)。道理都是相通的,廢話不多說,讓我們直奔主題!
首先還是準(zhǔn)備階段,包括硬件和軟件兩方面。
硬件方面
arduino-read-analog-parts.jpg (180.41 KB, 下載次數(shù): 302)
下載附件
2015-12-19 22:02 上傳
圖片來源:Arduino 電路配件
具體包括如下:
- Arduino UNO電路板(1塊)
- 旋轉(zhuǎn)電位計(1個)
- 面包線(3根)
一共只有三種部件,比上一次還少!這次多了一個旋轉(zhuǎn)電位計,其實(shí)就是我們平時常見的旋轉(zhuǎn)開關(guān),此開關(guān)可以發(fā)出連續(xù)的模擬信號。其他部件不必多說。
軟件方面Arduino官方提供的IDE。
好!需要的就這些。下面我就開始連接電路!
連接電路
arduino-read-analog.jpg (305.94 KB, 下載次數(shù): 352)
下載附件
2015-12-19 22:02 上傳
圖片來源:Arduino UNO 連接旋轉(zhuǎn)電位計示意圖
直接用面包線把電位計連接到Arduino UNO電路板上,注意電位計的正負(fù)電源針腳不要接錯!
接下來是最后一步!
添加幾行代碼首先打開Arduino的IDE,新建一個Arduino項目窗口。
arduino-menu.jpg (9.87 KB, 下載次數(shù): 344)
下載附件
2015-12-19 22:02 上傳
圖片來源:Arduino官方IDE
完成之后,向其中添加如下代碼。
- // 對Arduino電路板或相關(guān)狀態(tài)進(jìn)行初始化方法
- void setup() {
- // 開啟串行通信,并設(shè)置其頻率為9600。
- // 如果沒有特別要求,此數(shù)值一般都為9600。
- Serial.begin(9600);
- }
- // 系統(tǒng)調(diào)用,無限循環(huán)方法
- void loop() {
- // 讀取針腳號為 A0 的模擬信號。
- // analogRead() 方法是模擬信號讀取方法。
- // 將模擬信號值存入名為 sensorValue 的整型變量。
- int sensorValue = analogRead(A0);
- // 將獲取的模擬信號值打印到串口顯示。
- Serial.println(voltage);
- }
復(fù)制代碼
好!總共所需要的代碼就這么多!如果你和大家一樣,一直跟隨我們的教程學(xué)習(xí),那么其實(shí)這里我們只出現(xiàn)了一個新面孔!沒錯,那就是analogRead()方法。在前面的教程中,我們還介紹過他的孿生兄弟,能猜到是誰嗎?就是analogWrite()方法。這兩個方法就像是孿生兄弟,前一個是讀取元器件輸入的模擬信號,后一個是向元器件寫入模擬信號。analogRead()方法調(diào)用時,需要輸入的參數(shù)是Arduino UNO電路板上的針腳號,此處我們獲取的是 A0 針腳上輸入的信號。
最后,我們只需要將程序燒入Arduino即可。
圖片來源:Arduino官方IDE的文件編輯菜單選項
根據(jù)上圖指示,點(diǎn)擊向右指向的箭頭圖標(biāo),將程序燒入。成功之后,點(diǎn)擊右上方的放大鏡圖標(biāo),打開串口調(diào)試窗口。此時你會看到,窗口在實(shí)時的更新獲取到的數(shù)據(jù)。旋轉(zhuǎn)電位計,窗口中的數(shù)據(jù)也會相應(yīng)發(fā)生改變。因?yàn)锳rduino UNO電路板上有一個模擬數(shù)字信號轉(zhuǎn)換器,俗稱ADC(analog-to-digital converter),此時讀到的數(shù)值會被轉(zhuǎn)換為0到1023之間,即analogRead()方法返回的值在0到1023之間。
總結(jié)打完收工!這次我們主要學(xué)習(xí)了如何獲取外部元器件輸入的模擬信號。這個功能的使用非常的常見,比如控制燈光的強(qiáng)弱,聲音的大小等等,都有可能會用的到。而實(shí)現(xiàn)這個想法,也只需要一個analogRead方法即可,已經(jīng)無法再簡單了!
下期預(yù)告至此呢,我們學(xué)習(xí)了數(shù)字信號的輸入輸出,模擬信號的輸入輸出。我們已經(jīng)具備了一定的基礎(chǔ)。接下來要做什么呢?嗯,接下來的小怪獸會逐漸強(qiáng)大!在前幾次學(xué)習(xí)中,我們用到了一個名為delay()方法,這個方法是系統(tǒng)類庫提供給我們的,拿來就能用。那么現(xiàn)在問題來了,為了讓以后的編程過程更靈活,如何在不使用這個方法的情況下實(shí)現(xiàn)時間延遲呢?嗯,下一次我們將挑戰(zhàn)這個問題!
ohcoder的系列精彩Arduino教程:
Arduino教程-初識Arduino(包含本教程目錄):http://www.zg4o1577.cn/bbs/dpj-41334-1.html
Arduino教程-開篇:http://www.zg4o1577.cn/bbs/dpj-41335-1.html
Arduino教程-點(diǎn)亮LED神燈:http://www.zg4o1577.cn/bbs/dpj-41336-1.html
Arduino教程-讓LED神燈閃爍:http://www.zg4o1577.cn/bbs/dpj-41337-1.html
Arduino教程-讓LED神燈亮度漸變:http://www.zg4o1577.cn/bbs/dpj-41338-1.html
Arduino教程-獲取輸入數(shù)字信號:http://www.zg4o1577.cn/bbs/dpj-41339-1.html
Arduino教程-獲取輸入模擬信號:http://www.zg4o1577.cn/bbs/dpj-41340-1.html
Arduino教程-另一種時間延遲:http://www.zg4o1577.cn/bbs/dpj-41331-1.html
Arduino教程-按鍵開關(guān):http://www.zg4o1577.cn/bbs/dpj-41341-1.html
Arduino教程-停止抖動!:http://www.zg4o1577.cn/bbs/dpj-41333-1.html
Arduino教程-拋棄外部電阻!:http://www.zg4o1577.cn/bbs/dpj-41332-1.html
Arduino教程-用按鍵開關(guān)計數(shù):http://www.zg4o1577.cn/bbs/dpj-41330-1.html
………后續(xù)持續(xù)更新中請打開:http://www.zg4o1577.cn/bbs/dpj-41334-1.html
|
|