Arduino的模擬引腳的引用,網上不錯的一篇文章
參考:http://blog.sina.com.cn/s/blog_156e62ef90102xjio.html
模擬引腳
本文是對於Arduino芯片上模擬引腳的介紹。上面所說的Arduino芯片主要包括(Atmega8, Atmega168,Atmega328或Atmega1280)。
數模轉換電路
Arduino中使用的Atmega控制器都配有一個板載6通道數模轉換器,這個轉換器的精度為10bit,能夠返回0-1023的整數。盡管模擬引腳的主要功能是讀取模擬信號,但是實際上和0-13號數字引腳一樣,模擬引腳也可以進行INPUT、OUTPUT操作(GPIO)。因此,如果你在做項目時需要更多的數字引腳,那么模擬引腳也可用作GPIO操作。
引腳編號
A0、A1、A2、A3……就是模擬引腳的編號。你可以用這個編號讓模擬引腳輸出高電平或低電平。下面的例子會將A0口設置為輸出模式,並且輸出高電平
1 pinMode(A0, OUTPUT);
2 digitalWrite(A0, HIGH);
上拉電阻
模擬引腳也有和數字引腳一樣的內置上拉電阻。通過下列代碼激活模擬引腳內部的上拉電阻。
digitalWrite(A0, HIGH); // 將上拉電阻激活。(這與普通的輸入引腳有點區別)
但是激活了上拉電阻后,再用analogRead()的話,讀出的值會受到影響。
一些額外需注意的細節
如果一個引腳已經被設置成為OUTPUT模式,analogRead函數就不能夠正常工作。因此,如果要將模擬引腳當做數字引腳並且設置了OUTPUT模式,請在調用analogRead前將這個模擬引腳重新定義為INPUT模式。
如上所述,如果你將模擬引腳定為輸出模式並且輸出了HIGH,那么它內部的上拉電阻就會被激活。如果這時候再轉為INPUT,那么上拉電阻將依然工作着。(因此,你需要先設置為LOW,再轉換為INPUT,才能夠獲得正確結果。)
從Atmega的數據手冊中,我們可以知道:如果要在模擬引腳上進行快速的電平切換,會導致電子噪聲。這會給模電轉換模塊帶來“抖動”,從而影響到其他引腳上的模擬信號值讀取。因此,你需要在將模擬引腳進行電平操作切換后使用后用delay函數進行一小段時間的延遲,然后再使用analogRead()去讀取其他引腳上的模擬信號。
本文摘自 http://blog.csdn.net/amagamag/article/details/51734049 譯者:唐家勛
