<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> Arduino >> 瀏覽文章

        基于Proteus的Arduino學習02-按鍵與LED燈的使用

        作者:我不是奔跑哥   來源:我不是奔跑哥的blog   點擊數:  更新時間:2014年06月08日   【字體:

        按鍵是重要的人機交互的工具,可以通過按鍵將數據輸入給計算機(此處為Arduino),讓Arduino按照人所想的方式工作,或者輸入Arduino的一些工作參數。LED燈可以作為程序調試過程中的指示燈,讓調試者清楚地知道程序現在運行到哪一步,從而可以很快的找出程序的問題所在。

         

        在上一節的學習筆記《Arduino UNO實驗板設計》中,我們帶著大家學會了如何使用Protues仿真軟件構建出軟件Arduino的實驗板,并在軟件Arduino UNO實驗板上驗證了閃爍燈的例子,下面我們接著第一節的學習筆記,繼續下面的學習,讓LED燈接受我們的控制,像平時我們打開和關閉房間的節能燈一樣方便。

        首先,我們需要打開上次的Arduino UNO實驗板,如圖1所示。從下圖中,我們可以看到Arduino UNO的核心ATmega328P單片機,綠色LED燈LED-GREEN,串口通訊接口COMPIM,這個構成了Arduino的最小系統。

        圖1 Arduino UNO實驗板

        下面我們要在Arduino UNO實驗板上添加按鍵,在元器件選擇框中輸入“BUTTON”,如圖2所示。選擇上面一個按鍵,并點擊OK將其添加至元器件欄中。

        圖2 "BUTTON"按鍵選擇

        從元器件欄中將按鍵放置到Arduino UNO實驗板的合適位置,這里我們選擇數字口8,所以放置在其附近,并放置一個10KΩ的電阻,如圖3所示。將按鍵的一端連接至數字口8,一端連接至+5V電源端,電阻的一端連接至數字口8,一端接至低端,構成一個下拉電阻【注】,連接之后的圖如圖4所示。

        【注】下拉電阻的一端接至低端,因而叫做下拉電阻,即將電路節點的電平向低方向(地)拉。下拉電阻的主要作用是在電路驅動器(此處為按鍵)斷開時給線路(節點)以一個固定的低電平!疚墨I1】

        圖3 在Arduino UNO實驗板上放置按鍵和電阻

         
        圖4 連接好按鍵和電阻的Arduino UNO實驗板

        最后,還需要完成Arduino軟件設計,驗證我們的設計是否可行。先打開ArduinoIDE自帶的例子,如圖5所示。

        圖5 打開Arduino IDE的BUTTON示例

        我們要對Arduino IDE自帶“BUTTON”例子進行修改,將const int buttonPin = 2;更改為const int buttonPin = 8;因為我們的按鍵連接在數字口8上面,更改之后的程序如下所示。

        // set pin numbers:

        const int buttonPin = 8;     // the number of the pushbutton pin

        const int ledPin =  13;      // the number of the LED pin

         

        // variables will change:

        int buttonState = 0;         // variable for reading the pushbutton status

         

        void setup() {

          // initialize the LED pin as an output:

          pinMode(ledPin, OUTPUT);     

          // initialize the pushbutton pin as an input:

          pinMode(buttonPin, INPUT);    

        }

         

        void loop(){

          // read the state of the pushbutton value:

          buttonState = digitalRead(buttonPin);

         

          // check if the pushbutton is pressed.

          // if it is, the buttonState is HIGH:

          if (buttonState == HIGH) {    

            // turn LED on:   

            digitalWrite(ledPin, HIGH); 

          }

          else {

            // turn LED off:

            digitalWrite(ledPin, LOW);

          }

        }

        將更改之后的程序,編譯通過之后,在Protues仿真環境中單擊ATmega328P單片機,將Arduino IDE生成的HEX文件調入到Arduino UNO實驗板中運行。

        當按鍵斷開時,LED熄滅,如圖6所示;當按鍵閉合時,LED點亮。如圖7所示。

        圖6 按鍵斷開時,LED熄滅
        圖7 按鍵閉合時,LED點亮

        我們對上面的設計進行一些更改,將按鍵和10KΩ電阻的GND和+5V交換位置,點擊GND彈出更改框為圖8所示。將GND改為+5V,+5V改為GND,實驗板即變為圖9所示。10KΩ的電阻也由下拉電阻變為上拉電阻!咀ⅰ

        【注】上拉電阻就是將不確定的信號通過一個電阻鉗位在高電平,電阻同時起限流作用!疚墨I2】

        圖8 更改電源端與地端

        圖9 更改之后的實驗板

        當我們進行仿真時,出現了與前面相反的效果:當按鍵斷開時,LED點亮,如圖10所示;當按鍵閉合時,LED熄滅,如圖10所示。這就是上拉電阻與下拉電阻的作用。

         

        圖10 當按鍵斷開時,LED點亮
         
        圖11 當按鍵閉合時,LED熄滅

        參考文獻:

        文獻1:http://baike.baidu.com/view/1546676.htm

        文獻2:http://baike.baidu.com/view/1106477.htm

        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮