你好,我是爱吃鱼香ROS的小鱼。上一节完成了LED灯的控制,本节我们学习下如何使用按键。
本教程所使用硬件平台为MicroROS学习板V1.0.0,可点击阅读原文购买及查看详情
一、 按键检测原理
上面的原理图就是我们MicroROS开发板的BOOT按键的原理图,该按键的位置在板子的左下角。
简单的看下原理图可知
- 当
BOOT
按下时,1,2就被连通了,此时ESP_IO2
就连接到了GND
上,也就是连接到GND
,ESP_IO2
的电平被拉低了。 - 当
BOOT
没有按下时,ESP_IO0
通过R10
连接到了3.3V
,ESP_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,测量电池的电。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
原理图
+关注
关注
1293文章
6309浏览量
232836 -
led灯
+关注
关注
22文章
1592浏览量
107824 -
按键
+关注
关注
4文章
223浏览量
57568 -
Boot
+关注
关注
0文章
149浏览量
35778 -
ROS
+关注
关注
1文章
276浏览量
16963
发布评论请先 登录
相关推荐
评论