上拉電阻和下拉電阻的區別

2021-09-25 05:32:57 字數 1866 閱讀 4027

在初學arduino時,感覺最難理解的概念就是上拉電阻和下拉電阻了,不過你一旦理解了這個,後面的大部分都比較簡單了!

在數字邏輯電路中,乙個訊號不是0,就是1。正是因為這樣,數位電路的設計才簡單,可靠。

通常,用電壓5v(或者接近5v)代表 on 開狀態,代表高電平,對應狀態 1。用電壓0v (或者接近0v)代表off關狀態,代表低電平,對應狀態0。

有些開發板是基於3.3v的,因此使用3.3v作為高電平。

如果乙個線路中的電壓處於不確定的狀態(例如乙個引腳不和任何其它迴路連通時),那我們就說它的電壓是浮動的,他會隨著時間不斷變化,跳動,而且很容易受到外界環境的影響。處於這種不確定狀態的電路會被隨機解釋為高或者低電平。 這種現象也叫電子雜訊。

然而程式必須是嚴格準確的,所以電路的設計一定要避免線路電壓處於浮動狀態。

我們可以使用上拉電阻或者下拉電阻將電路的電壓在任何時候都保持在確定的狀態下,這就是上拉電阻和下拉電阻的作用。

作用:將乙個未知的電平拉低到穩定的低電平狀態。

上圖中,我們要判定input這個引腳 是高電平還是低電平。

當按鈕s2沒按下時,input通過2個電阻接到gnd,是穩定的低電平 。 當s2按下時,+5v ,s2 , r2 ,gnd這條路導通,而input接在r2的前面,因此會得到高電平。

因此我麼可以通過input端是高電平還是低電平來判斷s2是否按下。如果沒有 下拉電阻r2,那麼s2沒按下前,input沒有和任何東西相連,它的電平處於浮動狀態,且很容易受環境影響,帶來電子雜訊。

作用:將乙個未知的電平拉高到穩定的高電平狀態。

當s2沒按下時,input通過2個電阻和+5v連線(注意電路中並沒構成迴路,因此不會有壓降,所以input端依然是高電平),為高電平。當s2按下時,+5v,r2,s2,gnd形成迴路,r2 電阻大,產生壓降大,因此後面的input就是低電平。

因此,可以通過input端的電平來判斷s2是否按下。

相比下拉電阻,上拉電阻在數位電路中使用的更多。

arduino的數字引腳和模擬引腳都內建了【上拉電阻】,電阻為20k~50k歐姆,他們需要使用 **去啟用使能。使能arduino上拉電阻的**:

pinmode(10, input);

digitalwrite(10, high); //啟用10號引腳的上拉電阻,因此在沒有收到任何輸入訊號時,10號引腳一直是高電平。

/或者pinmode(10, input_pullup) ; //最新的arduino庫支援使用input_pullup配置為輸入且使能上拉電阻,和上面的2行**等效。

注意:如果你配置乙個引腳為輸出,且使能上拉電阻,然後又切換io模式為output,那麼此引腳會保持高電平狀態。反之:如果乙個引腳為原本為輸出模式,且輸出高電平,切換為輸入後,將自動啟用上拉電阻。

動手試一試

實驗目的:不使用arduino內建的上拉電阻,通過電子器件構造乙個外接【下拉電阻】,實現功能:通過8號引腳判斷按鈕釋放按下,按鈕沒按下時,8號引腳始終接受低電平訊號,按鈕按下時,接受到高電平訊號。每當按鈕按下時,反轉板載led的狀態.

電路連線

}出處:

下拉電阻和上拉電阻

在學習arduino時,連線微動開關,需要乙個下拉電阻,當開關處於開路的狀態時,保持輸入引腳的低電平。對於其中的原理糾結了很長時間,下面是根據查詢到的資料和加入了自己的理解。下拉電阻 1當處於斷路狀態時,如果沒有10k歐的下拉電阻,input端的電壓在0v 5v之間浮動。有下拉電阻時,輸入引腳通過1...

上拉電阻和下拉電阻

所謂上,就是指高電平 所謂下,是指低電平。上拉,就是通過乙個電阻將訊號接電源,一般用於時鐘訊號資料訊號等。下拉,就是通過乙個電阻將訊號接地,一般用於保護訊號。這是根據電路需要設計的,主要目的是為了防止干擾,增加電路的穩定性。假如沒有上拉,時鐘和資料訊號容易出錯,畢竟,cpu的功率有限,帶很多bus線...

上拉電阻和下拉電阻

在數字邏輯電路中,乙個訊號不是0,就是1。正是因為這樣,數位電路的設計才簡單,可靠。通常,用電壓5v 或者接近5v 代表 on 開狀態,代表高電平,對應狀態 1。用電壓0v 或者接近0v 代表off關狀態,代表低電平,對應狀態0。有些開發板是基於3,3v的,因此使用3.3v作為高電平。如果乙個線路中...