2. 沒有按鈕的電路是沒有靈魂的
使用按鈕控制控制LED燈
1. 使用按鈕控制一個LED燈的亮滅
I. 使用代碼控制
想要通過按鈕開控制燈的亮和滅有兩種思路,第一種就是直接使用代碼來控制.我特地去檢測這個按鈕是否按下,如果按下,我就給LED燈一個高電位,讓LED燈亮起;如果檢測到按鈕沒有按下,那麼久給LED燈一個低電位,這樣LED燈就會熄滅.這個和繼電器的思想有點類似.
· 原理解釋
雖然上圖很容易看出原理,但是我還是簡單的說明一下:
當檢按鈕沒有按下的時候檢測腳通過電阻和電源相連,所以呈現高電平,但是當開關按下的時候則會直接和GND相連,變為低電平.所以我們只需要去檢測GND的電位高低就能知道按鈕是否被按下.
· 電路連接
說明:
1. LED一定要連電阻
這個圖有點丑,希望別介意,當然,你介意也沒用.
· 代碼展示
說明:
1. 我使用檢測電位的腳為13號腳
2. 我使用控制LED燈的腳為7號腳
3. 根據我電路的連接,當我按下按鈕的時候為低電位,沒有按下時為高電位.
1 /* 2 按鈕控制LED的亮滅之一: 3 使用代碼控制 4 */ 5 6 // 按鈕的狀態,按下為LOW,沒有按下為HIGH(這是因為我的電路不小心接成這樣了) 7 int buttonState = 0; 8 9 // 初始化 10 void setup() { 11 // 控制LED的引腳為輸出引腳 12 pinMode(7, OUTPUT); 13 // 監測電位的腳為輸入引腳 14 pinMode(13, INPUT); 15 16 } 17 18 void loop() { 19 // 讀取按鈕的狀態 20 buttonState = digitalRead(13); 21 22 if( buttonState == HIGH ) { 23 // 按鈕沒有按下,讓LED燈熄滅 24 digitalWrite(7, LOW); 25 } else { 26 // 按鈕按下,讓LED燈亮起 27 digitalWrite(7, HIGH); 28 } 29 30 }
· 現象觀察
II. 使用硬件控制
這個就十分簡單了,和小學的自然科學課差不多,你只需要一直給LED一個高電平,然後把LED接到電路當中去就好啦.由於實在是太簡單,我連代碼都不想寫,因為說白了就只有一句digitalWrite(7, HIGH),然後你需要連對電路就可以了呀.
你問我為什麼這麼簡單還要講第一種那麼複雜的方法喔?因為醉翁之意不在酒,你自己下來慢慢品味吧.
2. 使用LED燈選擇亮起的LED燈
既然你已經會使用開關了,那麼下面我們來做一個其他的,使用開關控制兩個LED的交替閃爍(把這次的內容和上一篇文章的內容結合起來,我希望你能先自己思考一下,因為實在是太簡單了,但是不要因為太簡單而不動手喔).
答案我會公佈在下一篇文章當中.