<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## LED閃爍進階 > 有時候你需要同時處理多件事情。比如:在按鈕按下的時候讓LED閃爍。? > 在這種情況下delay()函數就不好用了,因為Arduino在delay的時候會完全暫停運行的程序。如果按鈕按下而Arduino正在delay,那么你的程序就無法覺察到按鈕被按下了。? > 本例程向你展示如何不用delay()而讓LED閃爍。具體方法是:把LED打開后記錄一下當前時間。接著,每次loop()函數被調用,就檢查一下是否距離上一次記錄的時間已經過了想讓LED點亮或關閉的時間。如果時間差足夠,那么就將LED關閉或點亮,并且記錄現在的時間……如此往復,LED就會照常閃爍,并且程序再也不會被LED的閃爍這樣原先需要用delay函數的操作拖后腿了。 我們類比一下生活中的場景。假設你正在家里用微波爐加熱披薩餅,可與此同時你還在網上等一封重要的電子郵件。如果你使用delay()來完成,就好比你在微波爐前坐等十分鐘。眼睛緊緊盯著定時器直到指針轉到0,等披薩餅熱完了之后再做到電腦跟前去。如果真這樣做,那么當重要郵件來的時候你就把它錯過去了。 聰明人會怎么做呢:把微波爐定時10分鐘,然后坐到電腦前等著郵件(或者可能去做其他耗時不那么長的事情)。每過一小段時間就回到微波爐跟前,看看定時器有沒有走完,這樣才可“工作”、“生活”兩不誤。 在本篇教程中,你將會學會如何設置一個類似的“定時器”。 ### 所需硬件設備 Arduino板或Genuino板? LED燈? 220Ω電阻? 面包板線/杜邦線 ### 電路 ![圖片來自官網](http://img.blog.csdn.net/20160419115943594)? 連線方式如下:首先,連接電阻的一端到13號引腳。然后,將LED的長腳(表示陽極)連接到電阻的另一端。接著,連接LED的短腳(表示陰極)連接到板子上的GND接口,如上圖所示。 大多數Arduino板或Genuino板已經有板載的LED連接到13號引腳了。如果你在Arduino上運行下面的代碼,你應該也可以看到一個板載LED在閃爍。 ### 原理圖 ![圖片來自官網](http://img.blog.csdn.net/20160419120000206)? 在你搭好電路之后,將板子連上電腦。在打開Arduino IDE后,請鍵入以下代碼。 ### 代碼 下列代碼運用了mills()函數。mills()函數返回一個時間值,這個值表示從程序的運行時間(從通電或復位開始),單位為**毫秒(milliseconds )**。 ~~~ /* LED閃爍進階 讓13引腳連接的LED閃爍起來而不使用delay()函數。這樣就意味著其他的代碼可以不受LED閃爍的干擾,在“同一時間”(譯者注:其實應該是幾乎同一時間)運行。 電路這樣搭: * LED連接到13引腳和GND。 * 注:絕大多數Arduino已經在13引腳連接了板載LED。因而這個例子可能不需要多余LED也能看到效果。 代碼是公開的。 */ // 定義一個不會改變的整型常量。這里用來定義引腳號碼: const int ledPin = 13; // LED連接的引腳 // 聲明并定義可變的變量 : int ledState = LOW; // LED的狀態值 // 一般來說,用 "unsigned long"類型的變量來存儲時間值比較好。因為如果用int類型“裝不下”這么大的數字。 unsigned long previousMillis = 0; // 存儲上次LED狀態被改變的時間 // 又定義了一個常量 : const long interval = 1000; // LED狀態應該被改變的間隔時間(單位毫秒) void setup() { // 將數字引腳定義為輸出模式: pinMode(ledPin, OUTPUT); } void loop() { //這里寫你想要不斷運行的代碼。 // 檢查看看LED是否到了應該打開或關閉的時間; 就是說,檢查下現在時間離開記錄的時間是否超過了要求LED狀態改變的間隔時間。 unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { // 更新時間標記 previousMillis = currentMillis; // 如果LED關閉則打開它,如果LED打開則關閉它: if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } // 用以下代碼設置LED狀態: digitalWrite(ledPin, ledState); } } ~~~ ## 相關資料 [setup()](https://www.arduino.cc/en/Reference/Setup)? [loop()](https://www.arduino.cc/en/Reference/Loop)? [millis()](http://www.arduino.cc/en/Reference/Millis)?
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看