News

Discover more

上拉電阻和(hé)下(xià)拉電阻


爲什(shén)麽不能直連?

直接将5v電壓加在in上這(zhè)個(gè)方案爲什(shén)麽不行?我們來(lái)看看電路圖:

[5v]-----[switch]------[in] 

行,但是不會得(de)到你想要的(de)結果。當開關閉合時(shí)候,這(zhè)時(shí)候沒有問題,in會得(de)到固定的(de)高(gāo)電平。但是當開關打開的(de)時(shí)候,in會受到外界環境因素的(de)影(yǐng)響,會有很小的(de)電流輸入,時(shí)而有電流輸入變成高(gāo)電平,時(shí)而沒有電流輸入變成低電平,這(zhè)就是我們說的(de)floating狀态,這(zhè)是一種不穩定狀态。 floating發生的(de)原因:

What you have is called a Floating pin. Digital Input pins are very sensitive to change, and unless positively driven to one state or another (High or Low), will pick up stray capacitance from nearby sources, like breadboards, human fingers, or even the air. Any wire connected to it will act like a little antenna and cause the input state to change.

上拉電阻

先看一下(xià)上拉電阻(Pull up resistor),他(tā)的(de)作用(yòng)就是将輸入端保持在高(gāo)電平。電路圖如下(xià):

[5v]-----[pull up resistor]---------[in]
                               |
                            [switch]
                               |
                             [GND] 

如果switch的(de)狀态是Open,那麽5v電壓經過一個(gè)resistor然後到in,in當前的(de)狀态是高(gāo)電平。就是說:

switch open == high input

當switch閉合的(de)時(shí)候,5v電壓經過一個(gè)resistor,直接短接到GND,這(zhè)時(shí)候in的(de)狀态是低電平。換個(gè)說法就是:

swith close == low input

當我們沒有這(zhè)個(gè)電阻(pull up resistor)會發生什(shén)麽?

當開關是open的(de)時(shí)候5v電壓直接連到in,這(zhè)時(shí)候是in是高(gāo)電平或者短路。如果開關閉合,那麽直接5v到GND造成短路。也(yě)就是說沒有這(zhè)個(gè)電阻這(zhè)個(gè)電路就是有問題的(de),不穩定的(de)。

下(xià)拉電阻

下(xià)拉電阻(pushdown resistor)剛好和(hé)上拉電阻相反,它的(de)作用(yòng)是将輸入in保持在低電平。看看電路圖:

[5v]-----[switch]------------------[in]
                          |
                 [push down resistor]
                          |
                        [GND] 

當開關open的(de)時(shí)候,in沒有任何電壓輸入,所以狀态是電平:

switch open == low input

當開關是close閉合狀态時(shí),5v電壓因爲電阻的(de)牽制,不會直接到GND,而是作爲in的(de)輸入,當前in的(de)狀态爲高(gāo)電平:

switch close == high input

當我們拿掉下(xià)拉電阻會發生什(shén)麽呢(ne)?如果開關open,斷路,in沒有任何輸入。而開關close呢(ne),短路直接到GND,in仍然沒有輸入。

總結

上拉電阻和(hé)下(xià)拉電阻是防止短路,同時(shí)因爲電阻的(de)存在讓輸入不可(kě)能直接到GND,從而:1,不會短路。2,使得(de)in端有穩定(固定)的(de)輸入。

通(tōng)常闆卡中已經集成了(le)上拉和(hé)下(xià)拉電阻,可(kě)以通(tōng)過設置pin的(de)工作狀态來(lái)打開或者關閉pin的(de)集成上拉電阻或者下(xià)拉電阻,比如Arduino集成了(le)上拉電阻,可(kě)以通(tōng)過下(xià)面的(de)代碼來(lái)設置:

void setup(){
  pinMode(2, INPUT_PULLUP);
} 

而樹莓派同時(shí)集成了(le)上拉電阻和(hé)下(xià)拉電阻,可(kě)以同過下(xià)面代碼來(lái)設置下(xià)拉電阻(下(xià)拉電阻通(tōng)常更符合直覺,即開關閉合狀态1,關閉狀态0):

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(8, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

相關文章(zhāng)

牛逼的(de)樹莓派dashboard

樹莓派安裝 Nginx + PHP7.3 + Pi Dashboard

查看全文

Linux 下(xià)使用(yòng) system

下(xià)面的(de)教程将介紹如何将命令或程序配置爲開機啓動時(shí)自動運行的(de)服務。完成配置之後,就

查看全文
linux下(xià)安裝qt

linux下(xià)安裝qt

樹莓派運行的(de)是linux系統,因爲需要人(rén)機交互,現在選型qt ptyhon作爲技

查看全文