你好,我是愛吃魚香ROS的小魚。上一節(jié)完成了LED燈的控制,本節(jié)我們學習下如何使用按鍵。
本教程所使用硬件平臺為MicroROS學習板V1.0.0,可點擊閱讀原文購買及查看詳情

一、 按鍵檢測原理

上面的原理圖就是我們MicroROS開發(fā)板的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燈,按著開,松開關(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號引腳模式為OUTPUT模式
pinMode(2, OUTPUT); // 設(shè)置2號引腳模式為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),看一下代碼實現(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號引腳模式為OUTPUT模式
pinMode(2, OUTPUT); // 設(shè)置2號引腳模式為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燈
}
*/
}
這里稍微復雜一些,當按鍵按下時我們需要休眠50ms,防止誤觸,接著反置狀態(tài),等待按鍵松開。
將代碼下載到開發(fā)板,按下按鍵,測試一下。
四、總結(jié)
本節(jié)我們通過學習按鍵的使用,掌握了GPIO的輸入,下一節(jié)我們將嘗試進階使用ADC,測量電池的電。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
原理圖
+關(guān)注
關(guān)注
1353文章
6427瀏覽量
246381 -
led燈
+關(guān)注
關(guān)注
22文章
1606瀏覽量
111892 -
按鍵
+關(guān)注
關(guān)注
4文章
229瀏覽量
58504 -
Boot
+關(guān)注
關(guān)注
0文章
154瀏覽量
37755 -
ROS
+關(guān)注
關(guān)注
1文章
293瀏覽量
18748
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
使用51單片機實現(xiàn)按鍵控制LED燈的亮滅
接前兩集,這集我們實現(xiàn)用按鍵控制LED燈的亮滅。首先,仍舊是分析硬件電路原理圖。
發(fā)表于 07-11 11:40
?8591次閱讀
stm32按鍵控制led燈亮滅
stm32按鍵控制led燈亮滅? 在嵌入式系統(tǒng)中,硬件按鍵常常被用作開關(guān)輸入,控制LED
使用按鍵控制LED燈
評論