码迷,mamicode.com
首页 > 其他好文 > 详细

2. 沒有按鈕的電路是沒有靈魂的

时间:2020-01-23 16:51:55      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:str   class   void   之一   mamicode   splay   git   title   stat   

使用按鈕控制控制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的交替閃爍(把這次的內容和上一篇文章的內容結合起來,我希望你能先自己思考一下,因為實在是太簡單了,但是不要因為太簡單而不動手喔).

答案我會公佈在下一篇文章當中.

2. 沒有按鈕的電路是沒有靈魂的

标签:str   class   void   之一   mamicode   splay   git   title   stat   

原文地址:https://www.cnblogs.com/ltozvxe/p/12230677.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!