在數位電路中開關(
switch
)是一種基本的輸入形式,它的作用是保持電路的連線或者斷開。
arduino
從數字i/o
管腳上只能讀出高電平(
5v)或者低電平(
0v),因此我們首先面臨到的乙個問題就是如何將開關的開
/斷狀態轉變成
arduino
能夠讀取的高
/低電平。解決的辦法是通過上
/下拉電阻,按照電路的不同通常又可以分為正邏輯(
positive logic
)和負邏輯(
inverted logic
)兩種。
在正邏輯電路中,開關一端接電源,另一端則通過乙個
10k的下拉電阻接地,輸入訊號從開關和電阻間引出。當開關斷開的時候,輸入訊號被電阻「拉
」向地,形成低電平(
0v);當開關接通的時候,輸入訊號直接與電源相連,形成高電平。對於經常用到的按壓式開關來講,就是按下為高,抬起為低。
在負邏輯電路中,開關一端接地,另一端則通過乙個
10k的上拉電阻接電源,輸入訊號同樣也是從開關和電阻間引出。當開關斷開時,輸入訊號被電阻「拉
」向電源,形成高電平(
5v);當開關接通的時候,輸入訊號直接與地相連,形成低電平。對於經常用到的按壓式開關來講,就是按下為低,抬起為高。
為了驗證
arduino
數字i/o
的輸入功能,我們可以將開關接在
arduino
的任意乙個數字
i/o管腳上(
13除外),並通過讀取它的接通或者斷開狀態,來控制其它數字
i/o管腳的高低。本實驗採用的原理圖如下所示,其中開關接在數字
i/o的
7號管腳上,被控的發光二極體接在數字
i/o的13號
管腳上:
**為:
int ledpin = 13;
int switchpin = 7;
int value = 0;
void setup()
void loop() else }
由於採用的是負邏輯電路,開關按下時用
digitalread()
函式讀取到的值為
low,此時再用
digitalwrite()
函式將發光二極體所在的管腳置為高,點亮發光二極體。同理,當開關抬起時,發光二極體將被熄滅,這樣我們就實現了用開關來控制發光二極體的功能。
Arduino學習筆記 (四) 常用函式
1 pinmode pin,mode 設定引腳的輸入輸出狀態 pin 引腳號 mode input output 2 digitalwrite pin,value 設定輸出引腳的高低電平狀態 pin 引腳號 value high low 3 int digitalread pin 讀取引腳的狀態,並...
Arduino學習筆記01 Arduino介紹
學習arduino最好有些c語言基礎,我開始學arduino時也有些許困惑,希望以下教程能夠幫到你!本次學習筆記主要板子是arduino uno。首先介紹一下學習arduino的資源 arduino中文社群 arduino實驗室 太極創客 別再找了!這是有史以來最棒的arduino教程 太極創客 零...
arduino學習筆記五
串列埠輸出顯示 序列通訊是在實現在 pc機與微控制器進行互動的最簡單的辦法。之前的 pc機上一般都配有標準的 rs 232 或者rs 422 介面來實現序列通訊,但現在這種情況已經發生了一些改變,大家更傾向於使用 usb這樣一種更快速但同時也更加複雜的方式來實現序列通訊。儘管在有些計算機上現在已經找...