0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用按鍵控制LED燈

CHANBAEK ? 來源:魚香ROS ? 作者:小魚 ? 2023-07-03 10:53 ? 次閱讀

你好,我是愛吃魚香ROS的小魚。上一節(jié)完成了LED燈的控制,本節(jié)我們學(xué)習(xí)下如何使用按鍵。

教程所使用硬件平臺(tái)為MicroROS學(xué)習(xí)板V1.0.0,可點(diǎn)擊閱讀原文購買及查看詳情

圖片

一、 按鍵檢測原理

圖片

上面的原理圖就是我們MicroROS開發(fā)板的BOOT按鍵的原理圖,該按鍵的位置在板子的左下角。

圖片

簡單的看下原理圖可知

  • 當(dāng)BOOT按下時(shí),1,2就被連通了,此時(shí)ESP_IO2就連接到了GND上,也就是連接到GND,ESP_IO2的電平被拉低了。
  • 當(dāng)BOOT沒有按下時(shí),ESP_IO0通過R10連接到了3.3V,ESP_IO2引腳上的電壓就被拉高了。

二、 使用按鍵控制LED燈(無自鎖)

新建example03_key工程,在main.cpp輸入代碼。

/**
 * @file main.cpp
 * @author fishros@foxmail.com
 * @brief 使用按鍵控制LED燈,按著開,松開關(guān)
 * @version 0.1
 * @date 2022-12-19
 *
 * @copyright Copyright (c) 2022
 *
 */
#include < Arduino.h >

void setup()
{
  Serial.begin(115200);
  pinMode(0, INPUT);  // 設(shè)置2號(hào)引腳模式為OUTPUT模式
  pinMode(2, OUTPUT); // 設(shè)置2號(hào)引腳模式為OUTPUT模式
}

void loop()
{
  
  if (digitalRead(0) == LOW)
  {
    Serial.println("LED ON");
    digitalWrite(2, LOW); // 低電平,打開LED燈
  }
  else
  {

    Serial.println("LED OFF");
    digitalWrite(2, HIGH); // 高電平,關(guān)閉LED燈
  }
}

接著將代碼編譯燒錄到開發(fā)板上,按下按鍵,查看LED燈。

三、使用按鍵控制LED(自鎖開關(guān))

所謂自鎖,就是按下開,再按一下關(guān),看一下代碼實(shí)現(xiàn)

/**
 * @file main.cpp
 * @author fishros@foxmail.com
 * @brief 使用按鍵控制LED燈,按著開,松開關(guān),自鎖開關(guān)
 * @version 0.1
 * @date 2022-12-19
 *
 * @copyright Copyright (c) 2022
 *
 */
#include < Arduino.h >

bool status = false;

void setup()
{
  Serial.begin(115200);
  pinMode(0, INPUT);  // 設(shè)置2號(hào)引腳模式為OUTPUT模式
  pinMode(2, OUTPUT); // 設(shè)置2號(hào)引腳模式為OUTPUT模式
}

void loop()
{
  // 自鎖開關(guān)
  if (digitalRead(0) == LOW)
  {
    delay(50); // 休眠50ms再次判斷,防止誤觸
    if (digitalRead(0) == LOW)
    {
      status = !status;
      while (digitalRead(0) == LOW) // 死循環(huán)等待放開按鍵
        ;
    }
  }

  if (status == true)
  {
    digitalWrite(2, LOW); // 低電平,打開LED燈
  }
  else
  {

    digitalWrite(2, HIGH); // 低電平,打開LED燈
  }

  /*
  // 按著開,松開關(guān)
  if (digitalRead(0) == LOW)
  {
    Serial.println("LED ON");
    digitalWrite(2, LOW); // 低電平,打開LED燈
  }
  else
  {

    Serial.println("LED OFF");
    digitalWrite(2, HIGH); // 高電平,關(guān)閉LED燈
  }
  */
}

這里稍微復(fù)雜一些,當(dāng)按鍵按下時(shí)我們需要休眠50ms,防止誤觸,接著反置狀態(tài),等待按鍵松開。

將代碼下載到開發(fā)板,按下按鍵,測試一下。

四、總結(jié)

本節(jié)我們通過學(xué)習(xí)按鍵的使用,掌握了GPIO的輸入,下一節(jié)我們將嘗試進(jìn)階使用ADC,測量電池的電。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 原理圖
    +關(guān)注

    關(guān)注

    1289

    文章

    6239

    瀏覽量

    232052
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1592

    瀏覽量

    107664
  • 按鍵
    +關(guān)注

    關(guān)注

    4

    文章

    223

    瀏覽量

    57539
  • Boot
    +關(guān)注

    關(guān)注

    0

    文章

    149

    瀏覽量

    35732
  • ROS
    ROS
    +關(guān)注

    關(guān)注

    1

    文章

    276

    瀏覽量

    16921
收藏 人收藏

    評論

    相關(guān)推薦

    STM32——按鍵控制LED(仿真+源碼)精選資料推薦

    今天小編又在野火上學(xué)習(xí)了按鍵控制LED,在這兒做個(gè)筆記順便分享大家,嘻嘻!直接上仿真圖:
    發(fā)表于 08-24 07:59

    如何使用HAL庫函數(shù)實(shí)現(xiàn)按鍵控制LED?

    如何使用HAL庫函數(shù)實(shí)現(xiàn)按鍵控制LED?
    發(fā)表于 11-16 06:25

    如何利用STM32實(shí)現(xiàn)按鍵控制LED?

    如何利用STM32實(shí)現(xiàn)按鍵控制LED?
    發(fā)表于 11-25 06:28

    STM32單片機(jī)是如何實(shí)現(xiàn)按鍵控制LED設(shè)計(jì)的

    STM32單片機(jī)是如何實(shí)現(xiàn)按鍵控制LED設(shè)計(jì)的?求大神解答
    發(fā)表于 11-25 06:50

    獨(dú)立按鍵按鍵控制led學(xué)習(xí)過程記錄

    藍(lán)橋杯單片機(jī)學(xué)習(xí)過程記錄(二)獨(dú)立按鍵按鍵控制led按鍵控制流水燈按鍵控制
    發(fā)表于 01-06 08:16

    如何通過按鍵控制LED和蜂鳴器?

    如何通過按鍵控制LED和蜂鳴器?什么叫上\下拉電阻呢?Static有哪些用途?
    發(fā)表于 01-18 07:41

    如何實(shí)現(xiàn)按鍵控制LED?

    編程的要點(diǎn)是什么?如何實(shí)現(xiàn)按鍵控制LED?
    發(fā)表于 01-26 08:04

    按鍵控制LED的閃爍亮滅工程文件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是按鍵控制LED的閃爍亮滅工程文件免費(fèi)下載。
    發(fā)表于 05-28 08:00 ?24次下載
    <b class='flag-5'>按鍵控制</b><b class='flag-5'>LED</b><b class='flag-5'>燈</b>的閃爍亮滅工程文件免費(fèi)下載

    51單片機(jī)通過按鍵控制LED閃爍

    51單片機(jī)通過按鍵控制LED閃爍
    發(fā)表于 11-11 18:36 ?122次下載
    51單片機(jī)通過<b class='flag-5'>按鍵控制</b><b class='flag-5'>LED</b><b class='flag-5'>燈</b>閃爍

    HT32F5232學(xué)習(xí)之四種方法實(shí)現(xiàn)按鍵控制LED

    HT32F5232學(xué)習(xí)之四種方法實(shí)現(xiàn)按鍵控制LED
    發(fā)表于 11-29 16:51 ?11次下載
    HT32F5232學(xué)習(xí)之四種方法實(shí)現(xiàn)<b class='flag-5'>按鍵控制</b><b class='flag-5'>LED</b><b class='flag-5'>燈</b>

    按鍵控制LED

    基于51單片機(jī)仿真實(shí)現(xiàn)按鍵控制LED排的亮滅,壓縮包中有程序和電路圖。
    發(fā)表于 07-04 15:25 ?3次下載

    設(shè)計(jì)分享|74LS148實(shí)現(xiàn)按鍵控制LED

    74LS148實(shí)現(xiàn)按鍵控制LED。
    的頭像 發(fā)表于 01-04 09:21 ?3508次閱讀

    使用51單片機(jī)實(shí)現(xiàn)按鍵控制LED的亮滅

    接前兩集,這集我們實(shí)現(xiàn)用按鍵控制LED的亮滅。首先,仍舊是分析硬件電路原理圖。
    發(fā)表于 07-11 11:40 ?5685次閱讀
    使用51單片機(jī)實(shí)現(xiàn)<b class='flag-5'>按鍵控制</b><b class='flag-5'>LED</b><b class='flag-5'>燈</b>的亮滅

    單片機(jī)獨(dú)立按鍵控制led程序

    單片機(jī)獨(dú)立按鍵控制LED程序 單片機(jī)獨(dú)立按鍵控制LED程序是一種簡單而有趣的電子學(xué)習(xí)項(xiàng)目,它
    的頭像 發(fā)表于 09-02 17:05 ?4348次閱讀

    stm32按鍵控制led亮滅

    stm32按鍵控制led亮滅? 在嵌入式系統(tǒng)中,硬件按鍵常常被用作開關(guān)輸入,控制LED
    的頭像 發(fā)表于 09-02 17:05 ?1w次閱讀