在數字電路中開關(switch)是一種基本的輸入形式,它的作用是保持電路的連接或者斷開。Arduino從數字I/O管腳上只能讀出高電平(5V)或者低電平(0V),因此我們首先面臨到的一個問題就是如何將開關的開/斷狀態轉變成Arduino能夠讀取的高/低電平。解決的辦法是通過上/下拉電阻,按照電路的不同通常又可以分為正邏輯(Positive Logic)和負邏輯(Inverted Logic)兩種。
3.png (5.07 KB, 下載次數: 67)
下載附件
2019-10-24 16:30 上傳
在正邏輯電路中,開關一端接電源,另一端則通過一個10K的下拉電阻接地,輸入信號從開關和電阻間引出。當開關斷開的時候,輸入信號被電阻“拉”向地,形成低電平(0V);當開關接通的時候,輸入信號直接與電源相連,形成高電平。對于經常用到的按壓式開關來講,就是按下為高,抬起為低。
4.png (5.12 KB, 下載次數: 54)
下載附件
2019-10-24 16:30 上傳
在負邏輯電路中,開關一端接地,另一端則通過一個10K的上拉電阻接電源,輸入信號同樣也是從開關和電阻間引出。當開關斷開時,輸入信號被電阻“拉”向電源,形成高電平(5V);當開關接通的時候,輸入信號直接與地相連,形成低電平。對于經常用到的按壓式開關來講,就是按下為低,抬起為高。 為了驗證Arduino數字I/O的輸入功能,我們可以將開關接在Arduino的任意一個數字I/O管腳上(13除外),并通過讀取它的接通或者斷開狀態,來控制其它數字I/O管腳的高低。本實驗采用的原理圖如下所示,其中開關接在數字I/O的7號管腳上,被控的發光二極管接在數字I/O的13號管腳上:
|