0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用按键控制LED灯

CHANBAEK 来源:鱼香ROS 作者:小鱼 2023-07-03 10:53 次阅读

你好,我是爱吃鱼香ROS的小鱼。上一节完成了LED灯的控制,本节我们学习下如何使用按键。

教程所使用硬件平台为MicroROS学习板V1.0.0,可点击阅读原文购买及查看详情

图片

一、 按键检测原理

图片

上面的原理图就是我们MicroROS开发板的BOOT按键的原理图,该按键的位置在板子的左下角。

图片

简单的看下原理图可知

  • BOOT按下时,1,2就被连通了,此时ESP_IO2就连接到了GND上,也就是连接到GNDESP_IO2的电平被拉低了。
  • BOOT没有按下时,ESP_IO0通过R10连接到了3.3VESP_IO2引脚上的电压就被拉高了。

二、 使用按键控制LED灯(无自锁)

新建example03_key工程,在main.cpp输入代码。

/**
 * @file main.cpp
 * @author fishros@foxmail.com
 * @brief 使用按键控制LED灯,按着开,松开关
 * @version 0.1
 * @date 2022-12-19
 *
 * @copyright Copyright (c) 2022
 *
 */
#include < Arduino.h >

void setup()
{
  Serial.begin(115200);
  pinMode(0, INPUT);  // 设置2号引脚模式为OUTPUT模式
  pinMode(2, OUTPUT); // 设置2号引脚模式为OUTPUT模式
}

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

    Serial.println("LED OFF");
    digitalWrite(2, HIGH); // 高电平,关闭LED灯
  }
}

接着将代码编译烧录到开发板上,按下按键,查看LED灯。

三、使用按键控制LED(自锁开关)

所谓自锁,就是按下开,再按一下关,看一下代码实现

/**
 * @file main.cpp
 * @author fishros@foxmail.com
 * @brief 使用按键控制LED灯,按着开,松开关,自锁开关
 * @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);  // 设置2号引脚模式为OUTPUT模式
  pinMode(2, OUTPUT); // 设置2号引脚模式为OUTPUT模式
}

void loop()
{
  // 自锁开关
  if (digitalRead(0) == LOW)
  {
    delay(50); // 休眠50ms再次判断,防止误触
    if (digitalRead(0) == LOW)
    {
      status = !status;
      while (digitalRead(0) == LOW) // 死循环等待放开按键
        ;
    }
  }

  if (status == true)
  {
    digitalWrite(2, LOW); // 低电平,打开LED灯
  }
  else
  {

    digitalWrite(2, HIGH); // 低电平,打开LED灯
  }

  /*
  // 按着开,松开关
  if (digitalRead(0) == LOW)
  {
    Serial.println("LED ON");
    digitalWrite(2, LOW); // 低电平,打开LED灯
  }
  else
  {

    Serial.println("LED OFF");
    digitalWrite(2, HIGH); // 高电平,关闭LED灯
  }
  */
}

这里稍微复杂一些,当按键按下时我们需要休眠50ms,防止误触,接着反置状态,等待按键松开。

将代码下载到开发板,按下按键,测试一下。

四、总结

本节我们通过学习按键的使用,掌握了GPIO的输入,下一节我们将尝试进阶使用ADC,测量电池的电。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 原理图
    +关注

    关注

    1291

    文章

    6279

    浏览量

    232371
  • led灯
    +关注

    关注

    22

    文章

    1592

    浏览量

    107713
  • 按键
    +关注

    关注

    4

    文章

    223

    浏览量

    57547
  • Boot
    +关注

    关注

    0

    文章

    149

    浏览量

    35740
  • ROS
    ROS
    +关注

    关注

    1

    文章

    276

    浏览量

    16931
收藏 人收藏

    评论

    相关推荐

    STM32——按键控制LED(仿真+源码)精选资料推荐

    今天小编又在野火上学习了按键控制LED,在这儿做个笔记顺便分享大家,嘻嘻!直接上仿真图:
    发表于 08-24 07:59

    如何使用HAL库函数实现按键控制LED

    如何使用HAL库函数实现按键控制LED
    发表于 11-16 06:25

    如何利用STM32实现按键控制LED

    如何利用STM32实现按键控制LED
    发表于 11-25 06:28

    STM32单片机是如何实现按键控制LED设计的

    STM32单片机是如何实现按键控制LED设计的?求大神解答
    发表于 11-25 06:50

    独立按键按键控制led学习过程记录

    蓝桥杯单片机学习过程记录(二)独立按键按键控制led按键控制流水灯按键控制
    发表于 01-06 08:16

    如何通过按键控制LED和蜂鸣器?

    如何通过按键控制LED和蜂鸣器?什么叫上\下拉电阻呢?Static有哪些用途?
    发表于 01-18 07:41

    如何实现按键控制LED

    编程的要点是什么?如何实现按键控制LED
    发表于 01-26 08:04

    按键控制LED的闪烁亮灭工程文件免费下载

    本文档的主要内容详细介绍的是按键控制LED的闪烁亮灭工程文件免费下载。
    发表于 05-28 08:00 24次下载
    <b class='flag-5'>按键控制</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>的闪烁亮灭工程文件免费下载

    51单片机通过按键控制LED闪烁

    51单片机通过按键控制LED闪烁
    发表于 11-11 18:36 122次下载
    51单片机通过<b class='flag-5'>按键控制</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>闪烁

    HT32F5232学习之四种方法实现按键控制LED

    HT32F5232学习之四种方法实现按键控制LED
    发表于 11-29 16:51 11次下载
    HT32F5232学习之四种方法实现<b class='flag-5'>按键控制</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>

    按键控制LED

    基于51单片机仿真实现按键控制LED排的亮灭,压缩包中有程序和电路图。
    发表于 07-04 15:25 3次下载

    设计分享|74LS148实现按键控制LED

    74LS148实现按键控制LED
    的头像 发表于 01-04 09:21 3550次阅读

    使用51单片机实现按键控制LED的亮灭

    接前两集,这集我们实现用按键控制LED的亮灭。首先,仍旧是分析硬件电路原理图。
    发表于 07-11 11:40 5859次阅读
    使用51单片机实现<b class='flag-5'>按键控制</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>的亮灭

    单片机独立按键控制led程序

    单片机独立按键控制LED程序 单片机独立按键控制LED程序是一种简单而有趣的电子学习项目,它
    的头像 发表于 09-02 17:05 4419次阅读

    stm32按键控制led亮灭

    stm32按键控制led亮灭  在嵌入式系统中,硬件按键常常被用作开关输入,控制LED
    的头像 发表于 09-02 17:05 1w次阅读