1. 程式人生 > >【Arduino官方教程第零輯】基礎部分 2-2 模擬引腳

【Arduino官方教程第零輯】基礎部分 2-2 模擬引腳

模擬引腳

本文是對於Arduino晶片上模擬引腳的介紹。上面所說的Arduino晶片主要包括(Atmega8, Atmega168,Atmega328或Atmega1280)。

數模轉換電路

Arduino中使用的Atmega控制器都配有一個板載6通道數模轉換器,這個轉換器的精度為10bit,能夠返回0-1023的整數。儘管模擬引腳的主要功能是讀取模擬訊號,但是實際上和0-13號數字引腳一樣,模擬引腳也可以進行INPUT、OUTPUT操作(GPIO)。因此,如果你在做專案時需要更多的數字引腳,那麼模擬引腳也可用作GPIO操作。

引腳編號

A0、A1、A2、A3……就是模擬引腳的編號。你可以用這個編號讓模擬引腳輸出高電平或低電平。下面的例子會將A0口設定為輸出模式,並且輸出高電平:

pinMode(A0, OUTPUT);
digitalWrite(A0, HIGH);

上拉電阻

模擬引腳也有和數字引腳一樣的內建上拉電阻。通過下列程式碼啟用模擬引腳內部的上拉電阻。

digitalWrite(A0, HIGH); // 將上拉電阻啟用。(這與普通的輸入引腳有點區別)

但是激活了上拉電阻後,再用analogRead()的話,讀出的值會受到影響。

一些額外需注意的細節

如果一個引腳已經被設定成為OUTPUT模式,analogRead函式就不能夠正常工作。因此,如果要將模擬引腳當做數字引腳並且設定了OUTPUT模式,請在呼叫analogRead前將這個模擬引腳重新定義為INPUT模式。
如上所述,如果你將模擬引腳定為輸出模式並且輸出了HIGH,那麼它內部的上拉電阻就會被啟用。如果這時候再轉為INPUT,那麼上拉電阻將依然工作著。(因此,你需要先設定為LOW,再轉換為INPUT,才能夠獲得正確結果。)

從Atmega的資料手冊中,我們可以知道:如果要在模擬引腳上進行快速的電平切換,會導致電子噪聲。這會給模電轉換模組帶來“抖動”,從而影響到其他引腳上的模擬訊號值讀取。因此,你需要在將模擬引腳進行電平操作切換後使用後用delay函式進行一小段時間的延遲,然後再使用analogRead()去讀取其他引腳上的模擬訊號。

譯者:Steven
郵箱:[email protected]

轉載請註明出處,一切只因為熱愛。
希望您能指出寶貴意見,謝謝。

我的微信公眾號歡迎關注,2016年6月開始更新

更新程序

| 日期| 日誌 | 譯者|
| 2016年6月24日 | 建立並翻譯文件 | Steven|